On Tue, Dec 18, 2007 at 05:16:03PM +0000, Colin Watson wrote: > On Mon, Aug 27, 2007 at 10:42:41AM +0100, Adrian Bridgett wrote: > > When postfix.config runs /usr/share/debconf/confmodules, at line 45 it > > complains that FD3 is a bad file descriptor. Listing /proc/$$/fd > > shows that FD3 doesn't exist. FD2 points to the overall stderr, FD1 > > is a pipe back to FD8 of dpkg-preconfigure. FD0 is FD7 from > > dpkg-preconfigure. > > > > FD3 exists and DEBCONF_REDIR is set when ConfModule::startup() is > > called, however it looks like FD3 does not persist into the open2() > > call. > > On the other hand, it might be something completely different. I note > that both sysstat and postfix call db_stop. I don't think this should > actually break the cdebconf instance way down at the bottom of the > stack, but it's possible that it will confuse the debconf running > debconf-apt-progress. If you could run the whole install under > DEBCONF_DEBUG=developer (you did something like this earlier), then this > might shed some light on exactly which debconf frontend is seeing what > commands. [snip] > I think I'd rather figure out the underlying problem. It may be that we > need to ignore db_stop in some circumstances.
I came across this with d-i wheezy beta1. I have a late_command that runs Puppet in /target, and most package installations were failing due to EBADF on fd3, mostly when handling man-db triggers. man-db.postinst fails when the first db_* tries to write to fd3. Adding an lsof to man-db.postinst shows that fd3 isn't present. I can reproduce with something as simple as 'chroot /target apt-get -y install php5-cli' in late_command. I've posted the d-i syslog with DEBCONF_DEBUG=developer, late_command, and env/lsof/strace output at http://horde.net/~jwm/debian/bug439763/ . Could someone more knowledgable about debconf internals take a look at this, please? I'm happy to help debug further, but I'm at a loss on how to continue. john -- John Morrissey _o /\ ---- __o [email protected] _-< \_ / \ ---- < \, www.horde.net/ __(_)/_(_)________/ \_______(_) /_(_)__ -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected]

