[Bug 812862] Re: aptd crashed with SIGSEGV in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::compare() -- __strlen_sse42 () at ../sysdeps/x86_64/multiarch/strlen-sse4.S:32

Michael Vogt michael.vogt at ubuntu.com
Mon Aug 1 10:29:59 UTC 2011


It appears this is not quite fixed yet, I managed to get a backtrace
now:

(gdb) bt full
#0  __strlen_sse2 () at ../sysdeps/x86_64/multiarch/../strlen.S:32
No locals.
#1  0x00007ffff556ee21 in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::compare(char const*) const ()
   from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
No symbol table info available.
#2  0x00007ffff7b4b1eb in operator==<char, std::char_traits<char>, std::allocator<char> > (this=0x7fffffffc310, Progress=<value optimised out>)
    at /usr/include/c++/4.6/bits/basic_string.h:2462
No locals.
#3  pkgCacheGenerator::FinishCache (this=0x7fffffffc310, 
    Progress=<value optimised out>) at pkgcachegen.cc:649
        D = <incomplete type>
        A = {_M_current = 0x907978}
        Arch = 0x7fffe622e3c8 <Address 0x7fffe622e3c8 out of bounds>
        OldDepLast = 0x7fffea7c9a70
        coInstall = false
        allPkg = <incomplete type>
        V = {<pkgCache::Iterator<pkgCache::Version, pkgCache::VerIterator>> = {<std::iterator<std::forward_iterator_tag, pkgCache::Version, long, pkgCache::Version*, pkgCache::Version&>> = {<No data fields>}, _vptr.Iterator = 0x49d390, 
            S = 0x7fffe90d9998, Owner = 0x7fffffffc3e8}, <No data fields>}
        PkgName = {static npos = <optimized out>, 
          _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x16a02b8 "gromit"}}
        P = {<pkgCache::Iterator<pkgCache::Package, pkgCache::PkgIterator>> = {<std::iterator<std::forward_iterator_tag, pkgCache::Package, long, pkgCache::Package*, pkgCache::Package&>> = {<No data fields>}, _vptr.Iterator = 0x6bb090, 
            S = 0x7fffe8daafb8, Owner = 0x7fffffffc3e8}, HashIndex = 0}
        G = {<pkgCache::Iterator<pkgCache::Group, pkgCache::GrpIterator>> = {<std::iterator<std::forward_iterator_tag, pkgCache::Group, long, pkgCache::Group*, pkgCache::Group&>> = {<No data fields>}, _vptr.Iterator = 0x7ffff7dd5ef0, 
            S = 0x7fffe8d93204, Owner = 0x7fffffffc3e8}, HashIndex = 1646}
        archs = {<std::_Vector_base<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >> = {
            _M_impl = {<std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >> = {<__gnu_cxx::new_allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >> = {<No data fields>}, <No data fields>}, _M_start = 0x907970, _M_finish = 0x907980, 
              _M_end_of_storage = 0x907980}}, <No data fields>}
#4  0x00007ffff7b4d239 in pkgCacheGenerator::MakeStatusCache (
    List=<value optimised out>, Progress=0x8f6e50, OutMap=0x0, AllowMem=224)
    at pkgcachegen.cc:1291
        Gen = {UniqHash = {0x7fffe88d43d8, 0x7fffe88d43b0, 0x0, 
            0x7fffe88d4408, 0x7fffe88d43c8, 0x7fffe88d4478, 0x0, 
            0x7fffe88d4498, 0x7fffe88d4ec0, 0x0, 0x7fffe88d43f0, 
            0x7fffe88d43f8, 0x7fffe88d4868, 0x7fffe88d43b8, 0x7fffe88d43d0, 
            0x7fffe88d4ec8, 0x7fffe88d4e78, 0x0, 0x7fffe88d4400, 
            0x7fffe88d44b8, 0x7fffe88d43a8, 0x7fffe88d4430, 0x7fffe88d43a0, 
            0x7fffe88d44a0, 0x7fffe88d4450, 0x7fffe88d4428}, Map = @0xc25db0, 
          Cache = {_vptr.pkgCache = 0x7ffff7dd5eb0, CacheFile = {
              static npos = <optimized out>, 
              _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x6ba858 ""}}, 
            Map = @0xc25db0, HeaderP = 0x7fffe88cb000, GrpP = 0x7fffe88cb000, 
            PkgP = 0x7fffe88cb000, VerFileP = 0x7fffe88cb000, 
            DescFileP = 0x7fffe88cb000, PkgFileP = 0x7fffe88cb000, 
            VerP = 0x7fffe88cb000, DescP = 0x7fffe88cb000, 
            ProvideP = 0x7fffe88cb000, DepP = 0x7fffe88cb000, 

And it turns out that

(gdb) frame 3
#3  pkgCacheGenerator::FinishCache (this=0x7fffffffc310, 
    Progress=<value optimised out>) at pkgcachegen.cc:649
