[ROOT] Strange assertion failure

From: Troy D. Straszheim (troy@ifh.de)
Date: Tue Jun 29 2004 - 22:30:05 MEST


Hi roottalk:

I have a strange assertion failure that I am not able to reproduce in
a small example and therefore have to ask if anything looks familiar
(for pointers on how to create a small example or find a workaround).

This occurs when I build a dictionary using the -p flag to rootcint
(which is necessary to get the boost libraries to compile.  However in
this case I am not using the boost libraries).  I get the assertion
failure (below) at runtime.  Without the -p flag, I do not get this
assertion failure.  Is this perhaps a symption of (fingers crossed)
some known bug?

This vector<I3OMGeo*, allocator<I3OMGeo*> >::iterator is a
typedef, from a template class:

template <class ElementType>
class STLVectorStoragePolicy  {

 public:

  typedef vector<ElementType>                           vector_type;
  typedef typename vector_type::iterator                iterator;
  typedef typename vector_type::const_iterator          const_iterator;
  typedef typename vector_type::reverse_iterator        reverse_iterator;
  typedef ElementType& 					reference;
  typedef const ElementType& 				const_reference;

 private:
  
  vector_type thevector;

  // etc
}

So somewhere in the code is:

STLVectorStoragePolicy<I3OMGeo*> some_instance;

And the error comes up.  Any ideas?

Thanks,

Troy Straszheim



Fatal: sizeof(::vector<I3OMGeo*,allocator<I3OMGeo*> >::iterator) == sizeof(ROOT::Shadow::vectorlEI3OMGeomUcOallocatorlEI3OMGeomUgRsPgR__iterator) violated at line 670 of `../Linux-i386/build/dataclasses/public/dataclasses/dataclassesDict.cxx'
aborting
 Generating stack trace...
 0x41cafc54 in <unknown> from /home/troy/icetray/work/Linux-i386/lib/libdataclasses.so
 0x41cb2c54 in <unknown> from /home/troy/icetray/work/Linux-i386/lib/libdataclasses.so
 0x41cf5ef5 in <unknown> from /home/troy/icetray/work/Linux-i386/lib/libdataclasses.so
 0x41b5646d in <unknown> from /home/troy/icetray/work/Linux-i386/lib/libdataclasses.so
 0x4000aefe in <unknown> from /lib/ld-linux.so.2
 0x4000afea in _dl_init + 0xaa from /lib/ld-linux.so.2
 0x4137fd9e in <unknown> from /lib/libc.so.6
 0x4000ad46 in _dl_catch_error + 0x76 from /lib/ld-linux.so.2
 0x413801ef in _dl_open + 0x5f from /lib/libc.so.6
 0x411459ab in <unknown> from /lib/libdl.so.2
 0x4000ad46 in _dl_catch_error + 0x76 from /lib/ld-linux.so.2
 0x41145286 in <unknown> from /lib/libdl.so.2
 0x41145a02 in dlopen + 0x42 from /lib/libdl.so.2
 0x4074ce8f in G__dlopen + 0x2c from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCint.so
 0x4074d839 in G__shl_load + 0x7f from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCint.so
 0x4070a02d in G__loadfile + 0x1453 from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCint.so
 0x40186b0b in TCint::Load(char const*, bool) + 0x5b from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCore.so
 0x40153623 in TSystem::Load(char const*, char const*, bool) + 0x27d from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCore.so
 0x401f9db1 in TUnixSystem::Load(char const*, char const*, bool) + 0x35 from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCore.so
 0x4030e325 in <unknown> from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCore.so
 0x4070f990 in G__call_cppfunc + 0x2bd from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCint.so
 0x406fd95e in G__interpret_func + 0x754 from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCint.so
 0x406d781c in G__getfunction + 0x164d from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCint.so
 0x40777e8b in G__getstructmem + 0xa06 from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCint.so
 0x40770464 in G__getvariable + 0x5cd from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCint.so
 0x406ce182 in G__getitem + 0x710 from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCint.so
 0x406cc93e in G__getexpr + 0x9733 from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCint.so
 0x4072882b in G__exec_function + 0x1f2 from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCint.so
 0x4072fc42 in G__exec_statement + 0x24fd from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCint.so
 0x406b23eb in G__exec_tempfile_core + 0x33e from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCint.so
 0x406b268e in G__exec_tempfile + 0x31 from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCint.so
 0x407386f1 in G__process_cmd + 0x4acf from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCint.so
 0x40186c82 in TCint::ProcessLine(char const*, TInterpreter::EErrorCode*) + 0xb4 from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCore.so
 0x40186dc3 in TCint::ProcessLineSynch(char const*, TInterpreter::EErrorCode*) + 0x4f from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCore.so
 0x400f41ce in TApplication::ProcessFile(char const*, int*) + 0x930 from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCore.so
 0x400f3816 in TApplication::ProcessLine(char const*, bool, int*) + 0x54a from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCore.so
 0x41110a20 in TRint::Run(bool) + 0x1e2 from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libRint.so
 0x08048e34 in main + 0x90 from /home/troy/icetray/work/tools/Linux-i386/lib/root/bin/root.exe
 0x4128e90c in __libc_start_main + 0xcc from /lib/libc.so.6
 0x08048d01 in TApplicationImp::ShowMembers(TMemberInspector&, char*) + 0x39 from /home/troy/icetray/work/tools/Linux-i386/lib/root/bin/root.exe



This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:08 MET