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 [EMAIL PROTECTED] -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

