[Ace-users] corrupted double-linked list?

Eric eric.gosnell at embedded-sys.com
Tue Jul 10 13:08:41 CDT 2007


I have some C++ code that is functioning well on Redhat Linux AS3 with
gcc 3.4.2 (which uses libstdc++.so.5).  I am testing it in my lab on a
box with Redhat Linux ES3 with gcc 3.4.5 (which uses libstdc++.so.
6.0.3).  When testing, my application aborts while it is exiting.

*** glibc detected *** myapp: corrupted double-linked list: 0x12345678
***

I am using ACE-5.4 using ACE_Reactor in a few places.  I have found
that the error will go away if I stop using multiple threads.  It
happens less frequently with fewer threads.  It doesn't happen every
time I run.  We tried replacing all of our threading code with code
using ACE_Task to provide the threads.  We tried using ACE 5.5.  We
tried using gcc 4.1.1 (which uses libstdc++.6.0.8).  We tried most of
the permutations of these three variables.  Same results.

The abort happens while (I think) static members are being
destructed.  It is happening during the call to exit().  Since my lab
machine isn't on the web, I have to type the GDB output...  GDB shows
the following trace when I ask it "where:"

...
free()
...
delete[]
...
ACE_Select_Reactor_Handler_Repository::close()
ACE_Select_Reactor_T<...<...> >::close()
~ACE_Select_Reactor_T()
~ACE_Reactor()
...

Is this a known issue?  Does ACE have problems with libstdc++.so.
6?  ...or is it unique to me?

Eric



More information about the Ace-users mailing list