pseudo terminals in 7.0 - pts implementation

Robert Watson rwatson at FreeBSD.org
Sun Nov 18 06:45:47 PST 2007


On Sun, 18 Nov 2007, Dan Epure wrote:

> 7.0-BETA3 still has issues regarding the pts implementation .
> problems found:
> 1. - GNU screen: starting a screen, opening a few windows and quiting screen leaves the allocated pseudo terminal in use. 100 screen user, using each one opening 10 windows will deplete the default of 1000 pseudo terminals leaving the system unusable.
> 2. - 'ls /dev/ptmx' creates an additional entry in /dev/pty/. when the number of entries equals kern.pts.max the system became unusable.

The first of these is likely a reference management bug of some sort -- I find 
that if I close a pty in screen by exiting the shell, the pts device is GC'd 
properly, but if I close it by killing the session with ctrl-k, then the pts 
device is not properly GC'd and processes hung off it not properly killed.  I 
believe that closing the master device is not properly kicking the slave 
device and causing its consumers to exit, hence the pts device not being closd 
and released.  Christian was taking a look at this a couple of days ago, and 
I've CC'd him.

The second problem is more tricky, and has to do with the cloning model. 
Similar problems can exist with other variations on the ptmx implementation, 
and I need to give some thought to how to address this.

Robert N M Watson
Computer Laboratory
University of Cambridge


More information about the freebsd-current mailing list