Bazaar doesn't reap defunct ssh child processes

Bug #1189051 reported by Alexander Taler
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Bazaar
New
Undecided
Unassigned

Bug Description

When used as a library for another client (e.g. the bzr-eclipse plugin), Bazaar often has defunct child ssh processes. (When using OpenSSH as a transport on Debian GNU/Linux.)

This was reported against bzr-eclipse as Bug #1181946 This does not appear to cause any actual problems with the operation of Bazaar or bzr-eclipse, but certainly not good, particularly with a long-running process like bzr-eclipse where many can collect.

The situtation can be reproduced:

1] Start Python
2] Initialise Bazaar as a library:

  import bzrlib
  bzrlib.initialize()
  from bzrlib import commands as c

3] From Python, open a remote connection over ssh:

  c.main([u"bzr", u"ls", u"bzr+ssh://localhost/some-repo"])

This will open several processes, a client side ssh process, a server side ssh process, and server side bzr process.

4] I found three ways to generate defunct child processes:

   4a] Kill the client side ssh process (SIGTERM).
   4b] Kill the server side Bazaar or ssh process. (This one will be reaped by Bazaar when another connection is needed.)
   4c] Leave the connection open for a timeout period. (Mine was 300 seconds.) This prints a message on the client side.

Some of the processes from 4a and 4c were reaped after a period of time, but I did not determine exactly which ones or when. 4c in particular was troublesome for bzr-eclipse because it will happen in normal operation.

Jelmer Vernooij (jelmer)
tags: added: check-for-breezy
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.