Bug#425397: tasksel/pkgsel causing Etch netboot install to hang indefinitely
On Thu, Jul 05, 2007 at 10:40:35AM +0100, Adrian Bridgett wrote:
> I've hit this exact issue (nice workaround with the "echo" trick) and
> been doing some more debug. With _loads_ of debug the bug
> dissappeared :-( But I have now managed to see where the race is.
>
> When the hang occurs, the last few things that debconf does (booted
> with "install DEBCONF_DEBUG=5" with additional "warn" stuck in:
> (I can see dpkg-preconfigure calling "make_frontend()")
> read "PROGRESS SET 18"
> send "0 OK"
> read "CAPB"
> send "0 multiselect escape multiselect backup progresscancel"
> recv "SUBST debconf-apt-progress/info DESCRIPTION Retrieving file 84 of 84"
> send "0" (no OK FWIW)
> recv "PROGRESS INFO deconf-apt-progress/info"
> send "0 OK"
> (hang occurs)
[...]
> So the hang occurs when dpkg-preconfigure calls make_frontend _before_
> the last PROGRESS_INFO has occured).
Thanks; once I wrapped my brain around what was going on, this was a
great help!
I *believe* that this means the problem is that debconf-apt-progress
doesn't properly serialise status messages from apt (translated into
debconf commands) and debconf commands being passed through from
subsidiary processes. This wouldn't particularly be a surprise as
debconf-apt-progress just hands a dup of its debconf-connected fds to
apt and lets it scribble over them with no locking. Oops.
Without being able to reproduce this myself, I can never quite be sure,
but I think I've fixed this in debconf 1.5.14 by creating separate pipes
for debconf communication with child processes and adding a select()
loop to serialise everything properly.
I would very much appreciate testing once debconf 1.5.14 lands on the
images you're using.
Cheers,
--
Colin Watson [cjwatson@debian.org]
Reply to: