Package: udev
Version: 167-1
Severity: important
File: /sbin/udevd

udevd doesn't properly close all inherited open file handles when it's 
restarted,
causing unattended-upgrades to fail, subsequently causing anacron to hang 
"forever"

Please see bug #379645 for context, but do note that leaving open file handles
is a real bug in udevd.


Situation after unattended-ugrades upgraded udevd to 167-1.  anacron is hanging
waiting for the stderr and stdout pipes opened by run-parts to be closed:

root      2140  0.0  0.6  12332   840 ?        Ss   07:30   0:00 
/usr/sbin/anacron -s
root      2142  0.0  0.4   4004   552 ?        S    07:35   0:00  \_ /bin/sh -c 
nice run-parts --report /etc/cron.daily
root      2143  0.0  0.4   3904   552 ?        SN   07:35   0:00      \_ 
run-parts --report /etc/cron.daily
root      2147  0.0  0.0      0     0 ?        ZN   07:35   0:00          \_ 
[apt] <defunct>
root      3395  0.0  0.4  21068   560 ?        S<s  07:48   0:00 udevd --daemon
root      3495  0.0  0.9  49476  1124 ?        SNs  07:48   0:00 /usr/sbin/sshd

The log shows that two daemons were among the upgraded, udevd and sshd (also 
shown in
the partial ps output above):

frtest3:~# cat /var/log/unattended-upgrades/unattended-upgrades.log 
2011-04-02 07:52:06,607 INFO Initial blacklisted packages: 
2011-04-02 07:52:06,609 INFO Starting unattended upgrades script
2011-04-02 07:52:06,609 INFO Allowed origins are: ['o=Debian,a=unstable', 
'origin=Debian,label=Debian-Security,archive=stable']
2011-04-02 07:52:11,118 INFO Packages that are upgraded: cpp gcc libgeoip1 
libssl0.9.8 tzdata
2011-04-02 07:52:11,120 INFO Writing dpkg log to 
'/var/log/unattended-upgrades/unattended-upgrades-dpkg_2011-04-02_07:52:11.120101.log'
2011-04-02 07:52:24,610 INFO All upgrades installed
2011-04-03 07:39:55,924 INFO Initial blacklisted packages: 
2011-04-03 07:39:55,946 INFO Starting unattended upgrades script
2011-04-03 07:39:55,946 INFO Allowed origins are: ['o=Debian,a=unstable', 
'origin=Debian,label=Debian-Security,archive=stable']
2011-04-03 07:40:14,560 INFO Packages that are upgraded: apt apt-utils dpkg 
ethtool openssl x11-common
2011-04-03 07:40:14,562 INFO Writing dpkg log to 
'/var/log/unattended-upgrades/unattended-upgrades-dpkg_2011-04-03_07:40:14.561908.log'
2011-04-03 07:40:45,825 INFO All upgrades installed
2011-04-06 07:46:48,907 INFO Initial blacklisted packages: 
2011-04-06 07:46:48,917 INFO Starting unattended upgrades script
2011-04-06 07:46:48,918 INFO Allowed origins are: ['o=Debian,a=unstable', 
'origin=Debian,label=Debian-Security,archive=stable']
2011-04-06 07:47:06,148 INFO Packages that are upgraded: apt apt-utils 
base-files dpkg libltdl7 libudev0 m4 openssh-client openssh-server 
popularity-contest python-apt python-apt-common ssh udev
2011-04-06 07:47:06,149 INFO Writing dpkg log to 
'/var/log/unattended-upgrades/unattended-upgrades-dpkg_2011-04-06_07:47:06.149576.log'
2011-04-06 07:49:01,937 INFO All upgrades installed

Looking at the sshd open files shows no unexpected handles:


