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

Bug#401263: apt-get busted -- again!



Margarita,

Margarita Manterola wrote:
On 12/5/06, Jan Evert van Grootheest <j.e.van.grootheest@caiway.nl> wrote:
I am getting upset now....

Apt-get is again segfaulting!

Yesterday I removed the *.bin files from /var/cache/apt. Then ran
apt-get update, apt-get -V upgrade and apt-get clean.
Now I do apt-get update and it segfaults again!!!

A new apt was uploaded today  Could you please upgrade your apt to the
latest version in unstable (0.6.46.3-0.1) ?

It's quite possible that it still happens, since the fix was aimed at
amd64, and you are experiencing this in i386, but please do check.
I've tried the 0.2 that is in unstable at this moment (didn't have time for last two evenings). Still busted.
(I replaced the valid .bin files with the invalid ones I saved before)

It seems to me from this trace that it shouldn't be too hard to actually fix the crash itself (although the real problem, of course, is the invalid bin file).

Program received signal SIGSEGV, Segmentation fault.
0xb7c822f3 in strlen () from /lib/tls/i686/cmov/libc.so.6
(gdb) bt
#0  0xb7c822f3 in strlen () from /lib/tls/i686/cmov/libc.so.6
#1  0xb7e05316 in std::string::compare () from /usr/lib/libstdc++.so.6
#2 0xb7efa361 in debPackagesIndex::FindInCache () from /usr/lib/libapt-pkg-libc6.3-6.so.3.11 #3 0xb7ec2fdb in pkgCacheGenerator::~pkgCacheGenerator () from /usr/lib/libapt-pkg-libc6.3-6.so.3.11 #4 0xb7ec3aed in pkgMakeStatusCache () from /usr/lib/libapt-pkg-libc6.3-6.so.3.11
#5  0x08051b5c in ?? ()
#6  0xb7c2bea8 in __libc_start_main () from /lib/tls/i686/cmov/libc.so.6
#7  0x0804a461 in ?? ()
(gdb) quit

From this trace I would theorize that one of the strings passed to compare is invalid. Using a debug version of apt it shouldn't be too hard to actually fix that. But I don't know the apt code at all and don't have the time to dive into it (given a version with symbols it would be simple to provide a better trace; I would then also get the libc and libstdc++ dev (dbg?) versions).

For completeness sake there's also a trace of apt-get:

(gdb) run install apt
Starting program: /usr/bin/apt-get install apt
Failed to read a valid object file image from memory.
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
Reading package lists... 0%
Program received signal SIGSEGV, Segmentation fault.
0xb7d232f3 in strlen () from /lib/tls/i686/cmov/libc.so.6
(gdb) bt
#0  0xb7d232f3 in strlen () from /lib/tls/i686/cmov/libc.so.6
#1  0xb7ea6316 in std::string::compare () from /usr/lib/libstdc++.so.6
#2 0xb7f9b361 in debPackagesIndex::FindInCache () from /usr/lib/libapt-pkg-libc6.3-6.so.3.11 #3 0xb7f63fdb in pkgCacheGenerator::~pkgCacheGenerator () from /usr/lib/libapt-pkg-libc6.3-6.so.3.11 #4 0xb7f64aed in pkgMakeStatusCache () from /usr/lib/libapt-pkg-libc6.3-6.so.3.11 #5 0xb7f5bcff in pkgCacheFile::BuildCaches () from /usr/lib/libapt-pkg-libc6.3-6.so.3.11 #6 0xb7f5bdf4 in pkgCacheFile::Open () from /usr/lib/libapt-pkg-libc6.3-6.so.3.11
#7  0x0805da12 in ?? ()
#8 0xb7f2a34b in CommandLine::DispatchArg () from /usr/lib/libapt-pkg-libc6.3-6.so.3.11
#9  0x0804f59f in ?? ()
#10 0xb7cccea8 in __libc_start_main () from /lib/tls/i686/cmov/libc.so.6
#11 0x0804c5a1 in ?? ()

Thanks for your efforts,
Jan Evert





Reply to: