[Bug 1812] New: ControlPersist causes defunct/zombie processes

bugzilla-daemon at bugzilla.mindrot.org bugzilla-daemon at bugzilla.mindrot.org
Tue Aug 31 23:39:42 EST 2010


https://bugzilla.mindrot.org/show_bug.cgi?id=1812

           Summary: ControlPersist causes defunct/zombie processes
           Product: Portable OpenSSH
           Version: 5.6p1
          Platform: All
               URL: http://bugs.debian.org/594687
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: ssh
        AssignedTo: unassigned-bugs at mindrot.org
        ReportedBy: cjwatson at debian.org


In the linked Debian bug, martin f krafft reported:

"Since switching on ControlPersist, I have dozens of defunct ssh
processes in the process table, e.g.:

  madduck  28025  0.0  0.0  40612  2784 pts/8    S+   09:17   0:00 ssh
pulse
  madduck  28028  0.0  0.0      0     0 pts/8    Z+   09:17   0:00
[ssh] <defunct>
  madduck  28029  0.0  0.0  40704  1188 ?        Ss   09:17   0:00 ssh
pulse

The PIDs suggest thatt hese are related. It looks to me that the
second process is the clone process, which, according to strace,
only does:

  open("/dev/null", O_RDWR)               = 5
  dup2(5, 0)                              = 0
  dup2(5, 1)                              = 1
  close(5)                                = 0
  clone(child_stack=0,
flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD,
child_tidptr=0x7f901060c9f0) = 20475
  exit_group(0)                           = ?

It looks like the parent is not reaping this clone after it
terminates."

I can reproduce this.  Using -vvv shows that the process in question
forked by control_persist_detach, and exits in the daemon call in
fork_postauth.  The ssh client doesn't appear to install a SIGCHLD
handler anywhere.

-- 
Configure bugmail: https://bugzilla.mindrot.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching the assignee of the bug.


More information about the openssh-bugs mailing list