On Fri, 5 Jun 2020, Joe Yeung wrote:
The open() call returned #EBUSY 16 /* Device or resource busy */ But I don't see it anything occupying it with "sudo lsof" I see it only when I attach it with screen (or sudo screen to be precise).I also looked into strace, but I don't see anything difference between the succeeded first connection and the failed subsequent connection. At this point, I think I am stuck. :-(
what is the exact sequence of the opening/closing? understanding pseudoterminals can be hard... I figured out that /dev/pts/X port is held open by the Xen console daemon xenconsoled; so this is not handled by QEMU. Xen is nice enough to tell me which pts to use to get to the console: # xenstore-read /local/domain/34/console/tty /dev/pts/3 and there is a command to connect to the console (xl console). After using "xm console" or doing "cu -l /dev/pts/3" I am getting the console of the guest as it should be. After closing the connection I check again and the same pseudoterminal is still the console: root@o:~ # xenstore-read /local/domain/34/console/tty /dev/pts/3 root@o:~ # cu -l /dev/pts/3 Connecteddebian login: debian login: debian login: ~
[EOT] root@o:~ # xenstore-read /local/domain/34/console/tty /dev/pts/3 root@o:~ # ls -l /dev/pts/3 crw--w---- 1 root tty 0x115 Jun 6 00:08 /dev/pts/3 root@o:~ # The pseudoterminal continues to work. I have prepared the screenrc file "console": screen /dev/pts/3 kill and ran the seqence: root@o:~ # xenstore-read /local/domain/34/console/tty /dev/pts/3 root@o:~ # ls -l /dev/pts/3 crw--w---- 1 root tty 0x115 Jun 6 00:08 /dev/pts/3 root@o:~ # screen -c console (clear screen and exits with "[screen is terminating]") and then I have root@o:~ # ls -l /dev/pts/[34] crw--w---- 1 root tty 0x116 Jun 6 00:12 /dev/pts/4 root@o:~ # xenstore-read /local/domain/34/console/tty /dev/pts/4 So I'll have a new device.... which works. I think there are two issues: 1) screen closes the slave device in a way that makes it disappear (normal for ptys!), cu does not. 2) Linux has another layer of complexity (devpts) etc. - please see https://lwn.net/Articles/688809/ for some partial insight on that. Maybe your permission-related issues (which I don't have) might be related to the issues described in the article. Can you try "cu -l <yourpseudoterminal>" instead of screen and see if that helps?
smime.p7s
Description: S/MIME Cryptographic Signature