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

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: