This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

C++ STL code not reentrant


COMPILER: c++ 2.95.2

SYSTEM: SunOS sargas 5.7 Generic_106541-10 sun4u sparc SUNW,Ultra-4

COMPILER OPTIONS:

c++ -D_PTHREADS -D_REENTRANT  -DHAVE_CONFIG_H -I.
-I/home/aivanov/ldas/lib/framecpp/src -I. -I../../../include
-I../../../lib/general/src -I../../../include -Wall -I../../../include
-I../../../lib/general/src -I../../../include -Wall -g -O2
-I/ldcg/include -Wp,-MD,.deps/tocreader.pp -c  -fPIC -DPIC
/home/aivanov/ldas/lib/framecpp/src/tocreader.cc -o .libs/tocreader.lo

PROBLEM:

multithreaded program crashes unless code is synchronized with a mutex.
In other words, code is not reentrant. It always happens  in string
memory allocation . Are strings not reentrant?

Here is what the stack looks like:

FIRST THREAD:
#0  0xfeda1224 in seg5 () from
/usr/platform/SUNW,Ultra-4/lib/libc_psr.so.1
#1  0xfeda08b0 in blalign () from
/usr/platform/SUNW,Ultra-4/lib/libc_psr.so.1
#2  0x26220 in basic_string<char, string_char_traits<char>,
__default_alloc_template<false, 0> >::Rep::clone (this=0x5b4a0)
    at
/ldcg/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/../../../../include/g++-3/std/bastring.h:73

#3  0xff1a75e8 in FrameCPP::SH::SH (this=0x898f8, in=@0xfe101c10)
    at
/ldcg/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/../../../../include/g++-3/std/bastring.h:75

#4  0xff1a82b8 in FrameCPP::SH::read (in=@0xfe101c10)
    at /home/aivanov/ldas/lib/framecpp/src/sh.cc:105
#5  0xff17b500 in FrameCPP::Input::readStructureHeader (this=0xfe101c10)

    at /home/aivanov/ldas/lib/framecpp/src/input.cc:148
#6  0xff17ae1c in FrameCPP::Input::readNextObjectHeader
(this=0xfe101c10)
    at /home/aivanov/ldas/lib/framecpp/src/input.cc:84
#7  0xff16e3f0 in FrameCPP::FrameReaderBase::readFrame (this=0xfe101c10)

    at /home/aivanov/ldas/lib/framecpp/src/framereaderbase.cc:121
#8  0x25d24 in read_test (a=0xfe101c10)
    at /home/aivanov/ldas/lib/framecpp/tests/../src/framereader.hh:93

SECOND THREAD:
#0  0xff224b58 in vector<basic_string<char, string_char_traits<char>,
__default_alloc_template<false, 0> >, allocator<basic_string<char,
string_char_traits<char>, __default_alloc_template<false, 0> > >
>::_M_insert_aux ()
   from
/usr1/local/aivanov/ldas/lib/framecpp/tests/../src/.libs/libframecpp.so.0

#1  0xff17c614 in FrameCPP::Input::addError (this=0xfd909c10,
msg=@0xfd9097f0)
    at
/ldcg/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/../../../../include/g++-3/stl_vector.h:325

#2  0xff17bc10 in FrameCPP::Input::endDictionaryElement
(this=0xfd909c10)
    at /home/aivanov/ldas/lib/framecpp/src/input.cc:203
#3  0xff17ae54 in FrameCPP::Input::readNextObjectHeader
(this=0xfd909c10)
    at /home/aivanov/ldas/lib/framecpp/src/input.cc:96
#4  0xff16e3f0 in FrameCPP::FrameReaderBase::readFrame (this=0xfd909c10)

    at /home/aivanov/ldas/lib/framecpp/src/framereaderbase.cc:121
#5  0x25d24 in read_test (a=0xfd909c10)
    at /home/aivanov/ldas/lib/framecpp/tests/../src/framereader.hh:93

---
Thanks,
Alex


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]