Package: fakeroot
Version: 1.2.10
Severity: important

When tracking down problems with a build script that extensively uses fakeroot
I found that the fakeroot script doesn't properly wait for faked to terminate.
This introduces a race condition that may trash the save-file on successive
fakeroot calls.

The offending part of the fakeroot script is:
|trap "kill -s TERM $PID ; wait $PID >/dev/null 2>&1" EXIT INT
Because 'faked' has detached itself from the terminal, it cannot be waited for
with the sh builtin command 'wait'.

When the output redirection to /dev/null is removed from the above line, you
will see the error message:
|wait: pid ... is not a child of this shell

This may lead to concurrent access of multiple faked daemons called with the
'--load' and '--save-file' options, especially on a heavily loaded machine,
or if the save-file is quite large.

Reproduction:
I did not yet find an easy way to reproduce this bug consistently, but the
implications of the failing wait system call for the faked subprocess should
be obvious.


Lothar Wassmann

-- System Information:
Debian Release: 3.1
Architecture: i386 (i686)
Kernel: Linux 2.4.27
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)

Versions of packages fakeroot depends on:
ii  libc6                 2.3.2.ds1-22sarge3 GNU C Library: Shared libraries an

-- no debconf information


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

Reply via email to