bzr crash with TooManyConcurrentRequests
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Bazaar |
Confirmed
|
Medium
|
Andrew Bennetts |
Bug Description
Got partway through a push (although the command-line counter thing never ticked past 0/0), and lost network connection. (about 20 mins in). bzr sat apparently idle for another 40 mins or so before spitting out the following when a network connection was re-established...
Read from remote host bazaar.
bzr: ERROR: bzrlib.
Traceback (most recent call last):
File "/usr/lib/
return run_bzr(argv)
File "/usr/lib/
ret = run(*run_argv)
File "/usr/lib/
return self.run(
File "/usr/lib/
use_
File "/usr/lib/
stop_
File "/usr/lib/
result = unbound(self, *args, **kwargs)
File "/usr/lib/
target.unlock()
File "/usr/lib/
self.
File "/usr/lib/
repo_token or '')
File "/usr/lib/
result, protocol = self.call_
File "/usr/lib/
method, args, expect_
File "/usr/lib/
readv_
File "/usr/lib/
protocol_
File "/usr/lib/
request = self._medium.
File "/usr/lib/
return SmartClientStre
File "/usr/lib/
raise errors.
TooManyConcurre
bzr 1.6.1 on python 2.5.2 (linux2)
arguments: ['/usr/bin/bzr', 'push', 'lp:~launchpad-adjutants/launchpad/moin-openid']
encoding: 'UTF-8', fsenc: 'UTF-8', lang: 'en_US.UTF-8'
plugins:
gtk /usr/lib/
launchpad /usr/lib/
*** Bazaar has encountered an internal error.
Please report a bug at https:/
including this traceback, and a description of what you
were doing when the error occurred.
Thanks for the report. I see the cause: yet another situation where a finally block tramples the original exception. This time it's the finally clause in BzrBranch.push. It shouldn't be hard to fix.
bzr sitting idle for 40 minutes is just normal TCP behaviour; the client has sent a request to the server and is waiting for a response, and if the connection goes away while waiting for the response then most TCP implementatons won't notice for a very long time. My initial feeling is that it's not worth trying to do something about this (e.g. add a no-op request and the ability to send them while a real request is outstanding so that the client can periodically send pings that would cause stale TCP connections to expire sooner). Feel free to open a separate bug report for that issue if it would be useful to you, though.