Comment 8 for bug 640732

Revision history for this message
Benjamin Drung (bdrung) wrote :

According to upstream this is a bug in libstdc++. Here's the comment from John Lindgren:

"Ubuntu bug reports show crashing in the deconstructor for the C++ class std::ios_base::Init, which is registered with __cxa_atexit and called by __cxa_finalize, sometimes when a C++ plugin is unloaded and sometimes when the program exits. The fact that not unloading any plugins is a workaround suggests to me that the deconstructor cannot handle being called more than once. My guess is that there is a bug in the Ubuntu 10.10 version of libstdc++ (but not in the 10.04 version or in the Debian version that I use).

Since I don't have Ubuntu, I can't try to reproduce this outside of Audacious for you. But I suggest you try compiling a pure C program that uses g_module_open to load and initialize (similarly to Audacious) at least two C++ modules using iostream and then uses g_module_close to unload them again.

Meanwhile, you should be able to use the workaround of not actually unloading the plugins without any ill side effects."