frtest3:~# lsof -p 3495
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF  NODE NAME
sshd    3495 root  cwd    DIR    8,1     4096     2 /
sshd    3495 root  rtd    DIR    8,1     4096     2 /
sshd    3495 root  txt    REG    8,1   516928 57532 /usr/sbin/sshd
sshd    3495 root  mem    REG    8,1    47616 82932 /lib/libnss_files-2.11.2.so
sshd    3495 root  mem    REG    8,1    43552 82161 /lib/libnss_nis-2.11.2.so
sshd    3495 root  mem    REG    8,1    31616 83524 /lib/libnss_compat-2.11.2.so
sshd    3495 root  mem    REG    8,1   131260 82972 /lib/libpthread-2.11.2.so
sshd    3495 root  mem    REG    8,1    80712 82117 /lib/libresolv-2.11.2.so
sshd    3495 root  mem    REG    8,1     8528 81876 /lib/libkeyutils.so.1.3
sshd    3495 root  mem    REG    8,1    32016 58126 
/usr/lib/libkrb5support.so.0.1
sshd    3495 root  mem    REG    8,1   167184 56946 /usr/lib/libk5crypto.so.3.1
sshd    3495 root  mem    REG    8,1    14696 82938 /lib/libdl-2.11.2.so
sshd    3495 root  mem    REG    8,1    89064 83629 /lib/libnsl-2.11.2.so
sshd    3495 root  mem    REG    8,1  1437064 82968 /lib/libc-2.11.2.so
sshd    3495 root  mem    REG    8,1    12336 81317 /lib/libcom_err.so.2.1
sshd    3495 root  mem    REG    8,1   836392 58009 /usr/lib/libkrb5.so.3.3
sshd    3495 root  mem    REG    8,1   246008 57375 
/usr/lib/libgssapi_krb5.so.2.2
sshd    3495 root  mem    REG    8,1    35104 83633 /lib/libcrypt-2.11.2.so
sshd    3495 root  mem    REG    8,1    93936 59079 /usr/lib/libz.so.1.2.3.4
sshd    3495 root  mem    REG    8,1    10648 82226 /lib/libutil-2.11.2.so
sshd    3495 root  mem    REG    8,1  1853320 57046 /usr/lib/libcrypto.so.1.0.0
sshd    3495 root  mem    REG    8,1   121976 81206 /lib/libselinux.so.1
sshd    3495 root  mem    REG    8,1    49712 81842 /lib/libpam.so.0.82.3
sshd    3495 root  mem    REG    8,1    36360 97738 /lib/libwrap.so.0.7.6
sshd    3495 root  mem    REG    8,1   128744 83634 /lib/ld-2.11.2.so
sshd    3495 root    0u   CHR    1,3      0t0   872 /dev/null
sshd    3495 root    1u   CHR    1,3      0t0   872 /dev/null
sshd    3495 root    2u   CHR    1,3      0t0   872 /dev/null
sshd    3495 root    3u  IPv4   8807      0t0   TCP *:ssh (LISTEN)
sshd    3495 root    4u  IPv6   8809      0t0   TCP *:ssh (LISTEN)


udevd however, have several files open which are obviously inherited from
the unattended-upgrades/apt process which started it:

