bug in procps-ng
Corinna Vinschen
corinna-cygwin@cygwin.com
Wed Mar 13 10:28:00 GMT 2019
On Mar 12 22:55, Brian Inglis wrote:
> On 2019-03-12 11:03, Corinna Vinschen wrote:
> > I hope you're still with us.
> > There appears to be a bug in procps-ng:
> > $ procps -e
> > PID TTY TIME CMD
> > 1507 ? 00:00:00 tcsh
> > 1529 ? 00:00:00 cygrunsrv
> > 1506 ? 00:00:00 mintty
> > 1531 ? 00:00:00 bash
> > 1551 pty0 00:00:00 procps
> > 1488 pty0 00:00:00 sh
> > 1487 ? 00:00:01 mintty
> > 1530 ? 00:00:00 xterm
> > As you can see, the tty info seems to be broken. In theory
> > procps-ng should fetch the tty info from /proc/<PID>/stat.
> > As far as I can see, the tty info in this file is correct
> > for other processes. But procps only shows info for its
> > own tty for some reason.
> > Any idea why?
>
> Are /dev/con?? and /dev/pty? visible only in those processes?
/dev/consX, yes. the ptys are always visible.
> Need persistent visible mappings to /dev/con?? and /dev/pty?
> Inconsistencies in /dev/con?? handling: why do con* appear under major 5 with
> different minors, and also as 3,0 consistent with /proc/PID/stat?
>
> $ ls -l /dev/ | egrep con\|pty
> crw-rw-rw- 1 Brian Users 5, 255 Mar 12 22:23 conin
> crw-rw-rw- 1 Brian Users 5, 254 Mar 12 22:23 conout
> crw-rw-rw- 1 Brian Users 5, 1 Mar 12 22:23 console
> crw--w---- 1 Brian Users 136, 0 Mar 12 22:23 pty0
> $ ls -l /dev/{con,pty}* # /proc/PID/stat maps to these major/minors
> crw-rw-rw- 1 Brian Users 3, 0 Mar 12 22:23 /dev/conin
> crw-rw-rw- 1 Brian Users 3, 0 Mar 12 22:23 /dev/conout
> crw-rw-rw- 1 Brian Users 3, 0 Mar 12 22:23 /dev/console
> crw--w---- 1 Brian Users 136, 0 Mar 12 22:23 /dev/pty0
Try the same from within a console:
$ ls -l /dev/ | egrep con\|pty
crw-rw-rw- 4 corinna vinschen 3, 0 Mar 13 10:37 conin
crw-rw-rw- 4 corinna vinschen 3, 0 Mar 13 10:37 conout
crw-rw-rw- 4 corinna vinschen 3, 0 Mar 13 10:37 cons0
crw-rw-rw- 4 corinna vinschen 3, 0 Mar 13 10:37 console
crw--w---- 1 corinna vinschen 136, 0 Mar 13 10:37 pty0
[~](64)$ ls -l /dev/{con,pty}*
crw-rw-rw- 4 corinna vinschen 3, 0 Mar 13 10:37 /dev/conin
crw-rw-rw- 4 corinna vinschen 3, 0 Mar 13 10:37 /dev/conout
crw-rw-rw- 4 corinna vinschen 3, 0 Mar 13 10:37 /dev/cons0
crw-rw-rw- 4 corinna vinschen 3, 0 Mar 13 10:37 /dev/console
crw--w---- 1 corinna vinschen 136, 0 Mar 13 10:37 /dev/pty0
The device numbers for conin/out/sole are different from a pty
because the 5,X device numbers are the offical device numbers
of these devices. But these files have no further meaning from
inside a pty.
As soon as you are inside a console, the conin/out/sole devices
are redirected to your actual consX, which has a device number
3,X and all of them are connected now to a real device.
> [...]
> Cygwin /proc/PID/stat[$7] appears to have major in upper half, minor in lower
> half e.g. 8912896 -> 00880000 -> 136,0; 196608 -> 00030000 -> 3,0.
> Linux man 5 proc defines:
> (7) tty_nr %d
> The controlling terminal of the process. (The minor device number is
> contained in the combination of bits 31 to 20 and 7 to 0; the major
> device number is in bits 15 to 8.)
Thanks. I changed the output of /proc/<PID>/stat accordingly, but
now `procps' always shows a question mark rather than a pty number,
so that's not the problem:
https://paste.fedoraproject.org/paste/BqENX~bhFzNkYQpa-lwWMw/raw
Corinna
--
Corinna Vinschen
Cygwin Maintainer
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://cygwin.com/pipermail/cygwin-apps/attachments/20190313/41008434/attachment.sig>
More information about the Cygwin-apps
mailing list