I tried to dig a bit where this happens but got stuck.
It doesn't happen (clientside) in bzrlib.lockdir.LockDir.wait_lock() (though I'd guess that is where it gets raised on the lp side of things).
Somewhere deep down some file-like object gets written to with the following bytes:
"d16:Software version7:1.15deves6l17:Branch.lock_write25:~larstiq/+junk/bug250451/0:0:ee"
And then the message about unable to obtain the lock appears on stdout.
I tried to dig a bit where this happens but got stuck.
It doesn't happen (clientside) in bzrlib. lockdir. LockDir. wait_lock( ) (though I'd guess that is where it gets raised on the lp side of things).
Somewhere deep down some file-like object gets written to with the following bytes: 1.15deves6l17: Branch. lock_write25: ~larstiq/ +junk/bug250451/0:0:ee"
"d16:Software version7:
And then the message about unable to obtain the lock appears on stdout.
Backtrace, some linenumbers changed due to `import pdb` etc: larstiq/ src/bzr/ bzr.dev/ bzrlib/ commands. py(559) run_argv_ aliases( ) **all_cmd_ args) larstiq/ src/bzr/ bzr.dev/ bzrlib/ builtins. py(1066) run() dir=use_ existing_ dir) larstiq/ src/bzr/ bzr.dev/ bzrlib/ push.py( 128)_show_ push_branch( ) larstiq/ src/bzr/ bzr.dev/ bzrlib/ bzrdir. py(1275) push_branch( ) revision_ id) larstiq/ src/bzr/ bzr.dev/ bzrlib/ decorators. py(138) read_locked( ) larstiq/ src/bzr/ bzr.dev/ bzrlib/ branch. py(2240) push() hook_source_ branch= _override_ hook_source_ branch) larstiq/ src/bzr/ bzr.dev/ bzrlib/ branch. py(2968) _run_with_ write_locked_ tar larstiq/ src/bzr/ bzr.dev/ bzrlib/ remote. py(2125) lock_write( ) lock_write( token) larstiq/ src/bzr/ bzr.dev/ bzrlib/ remote. py(2116) _remote_ lock_write( ) larstiq/ src/bzr/ bzr.dev/ bzrlib/ remote. py(55)_ call() call(method, *args) larstiq/ src/bzr/ bzr.dev/ bzrlib/ smart/client. py(129) call() expecting_ body(method, *args) larstiq/ src/bzr/ bzr.dev/ bzrlib/ smart/client. py(142) call_expecting_ body() response_ body=True) larstiq/ src/bzr/ bzr.dev/ bzrlib/ smart/client. py(76)_ call_and_ read_respons readv_body, body_stream= body_stream) larstiq/ src/bzr/ bzr.dev/ bzrlib/ smart/client. py(60)_ send_request( ) call(method, *args) larstiq/ src/bzr/ bzr.dev/ bzrlib/ smart/protocol. py(1239) call() larstiq/ src/bzr/ bzr.dev/ bzrlib/ smart/protocol. py(1106) _write_ end() larstiq/ src/bzr/ bzr.dev/ bzrlib/ smart/protocol. py(1073) flush() write_func( ''.join( self._buf) ) larstiq/ src/bzr/ bzr.dev/ bzrlib/ smart/medium. py(393) accept_ bytes() bytes(bytes) larstiq/ src/bzr/ bzr.dev/ bzrlib/ smart/medium. py(921) _accept_ bytes() _accept_ bytes(bytes) src/bzr/ bzr.dev/ bzrlib/ smart/medium. py(765) _accept_ bytes() to.write( bytes)
/home/
-> return self.run(
/home/
-> use_existing_
/home/
-> remember)
/home/
-> overwrite, stop_revision=
/home/
-> result = unbound(self, *args, **kwargs)
/home/
-> _override_
/home/
-> target.lock_write()
/home/
-> remote_tokens = self._remote_
/home/
-> repo_token or '', **err_context)
/home/
-> return self._client.
/home/
-> result, protocol = self.call_
/home/
-> method, args, expect_
/home/
-> readv_body=
/home/
-> encoder.
/home/
-> self._write_end()
/home/
-> self.flush()
/home/
-> self._real_
/home/
-> self._accept_
/home/
-> self._medium.
> /home/larstiq/
-> self._write_