frtest3:~# lsof -p 3395
COMMAND  PID USER   FD   TYPE             DEVICE SIZE/OFF  NODE NAME
udevd   3395 root  cwd    DIR                8,1     4096     2 /
udevd   3395 root  rtd    DIR                8,1     4096     2 /
udevd   3395 root  txt    REG                8,1   145472 48698 /sbin/udevd
udevd   3395 root  mem    REG                8,1    47616 82932 
/lib/libnss_files-2.11.2.so
udevd   3395 root  mem    REG                8,1    43552 82161 
/lib/libnss_nis-2.11.2.so
udevd   3395 root  mem    REG                8,1    89064 83629 
/lib/libnsl-2.11.2.so
udevd   3395 root  mem    REG                8,1    31616 83524 
/lib/libnss_compat-2.11.2.so
udevd   3395 root  mem    REG                8,1   131260 82972 
/lib/libpthread-2.11.2.so
udevd   3395 root  mem    REG                8,1    14696 82938 
/lib/libdl-2.11.2.so
udevd   3395 root  mem    REG                8,1  1437064 82968 
/lib/libc-2.11.2.so
udevd   3395 root  mem    REG                8,1    31744 82981 
/lib/librt-2.11.2.so
udevd   3395 root  mem    REG                8,1   121976 81206 
/lib/libselinux.so.1
udevd   3395 root  mem    REG                8,1   128744 83634 
/lib/ld-2.11.2.so
udevd   3395 root    0u   CHR                1,3      0t0   872 /dev/null
udevd   3395 root    1u   CHR                1,3      0t0   872 /dev/null
udevd   3395 root    2u   CHR                1,3      0t0   872 /dev/null
udevd   3395 root    4u  unix 0xffff880004974680      0t0  8675 socket
udevd   3395 root    5u  sock                0,7      0t0  8676 can't identify 
protocol
udevd   3395 root    6r  0000                0,9        0   870 anon_inode
udevd   3395 root    7u  0000                0,9        0   870 anon_inode
udevd   3395 root    8u  unix 0xffff880004974000      0t0  8677 socket
udevd   3395 root    9u  unix 0xffff8800049749c0      0t0  8678 socket
udevd   3395 root   10u   REG                8,1        8 40579 
/run/udev/queue.bin
udevd   3395 root   41r   REG                8,1   447439 75528 
/var/lib/dpkg/status (deleted)
udevd   3395 root   43r   REG                8,1   447439 75528 
/var/lib/dpkg/status (deleted)
udevd   3395 root   44u   CHR                1,3      0t0   872 /dev/null
udevd   3395 root   45u   REG                8,1    12802 97514 
/var/log/unattended-upgrades/unattended-upgrades-dpkg_2011-04-06_07:47:06.149576.log
udevd   3395 root   46w  FIFO                0,8      0t0  7008 pipe
udevd   3395 root   47w  FIFO                0,8      0t0  7009 pipe
udevd   3395 root   49w   REG                8,1     1157 73110 
/var/log/apt/history.log


Among these are the two pipes which run-parts is waiting for:

frtest3:~# lsof -p 2143
COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF  NODE NAME
run-parts 2143 root  cwd    DIR    8,1     4096     2 /
run-parts 2143 root  rtd    DIR    8,1     4096     2 /
run-parts 2143 root  txt    REG    8,1    15592 81341 /bin/run-parts
run-parts 2143 root  mem    REG    8,1  1437064 82968 /lib/libc-2.11.2.so
run-parts 2143 root  mem    REG    8,1   128744 83634 /lib/ld-2.11.2.so
run-parts 2143 root    0r   CHR    1,3      0t0   872 /dev/null
run-parts 2143 root    1u   REG   0,17      522  7005 /tmp/fileZ6Ndbr (deleted)
run-parts 2143 root    2u   REG   0,17      522  7005 /tmp/fileZ6Ndbr (deleted)
run-parts 2143 root    3r   DIR    8,1     4096     2 /
run-parts 2143 root    4r  FIFO    0,8      0t0  7008 pipe
run-parts 2143 root    6r  FIFO    0,8      0t0  7009 pipe



Please fix ASAP.  Leaving inherited file handles open is unwise at best, and
may be considered a security problem by some.

Thanks,
Bjørn

-- System Information:
Debian Release: wheezy/sid
  APT prefers oldstable
  APT policy: (500, 'oldstable'), (500, 'unstable'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.38-2-amd64 (SMP w/1 CPU core)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages udev depends on:
ii  debconf [debconf-2.0]        1.5.38      Debian configuration management sy
ii  libc6                        2.11.2-13   Embedded GNU C Library: Shared lib
ii  libselinux1                  2.0.98-1    SELinux runtime shared libraries
ii  libudev0                     167-1       libudev shared library
ii  libusb-0.1-4                 2:0.1.12-17 userspace USB programming library
ii  lsb-base                     3.2-27      Linux Standard Base 3.2 init scrip
ii  util-linux                   2.17.2-9.1  Miscellaneous system utilities

Versions of packages udev recommends:
ii  pciutils                      1:3.1.7-8  Linux PCI Utilities
ii  usbutils                      1:001-1    Linux USB utilities

udev suggests no packages.

-- debconf information:
  udev/new_kernel_needed: false
  udev/title/upgrade:
  udev/reboot_needed:
  udev/sysfs_deprecated_incompatibility:



--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to