> On Monday 20 October 2008, Durk Strooisma wrote: >> Hmm that wasn't careful of me. I fixed it, but it didn't help. Anyhow, >> it wouldn't have explained why it IS working on i386. > > Well, if you really want to find out why it's failing you'll have to add > a 'set -x' to debconf-set-selections and check the debug output in the > syslog. Okay, I did. bad.di stops really early when it's parsed by debconf-set-selections. It already stops parsing on the first lines and doesn't reach the pkgsel/include question. Which is weird, because this is the place where modifications helped to work-around the problem (see start post). ----------- The last lines of debug output of bad.di: (process:2244): + (process:2244): multiline= (process:2244): (process:2244): + (process:2244): echo (process:2244): d-i preseed/late_command string in-target sed -i '1ilarge-memory' /etc/lilo.conf ; in-target lilo ; echo 'APT::Install And then the error message is showed and no more output is logged. ----------- The last lines of debug output at the same position where bad.di breaks: (process:2243): + (process:2243): multiline= (process:2243): (process:2243): + (process:2243): echo (process:2243): d-i preseed/late_command string in-target sed -i '1il arge-memory' /etc/lilo.conf ; in-target lilo ; echo 'APT::Install-Recommends "false";' > /target/etc/apt/apt.conf And it continues parsing the whole preseed file, in contrast to bad.di. ----------- Because the preseed files are almost identical and the first 160 lines are exactly the same, chances are very small that there's a bug in the script debconf-set-selections. I would say, probably a problem with a binary that gets called by debconf-set-selections. Looking at the place where d-i breaks, it should be "echo" (line in the script: echo "$line" >> $logfile), or actually busybox. Which is still strange because the same busybox is able to echo that line in the good.di case without problems, so maybe the problem is ash, which has the preseed files as input? Okay, I'm out of ideas. I've attached the debug logs (syslog-*-clean.gz). I ran debconf-set-selections with the preseed files manually in a D-I shell. This was pretty interesting, because it gave a bit more output. With bad.di, something in /usr/share/debconf/confmodule returns 20, "Incorrect number of arguments", while good.di runs clean. Attached the logs (manual-run-*.gz). Just because I was curious I tried to run the (lenny) D-I version of debconf-set-selections with both preseed files on an installed amd64 lenny box within in an unpacked initrd directory. Both files were parsed ok. However, I had to hack around a bit in some scripts to make it work, which is not making it a representive test. I hope this helps. Durk BTW: I've attached the preseed files to keep them more future safe (in contrast to the links in the start post).
Attachment:
bad.di
Description: Binary data
Attachment:
good.di
Description: Binary data
Attachment:
syslog-bad-clean.gz
Description: GNU Zip compressed data
Attachment:
syslog-good-clean.gz
Description: GNU Zip compressed data
Attachment:
manual-run-bad.gz
Description: GNU Zip compressed data
Attachment:
manual-run-good.gz
Description: GNU Zip compressed data