Package: sysvinit-utils Version: 2.86.ds1-56 Severity: wishlist Tags: patch
Hi,
we use fuse-unionfs for /usr in a pool of systems. When rebooting
killall5 will stop all processes to avoid race conditions and then
calls readproc(). readproc(), being a common function for killall5 and
pidof, in turn stat()s /proc/pid/exe for every process. Since our /usr
is a fuse filesystem this deadlocks. killall5 waits for stat() and
stat() waits for the stopped fuse-unionfs process.
The attached patch adds a new parameter to readproc() telling it to
stat or not to stat and sets this flag for the killa5 and pidof case.
The patch also mlocks killall5 into memory to avoid demand page
loading. This would deadlock if /sbin is on a fuse filesystem.
MfG
Goswin
-- System Information:
Debian Release: lenny/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.22-xen-ubuntu
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Versions of packages sysvinit-utils depends on:
ii libc6 2.7-10 GNU C Library: Shared libraries
ii libselinux1 2.0.59-1 SELinux shared libraries
ii libsepol1 2.0.25-1 Security Enhanced Linux policy lib
sysvinit-utils recommends no packages.
-- no debconf information
84-killall_no_stat.dpatch
Description: application/shellscript

