sftp locks can get stuck

Robey Pointer robey at lag.net
Tue Dec 20 18:15:17 GMT 2005


On 19 Dec 2005, at 19:32, Robert Collins wrote:

> regrettably I just ran into a situation with a
> stale .bzr/branch-lock.write over sftp.
>
> Is there any mechanism we can use with sftp to ensure that we dont get
> stale locks/can remove them as needed?
>
> (I.e. write a time stamp and nuke it after 24 hours?)

There's of course a race in adding a timeout, but once you have a  
stale lock it may be unavoidable. :(

There are some heuristics we could do to cut out some cases.  For  
example, we could write the lock-owner's email address into the lock  
file, so that we could automatically recover from a stale lock that  
was just left behind by one of your own previous sessions.  (It also  
helps you figure out who to ping if you're on a shared project and  
feeling conscientious.)

If all writes are transactional (are they?), then we could add a lock  
check phase right before the final commit: make sure that we still  
own the lock.  Assuming the final commit is short, that would let us  
use a timeout of something much smaller, like 15 minutes.  That would  
reduce the odds of needing to manually break a stale lock.

Just free thoughts.  I can't think of anything that would completely  
avoid the possibility of stale locks over a dumb transport.

robey





More information about the bazaar mailing list