* Robert Watson <rwatson_at_FreeBSD.org> wrote: > Yes. There's also another known issue, likely not corrected by this patch, > in which closing the pty before the pts fails to properly wake up processes > hung off the pts and inform them of its impending doom, resulting in the > pty/pts pair never being garbage-collected. I've not tracked this down > yet, but you can reproduce it by running screen(1) and then "killing" a > screen. screen(1) closes the pty and relies on the pty/pts mechanism to do > the rest, which doesn't. Indeed. I also noticed this bug. Simply killing sshd also reproduces this. The leak is caused by the obvious if-statement inside pty_maybecleanup(). This is because SESSRELE() is called after sshd closes the pty, if I can remember correctly. This also causes the dreaded `jail leak', because device nodes still exist that have been created with make_dev_cred(), so the ucred is still referenced. I guess the problem is that we can only call pty_maybecleanup() when ptsclose() is called and not when the real use-count of the tty has reached zero. Yours, -- Ed Schouten <ed_at_fxq.nl> WWW: http://g-rave.nl/
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:23 UTC