649			  if (Arch == 0 || *A == Arch)
(gdb) print Arch
$1 = 0x7fffe622e3c8 <Address 0x7fffe622e3c8 out of bounds>

is the problem.

** Changed in: apt (Ubuntu)
       Status: Fix Released => Triaged

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to apt in Ubuntu.
https://bugs.launchpad.net/bugs/812862

Title:
  aptd crashed with SIGSEGV in std::basic_string<char,
  std::char_traits<char>, std::allocator<char> >::compare() --
  __strlen_sse42 () at ../sysdeps/x86_64/multiarch/strlen-sse4.S:32

Status in “apt” package in Ubuntu:
  Triaged

Bug description:
  After doing a daily upgrade, update-manager crashes. The upgrade itself seems to have gone fine.
  After the crash (it has been happening before), I noticed there seem to be temporary files left in /var/cache/apt:

  albert at saturnus:~$ ls -la /var/cache/apt/
  total 334264
  drwxr-xr-x  4 root root     4096 2011-07-19 13:51 .
  drwxr-xr-x 19 root root     4096 2011-07-09 00:00 ..
  drwxr-xr-x  2 root root     4096 2010-05-27 12:28 apt-file
  drwxr-xr-x  3 root root   253952 2011-07-19 13:51 archives
  -rw-r--r--  1 root root 39573952 2011-07-19 13:51 pkgcache.bin
  -rw-r--r--  1 root root 38797312 2011-07-19 13:51 pkgcache.bin.7mO3jw
  -rw-r--r--  1 root root 38797312 2011-07-09 00:49 pkgcache.bin.FG1qwN
  -rw-r--r--  1 root root 38797312 2011-07-13 11:29 pkgcache.bin.Km58oV
  -rw-r--r--  1 root root 38797312 2011-07-17 15:25 pkgcache.bin.KPvCey
  -rw-r--r--  1 root root 38797312 2011-07-15 18:47 pkgcache.bin.PxOREy
  -rw-r--r--  1 root root 39845888 2011-07-12 17:32 pkgcache.bin.R455IS
  -rw-r--r--  1 root root 38797312 2011-07-08 18:47 pkgcache.bin.ucU3js
  -rw-r--r--  1 root root 37445119 2011-07-19 13:48 srcpkgcache.bin

  If it matters, I have multi-arch enabled, with foreign-architecture
  i386 in /etc/dpkg/dpkg.cfg

  ProblemType: Crash
  DistroRelease: Ubuntu 11.10
  Package: aptdaemon 0.43+bzr662-0ubuntu1
  ProcVersionSignature: Ubuntu 3.0.0-5.6-generic 3.0.0-rc7
  Uname: Linux 3.0.0-5-generic x86_64
  Architecture: amd64
  CrashCounter: 1
  Date: Tue Jul 19 13:51:34 2011
  ExecutablePath: /usr/sbin/aptd
  InstallationMedia: Ubuntu 10.10 "Maverick Meerkat" - Release amd64 (20101007)
  InterpreterPath: /usr/bin/python2.7
  PackageArchitecture: all
  ProcCmdline: /usr/bin/python /usr/sbin/aptd
  ProcEnviron:
   
  SegvAnalysis:
   Segfault happened at: 0x7f07af9f17bf:	pcmpeqb (%rdi),%xmm1
   PC (0x7f07af9f17bf) ok
   source "(%rdi)" (0x7f07a88905f0) not located in a known VMA region (needed readable region)!
   destination "%xmm1" ok
  SegvReason: reading unknown VMA
  Signal: 11
  SourcePackage: aptdaemon
  StacktraceTop:
   ?? () from /lib/x86_64-linux-gnu/libc.so.6
   std::basic_string<char, std::char_traits<char>, std::allocator<char> >::compare(char const*) const () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
   pkgCacheGenerator::FinishCache(OpProgress*) () from /usr/lib/libapt-pkg.so.4.10
   pkgCacheGenerator::MakeStatusCache(pkgSourceList&, OpProgress*, MMap**, bool) () from /usr/lib/libapt-pkg.so.4.10
   pkgCacheFile::BuildCaches(OpProgress*, bool) () from /usr/lib/libapt-pkg.so.4.10
  Title: aptd crashed with SIGSEGV in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::compare()
  UpgradeStatus: Upgraded to oneiric on 2011-06-02 (46 days ago)
  UserGroups:

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/apt/+bug/812862/+subscriptions




More information about the foundations-bugs mailing list