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

Bug#502850: debian-installer: D-I fails to process some correct (!) preseed files



> 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


Reply to: