<div dir="ltr">I think your analysis is correct.<br><div><br></div><div>Locks are entirely implemented within a master, which has a good side and a bad side.  On the good side, it means all the data you need is there, somewhere in memory.  On the bad side, it means they don't work too well on a multi-master setup.<br><br></div><div>I think it would make sense to keep list of lock requests, in order.  In other words, a new counting lock can't acquire a lock that's already acquired in counting mode iff there is a pending exclusive lock.<br><br></div><div>Dustin<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Nov 3, 2015 at 11:38 PM, Vitali Lovich <span dir="ltr"><<a href="mailto:vlovich@gmail.com" target="_blank">vlovich@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
My impression is that there is no fairness for locks currently & that exclusive locks can starve.  Is that true?<br>
<br>
In other words, if I have job A that acquires a counting lock & job B acquires an exclusive lock, job B will correctly wait until A is done.  However, if job C comes in & it in turn also acquires a counting lock,<br>
it will continue since it can acquire the lock thus preventing B from running.<br>
<br>
Assuming my analysis is correct, is anyone aware of an easy way to fix this (e.g. via some hook point within buildbot) or where I would even start to look for it?<br>
For example, is there a way to test if anything is waiting to acquire a given exclusive lock?  I had a test that just tried to see if it could get the exclusive lock but I just realized that’s broken since it basically just transforms that lock into an exclusive lock.<br>
<br>
Thanks,<br>
Vitali<br>
_______________________________________________<br>
devel mailing list<br>
<a href="mailto:devel@buildbot.net">devel@buildbot.net</a><br>
<a href="https://lists.buildbot.net/mailman/listinfo/devel" rel="noreferrer" target="_blank">https://lists.buildbot.net/mailman/listinfo/devel</a></blockquote></div><br></div>