Subject: debconf: v1.2.31 822.pm script errors during apt-get install
Date: Tue, 04 Mar 2003 04:06:41 -0500
Package: debconf
Version: 1.2.31
Severity: normal
I ran 'apt-get install fontconfig debconf-utils console-common'.
There were errors:
Preparing to replace console-common 0.7.20 (using .../console-common_0.7.21_all.deb) ...
Use of uninitialized value in substitution (s///) at /usr/share/perl5/Debconf/Format/822.pm line 57, <$__ANONIO__> line 2502.
Use of uninitialized value in substitution (s///) at /usr/share/perl5/Debconf/Format/822.pm line 72, <GEN6> line 9.
Use of uninitialized value in concatenation (.) or string at /usr/share/perl5/Debconf/Format/822.pm line 73, <GEN6> line 9.
Unpacking replacement console-common ...
Then I ran 'dlocate /usr/share/perl5/Debconf/Format/822.pm',
which pointed to 'debconf'...
-- System Information
Debian Release: testing/unstable
Kernel Version: Linux Arf 2.4.20-k6 #1 Mon Jan 13 23:49:14 EST 2003 i586 unknown unknown GNU/Linux
Versions of the packages debconf depends on:
ii perl-base 5.8.0-17 The Pathologically Eclectic Rubbish Lister.
[email protected] wrote:
> I ran 'apt-get install fontconfig debconf-utils console-common'.
> There were errors:
>
> Preparing to replace console-common 0.7.20 (using .../console-common_0.7.21_all.deb) ...
> Use of uninitialized value in substitution (s///) at /usr/share/perl5/Debconf/Format/822.pm line 57, <$__ANONIO__> line 2502.
> Use of uninitialized value in substitution (s///) at /usr/share/perl5/Debconf/Format/822.pm line 72, <GEN6> line 9.
> Use of uninitialized value in concatenation (.) or string at /usr/share/perl5/Debconf/Format/822.pm line 73, <GEN6> line 9.
> Unpacking replacement console-common ...
>
> Then I ran 'dlocate /usr/share/perl5/Debconf/Format/822.pm',
> which pointed to 'debconf'...
Can you please send me your debconf databases, in
/var/cache/debconf/*.db
You can leave out the password db file, and send them privately, leaving
out the cc to [email protected]
Also, if you can reproduce the problem, a transcript of reproducing it
with DEBCONF_DEBUG=. set and exported in the environment would be
useful.
--
see shy jo
On 6 Mar 2003, at 17:58, Joey Hess <[email protected]> wrote:
> You could try apt-get --reinstall install.
Tried, as per your advice. No error.
> You could also try dpkg-reconfiguring them.
Again, no error.
Note that both of these were reinstalling console-common v0.7.21, but NOT
replacing v0.7.20, as was the case with the error.
> I don't see anything to lead to the problem you reported though.
A peek through '822.pm' shows the relevant lines of code:
Use of uninitialized value in substitution (s///) at
/usr/share/perl5/Debconf/Format/822.pm line 57, <$__ANONIO__> line 2502.
57 $value=~s/\\n/\n/g;
Use of uninitialized value in substitution (s///) at
/usr/share/perl5/Debconf/Format/822.pm line 72, <GEN6> line 9.
72 $val=~s/\n/\\n/g;
Use of uninitialized value in concatenation (.) or string at
/usr/share/perl5/Debconf/Format/822.pm line 73, <GEN6> line 9.
73 print $fh ucfirst($field).": $val\n";
I don't speak 'perl' too well at present, and can barely guess what the code is
doing. Lines #57 & #72 are suspiciously similar, and #73 depends on #72,
probably failing because '$val' is bad. The assignments look like 'sed'
commands, maybe in line #72 a global search for linefeeds, replacing these with
"\n", and vice-versa for #57.
If so, how can #57 have an 'uninitialized value'? Where is the input data for
line #57 (& #72) anyway? (Some standard Perl buffer I suppose.) What does
'$__ANONIO__' mean?
One way or another, any code that takes the trouble to complain is suspicious.
Either it can't handle the input it's supposed to, or it's erroneously being
given input it isn't supposed to handle.
Alfie Costa wrote:
> A peek through '822.pm' shows the relevant lines of code:
>
> Use of uninitialized value in substitution (s///) at
> /usr/share/perl5/Debconf/Format/822.pm line 57, <$__ANONIO__> line 2502.
>
> 57 $value=~s/\\n/\n/g;
Yes, it's clearly a symptom of the formatter trying to parse a line that
is not in key: value format. Which would point to some kind of database
corruption, which is why I asked for your databases in the first place.
Problem is, I don't see anything corrupt in your database, nor anything
that might be the result of running something corrupt into the formatter
and back out (not that that would be very obvious). Nor do I see a way
for the formatter to output anything corrupt. This leaves disk
corruption or something I cannot see, which is why I said I cannot see
anything to lead to what you reported.
> One way or another, any code that takes the trouble to complain is suspicious.
> Either it can't handle the input it's supposed to, or it's erroneously being
> given input it isn't supposed to handle.
That's exactly why I write my code to complain when it gets something it
never should.
I will just have to wait for someone else to run into the problem I
suppose. Until I can get the input file that causes it, I can't begin to
guess how that input file got corrupted. Thanks for trying to reproduce
it.
--
see shy jo
Joey,
Here is what I'm typing and getting. I'm sending you my .dat
files. The message don't stop there. If you want all of them, let me
know.
siegle:~# apt-get upgrade
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages have been kept back:
libgd1 psi pstoedit
The following packages will be upgraded:
auto-apt cpp-3.3 debianutils dict dictfmt dictzip ethereal
ethereal-common
g++-3.3 gcc-3.3 gcc-3.3-base gnome-session latex2html libart-2.0-2
libcurl2
libgcc1 libgnome2-0 libgnome2-common libgnomeprint2.2-0
libgnomeprint2.2-data libgnomeprintui2.2-0 libgnomeprintui2.2-common
libscrollkeeper0 libstdc++5 libstdc++5-3.3-dev libwine nfs-common
scrollkeeper texi2html traceroute wine xprt-common xprt-xprintorg
33 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
1 not fully installed or removed.
Need to get 0B/22.9MB of archives.
After unpacking 1885kB of additional disk space will be used.
Do you want to continue? [Y/n]
Use of uninitialized value in substitution (s///) at
/usr/share/perl5/Debconf/Fo
rmat/822.pm line 57, <$__ANONIO__> line 9101.
Use of uninitialized value in substitution (s///) at
/usr/share/perl5/Debconf/Fo
rmat/822.pm line 57, <$__ANONIO__> line 9103.
Use of uninitialized value in substitution (s///) at
/usr/share/perl5/Debconf/Fo
rmat/822.pm line 57, <$__ANONIO__> line 9119.
Use of uninitialized value in substitution (s///) at
/usr/share/perl5/Debconf/Fo
rmat/822.pm line 57, <$__ANONIO__> line 9120.
-jonathan
Joey,
I'm unable to give you my .dat because the hard drive has died.
Lucky for me this machine had a 3 year warranty. One more point I should
make, this all started when I upgraded to Sarge and /var filled up. I had
to fsck the partition the next 2 times I rebooted. So this problem is
probably only reproduceable when your /var partition fills up...
On Thu, 1 Apr 2004, jsiegle wrote:
> Joey,
> Here is what I'm typing and getting. I'm sending you my .dat
> files. The message don't stop there. If you want all of them, let me
> know.
>
> siegle:~# apt-get upgrade
> Reading Package Lists... Done
> Building Dependency Tree... Done
> The following packages have been kept back:
> libgd1 psi pstoedit
> The following packages will be upgraded:
> auto-apt cpp-3.3 debianutils dict dictfmt dictzip ethereal
> ethereal-common
> g++-3.3 gcc-3.3 gcc-3.3-base gnome-session latex2html libart-2.0-2
> libcurl2
> libgcc1 libgnome2-0 libgnome2-common libgnomeprint2.2-0
> libgnomeprint2.2-data libgnomeprintui2.2-0 libgnomeprintui2.2-common
> libscrollkeeper0 libstdc++5 libstdc++5-3.3-dev libwine nfs-common
> scrollkeeper texi2html traceroute wine xprt-common xprt-xprintorg
> 33 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
> 1 not fully installed or removed.
> Need to get 0B/22.9MB of archives.
> After unpacking 1885kB of additional disk space will be used.
> Do you want to continue? [Y/n]
> Use of uninitialized value in substitution (s///) at
> /usr/share/perl5/Debconf/Fo
> rmat/822.pm line 57, <$__ANONIO__> line 9101.
> Use of uninitialized value in substitution (s///) at
> /usr/share/perl5/Debconf/Fo
> rmat/822.pm line 57, <$__ANONIO__> line 9103.
> Use of uninitialized value in substitution (s///) at
> /usr/share/perl5/Debconf/Fo
> rmat/822.pm line 57, <$__ANONIO__> line 9119.
> Use of uninitialized value in substitution (s///) at
> /usr/share/perl5/Debconf/Fo
> rmat/822.pm line 57, <$__ANONIO__> line 9120.
>
> -jonathan
>
Debbugs is free software and licensed under the terms of the GNU General
Public License version 2. The current version can be obtained
from https://bugs.debian.org/debbugs-source/.