Your message dated Thu, 6 Feb 2014 20:37:47 +0000
with message-id 
<capq4b8mhijnujxkinvtmzeb559jivy9y-0ae0j1svb+j54v...@mail.gmail.com>
and subject line aptitude: Assertion failure on exit
has caused the Debian Bug report #586429,
regarding /usr/include/boost/flyweight/refcounted.hpp:68: ... Assertion 
`count()==0' failed.
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
586429: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=586429
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: aptitude
Version: 0.6.3-3.2
Severity: important

In the course of upgrading a system from lenny to squeeze (having
already upgraded aptitude, apt, and dpkg first), I first tried running
"aptitude full-upgrade".  That complained about a few dependencies it
couldn't automatically resolve (notably upgrading from gcc-4.3 to
gcc-4.4).  I hit 'e' to go into the full graphical interface to review
the solutions.  In the graphical interface, I then immediately quit
aptitude via 'q', and got this:

aptitude: /usr/include/boost/flyweight/refcounted.hpp:68: 
boost::flyweights::detail::refcounted_value<Value, Key>::~refcounted_value() 
[with Value = 
boost::flyweights::detail::default_value_policy<generic_solver_information<aptitude_universe>::choice_set_with_hash>::rep_type,
 Key = generic_solver_information<aptitude_universe>::choice_set_with_hash]: 
Assertion `count()==0' failed.
Ouch!  Got SIGABRT, dying..

- Josh Triplett

-- Package-specific info:
aptitude 0.6.3 compiled at Oct 16 2010 18:18:04
Compiler: g++ 4.4.5
Compiled against:
  apt version 4.10.1
  NCurses version 5.7
  libsigc++ version: 2.2.4.2
  Ept support enabled.
  Gtk+ support disabled.

Current library versions:
  NCurses version: ncurses 5.7.20100313
  cwidget version: 0.5.12
  Apt version: 4.10.1
        linux-vdso.so.1 =>  (0x00007fff97f5a000)
        libapt-pkg.so.4.10 => /usr/lib/libapt-pkg.so.4.10 (0x00007f0259485000)
        libncursesw.so.5 => /lib/libncursesw.so.5 (0x00007f0259232000)
        libsigc-2.0.so.0 => /usr/lib/libsigc-2.0.so.0 (0x00007f025902c000)
        libcwidget.so.3 => /usr/lib/libcwidget.so.3 (0x00007f0258d59000)
        libept.so.1 => /usr/lib/libept.so.1 (0x00007f0258b05000)
        libxapian.so.22 => /usr/lib/libxapian.so.22 (0x00007f0258724000)
        libz.so.1 => /usr/lib/libz.so.1 (0x00007f025850d000)
        libsqlite3.so.0 => /usr/lib/libsqlite3.so.0 (0x00007f0258272000)
        libboost_iostreams.so.1.42.0 => /usr/lib/libboost_iostreams.so.1.42.0 
(0x00007f0258056000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00007f0257e3a000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f0257b26000)
        libm.so.6 => /lib/libm.so.6 (0x00007f02578a3000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007f025768c000)
        libc.so.6 => /lib/libc.so.6 (0x00007f025732b000)
        libutil.so.1 => /lib/libutil.so.1 (0x00007f0257127000)
        libdl.so.2 => /lib/libdl.so.2 (0x00007f0256f23000)
        libuuid.so.1 => /lib/libuuid.so.1 (0x00007f0256d1e000)
        libbz2.so.1.0 => /lib/libbz2.so.1.0 (0x00007f0256b0e000)
        librt.so.1 => /lib/librt.so.1 (0x00007f0256906000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f0259792000)
Terminal: xterm
$DISPLAY not set.
`which aptitude`: /usr/bin/aptitude
aptitude version information:

aptitude linkage:

-- System Information:
Debian Release: 5.0.8
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.32-xenU-3831-x86_64 (SMP w/1 CPU core)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages aptitude depends on:
ii  apt [libapt-pkg4.10]   0.8.10.3          Advanced front-end for dpkg
ii  libboost-iostreams1.42 1.42.0-4          Boost.Iostreams Library
ii  libc6                  2.11.2-7          Embedded GNU C Library: Shared lib
ii  libcwidget3            0.5.12-4          high-level terminal interface libr
ii  libept1                1.0.4             High-level library for managing De
ii  libgcc1                1:4.3.2-1.1       GCC support library
ii  libncursesw5           5.7+20100313-5    shared libraries for terminal hand
ii  libsigc++-2.0-0c2a     2.0.18-2          type-safe Signal Framework for C++
ii  libsqlite3-0           3.7.4-1           SQLite 3 shared library
ii  libstdc++6             4.4.5-10          The GNU Standard C++ Library v3
ii  libxapian22            1.2.3-2           Search engine library
ii  zlib1g                 1:1.2.3.3.dfsg-12 compression library - runtime

Versions of packages aptitude recommends:
pn  apt-xapian-index              <none>     (no description available)
pn  aptitude-doc-en | aptitude-do <none>     (no description available)
pn  libparse-debianchangelog-perl <none>     (no description available)
pn  sensible-utils                <none>     (no description available)

Versions of packages aptitude suggests:
pn  debtags                       <none>     (no description available)
pn  tasksel                       <none>     (no description available)

-- no debconf information



--- End Message ---
--- Begin Message ---
forcemerge 586429 613267 612001 599685
fixed 586429 aptitude/0.6.4-1
stop


All of these bug reports were reported against 0.6.2-* and 0.6.3-*,
linking against boost 1.42.0, all when quitting and with the abort in
the same line:

  /usr/include/boost/flyweight/refcounted.hpp:68

with message: "Assertion `count()==0' failed", in the destructor
~refcounted_value(), with different values (3 the same, another
different).


I think that this change to boost::flyweight, in release 1.45, fixed it:

https://github.com/boostorg/flyweight/commit/02fd64836627f930ec1c33b7d18b1c96f60ce4ad

The line 68, along with the whole destructor, was removed:
-    BOOST_ASSERT(count()==0);

And this was removed from doc/tutorial/technical.html:

  "In some environments, the program above fails at termination time
with something  like the following:

  Assertion failed: count()==0, file c:\boost\flyweight\refcounted.hpp, line 68"

The comment in the release notes:

* Boost 1.45 release
- Fixed a hanging problem with intermodule_holder in Win32 platforms
related to a Boost.Interprocess issue described at ticket #4606.
- Removed an internal assertion incompatible with program termination
via std::exit.


Daniel Burrows also commented in NEWS of a previous version (probably
unrelated, but significant of problems with the implementation of
flyweight at the time, the first versions):

[9/8/2009]
Version 0.5.9rc1
[...]
  + [curses] Fix a crash on exit that was caused by having dangling
             boost::flyweight objects when the global destructor was
             invoked (arguably this is a bug in Boost; we might want
             to consider moving away from flyweights for this reason).

There were indeed serious problems with versions earlier than Boost 1.42.0:

* Boost 1.39 release
The refcounted component was not thread-safe due to an incorrect
implementation and could deadlock under heavy usage conditions. This
problem has been corrected.


So I believe that with a high degree of probability this was indeed a
bug in Boost.Flyweight and that they are not present since newer
versions link to newer boost libraries where the bug is not present
anymore; and that it is safe to close these bug reports now.

Please reopen if you still have concerns about this.


Cheers.
-- 
Manuel A. Fernandez Montecelo <[email protected]>

--- End Message ---
_______________________________________________
Aptitude-devel mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/aptitude-devel

Reply via email to