[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#570382: after upgrade: "vlogin: openpty(): No such file or directory"]



I can confirm that this manifested with the 2.6.26-21lenny3 security
upgrade in Feburary (DSA-1996). It seems like what happens is when the
system boots, it runs the /etc/init.d/util-vserver script, which
attempts to automatically start all the guests which have the 'default'
mark. Sometimes things are fine, sometimes some guests give the 'vlogin:
openpty()' error when you try to 'vserver <guest> enter' them. You also
will get an error trying to ssh to the guest, or anything else related
to pty. 

Its not reliable which guests get this problem, sometimes its none of
them, sometimes its all of them. When you restart the machine, the only
thing you can do is attempt to enter each guest, and those which give
the openpty() problem, you need to issue a 'vserver <guest> stop;
vserver <guest> start' to get them back. This resolves it every time.

I looked to see if the guest has /dev/pts and /dev/ptmx when first
trying to enter it by doing:

 vnamespace -e <guest> ls -l /vservers/<guest>/dev/{ptmx,pts}

this shows me that on an affected guests /dev/pts is empty, but has a
'0' on those that do not have a problem. The /dev/ptmx exists like
normal: 

crw-rw-rw- 1 root root 5, 2 2006-11-10 16:07 /vservers/test/dev/ptmx

So the guests that have this problem have no /dev/pts/0, they have a
/dev/pts, just nothing in it. Typically /dev/pts/0 doesn't get created
until you do 'vserver <guest> enter' or use ssh to enter, or something
else allocates a tty. It seems like a 'vserver <guest> enter' doesn't
seem to be able to create it.

Looking at the /proc/mounts in the guest's namespace, with the
folliowing: 

vnamespace -e <guest> cat /proc/mounts

I see this:

total 0
rootfs / rootfs rw 0 0
/dev/md0 / ext3 rw,errors=remount-ro,data=ordered 0 0
udev /dev tmpfs rw,size=10240k,mode=755 0 0
tmpfs /dev/shm tmpfs rw,nosuid,nodev 0 0
devpts /dev/pts devpts rw,nosuid,noexec,gid=5,mode=620 0 0
none /proc proc rw,nosuid,nodev,noexec 0 0
usbfs /proc/bus/usb usbfs rw,nosuid,nodev,noexec 0 0
/dev/md1 /usr ext3 rw,errors=continue,data=ordered 0 0
/dev/md2 /var ext3 rw,errors=continue,data=ordered 0 0
/dev/loop3 /vservers ext3 rw,errors=continue,data=ordered 0 0
none /vservers/test/proc proc rw,nodev 0 0
/dev/loop3 /vservers/test ext3 rw,errors=continue,data=ordered 0 0

If I look at the way the initscript does the starting, I see that it is
invoked in the following way:

/usr/lib/util-vserver/vserver-wrapper start  >/dev/tty8 </dev/tty8 2>/dev/tty8 &

Looking at /dev/tty8, i see a segfault in
/usr/lib/util-vserver/vserver.functions line 907. This is using the
lenny version of the user-space utilities (0.30.216~r2772-6), and line
907 is the opening curly brace as follows:

function _mountVserverInternal
{ 


Micah

Attachment: pgpx0819OcuXX.pgp
Description: PGP signature


Reply to: