[Debconf-devel] Bug#478207: Bug#478207: Bug#478207: debconf: Use of uninitialized value in join or string

Joey Hess joeyh at debian.org
Tue Apr 29 00:54:45 UTC 2008


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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://lists.alioth.debian.org/pipermail/debconf-devel/attachments/20080428/e6bf4368/attachment-0001.pgp 


More information about the Debconf-devel mailing list