public inbox for cygwin-apps@cygwin.com
 help / color / mirror / Atom feed
From: Corinna Vinschen <corinna-cygwin@cygwin.com>
To: Brian Inglis <Brian.Inglis@systematicsw.ab.ca>
Cc: cygwin-apps@cygwin.com, Wayne Porter <wporter82@gmail.com>
Subject: Re: bug in procps-ng
Date: Wed, 13 Mar 2019 10:28:00 -0000	[thread overview]
Message-ID: <20190313102846.GW3785@calimero.vinschen.de> (raw)
In-Reply-To: <565e4e13-2bea-09a8-6edc-de2f8342a5a0@SystematicSw.ab.ca>

[-- Attachment #1: Type: text/plain, Size: 3522 bytes --]

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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2019-03-13 10:28 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-12 17:03 Corinna Vinschen
2019-03-13  4:55 ` Brian Inglis
2019-03-13 10:28   ` Corinna Vinschen [this message]
2019-03-13 18:14     ` Achim Gratz
2019-03-14 20:25       ` Achim Gratz
2019-03-15 11:52         ` Corinna Vinschen
2019-03-15 16:05           ` Achim Gratz
2019-03-15 20:42             ` Corinna Vinschen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190313102846.GW3785@calimero.vinschen.de \
    --to=corinna-cygwin@cygwin.com \
    --cc=Brian.Inglis@systematicsw.ab.ca \
    --cc=cygwin-apps@cygwin.com \
    --cc=wporter82@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).