Frans Pop wrote: > Relevant part of the log attached, suggested change included.
So the relevant thing is this: Apr 28 22:27:49 in-target: debconf (developer): ----> GET mdadm/initrdstart Apr 28 22:27:49 in-target: debconf (developer): <-- Apr 28 22:27:49 in-target: debconf (developer): <---- 20 Unsupported command "" (full line was "") received from confmodule. Apr 28 22:27:49 in-target: _change called at /usr/share/perl5/Debconf/DbDriver/Stack.pm line 100 Apr 28 22:27:49 in-target: Debconf::DbDriver::Stack::_change('Debconf::DbDriver::Stack=ARRAY(0x8467af8)', 'setfield', 'Debconf::DbDriver::Stack=ARRAY(0x8467af8)', 'mdadm/initrdstart', 'value', 'undef') called at /usr/share/perl5/Debconf/DbDriver/Stac Apr 28 22:27:49 in-target: Debconf::DbDriver::Stack::setfield('Debconf::DbDriver::Stack=ARRAY(0x8467af8)', 'mdadm/initrdstart', 'value', 'undef') called at /usr/share/perl5/Debconf/Question.pm line 173 Apr 28 22:27:49 in-target: Debconf::Question::value('Debconf::Question=ARRAY(0x862c994)', 'undef') called at /usr/share/perl5/Debconf/ConfModule.pm line 302 Apr 28 22:27:49 in-target: Debconf::ConfModule::command_go('Debconf::ConfModule=HASH(0x8674804)') called at /usr/share/perl5/Debconf/ConfModule.pm line 132 Apr 28 22:27:49 in-target: Debconf::ConfModule::process_command('Debconf::ConfModule=HASH(0x8674804)', 'GO ') called at /usr/share/perl5/Debconf/ConfModule.pm line 74 Apr 28 22:27:49 in-target: Debconf::ConfModule::communicate('Debconf::ConfModule=HASH(0x8674804)') called at /usr/sbin/dpkg-preconfigure line 133 Apr 28 22:27:49 in-target: Use of uninitialized value in join or string at /usr/share/perl5/Debconf/DbDriver/Stack.pm line 107, <GEN0> line 10. The trigger here appears to be a bug in mdadm or in the passthrough frontend or cdebconf (I suspect one of the latter two). It tries to shove an enormous multi-line message across the debconf protocol without using debconf-escape(1): Apr 28 22:27:49 in-target: debconf (developer): ----> SUBST mdadm/initrdstart msg If the system's root file system is located on an MD array (RAID), it needs to be started early during the boot sequence. If it is located on a logical volume (LVM), whi Apr 28 22:27:49 in-target: Apr 28 22:27:49 in-target: If you know exactly which arrays are needed to bring up the root file system, and you want to postpone starting all other arrays to a later point in the boot sequence, enter the arrays to start here. Alternatively, enter 'al Apr 28 22:27:49 in-target: Apr 28 22:27:49 in-target: If you do not need or want to start any arrays for the root file system, leave the answer blank (or enter 'none'). This may be the case if you are using kernel autostart or do not need any arrays to boot. debconf then interprets this as a valid SUBST command, followed by a blank line that it doesn't know what to do with, followed by an invalid "If" command, etc. The protocol gets out of sync and I'd not be suprised if the effects of that are really much worse than the uninitialized value message. The details of the uninitialised value itself seem to be these: * perl debconf talks to cdebconf: "GET mdadm/initrdstart" * cdebconf, with the protocol out of sync, sees "" * cdebconf replies with an error message * perl debconf sees an error message where it expected a nice simple value * Around line 280 of Passthrough.pm, it does check if an error was returned, but if it was, it just doesn't set a value for the element at all. * Thus, the value is left undef. * Thus storing it to the DB later results in an unintialized value warning. -- see shy jo
signature.asc
Description: Digital signature