SIGQUIT kills the child SSH process
John Arbash Meinel
john at arbash-meinel.com
Tue Nov 13 21:00:07 GMT 2007
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
I've been seeing some odd operations when using bzr+ssh. I haven't been able to
figure out all of it, but something about doing way to much work for a simple
'bzr pull' into a bound branch.
Anyway, I tried using ^| (SIGQUIT) to debug what was going on. And it dropped
me into the debugger as expected. However, I also noticed:
/ [== ] Pull phase 0/2
^\Killed by signal 3.
** SIGQUIT received, entering debugger
** Type 'c' to continue or 'q' to stop the process
And at this point, the ssh connection has closed. If I use 'c' to continue, it
spins indefinitely expecting more data. Which is a bug in itself (if it isn't
getting any data, it should be failing with ConnectionClosed, not spinning
endlessly with 100% CPU.)
So 2 fixes:
a) SIGQUIT should be trapped for the child (I think we do this for SIGINT to
allow better cleanup.)
b) The smart server needs a bit better handling of when it gets a zero-length read.
affects bzr
importance medium
status triaged
John
=:->
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFHOhBXJdeBCYSNAAMRAjADAKCydmPQhJrwAuhHuHkOFu9Pyjwe0gCdG3rx
7HuasNdR8PEhyHpIlPJKts8=
=gcv7
-----END PGP SIGNATURE-----
More information about the bazaar
mailing list