[omniORB] Core dump within omnithread library

Adrian Sweet asweet at mpc-data.co.uk
Thu Jul 10 16:41:06 BST 2003


Hi,

I've ported a process from OmniORB305 to OmniORB401, and the program now
occasionally core dumps within the omnithread library.
The core file, see dbx output below, show that the program falls over
when trying to delete 'me', comparing this structure with one when the
process is running properly seems to show that the structure has been
corrupted.
I've tried to follow the omnithread library though and I can't see where
the corruption could occur.
Does anyone have any clues on how to track this down, or if it's likely 
to be a bug in OmniORB, Solaris or my program?

The processes are running on a Sun Ultra 2 with Solaris 8.
If you need anymore info please ask.

Thanks,

Adrian



t at 175 (l at 5) terminated by signal SEGV (no mapping at the fault address)
Current function is omni_thread::exit
   736             delete me;

(/opt/SUNWspro6/bin/../WS6U1/bin/sparcv9/dbx) where
current thread: t at 175
=>[1] omni_thread::exit(return_value = (nil)), line 736 in "posix.cc"
   [2] omni_thread_wrapper(ptr = 0x1fc468), line 426 in "posix.cc"

(/opt/SUNWspro6/bin/../WS6U1/bin/sparcv9/dbx) list
   736             delete me;
   737         }
   738       else
   739         {
   740           DB(cerr << "omni_thread::exit: called with a 
non-omnithread. Exit quietly." << endl);
   741         }
   742
   743       pthread_exit(return_value);
   744   }
   745

(/opt/SUNWspro6/bin/../WS6U1/bin/sparcv9/dbx) display *me
*me = {
     mutex         = {
         posix_mutex = {
             __pthread_mutex_flags = {
                 __pthread_mutex_flag1   = 31U
                 __pthread_mutex_flag2   = '¸'
                 __pthread_mutex_ceiling = ''
                 __pthread_mutex_type    = 65537U
             }
             __pthread_mutex_lock  = {
                 __pthread_mutex_lock64  = {
                     __pthread_mutex_pad = ""
                 }
                 __pthread_mutex_owner64 = 282613143044096ULL
             }
             __pthread_mutex_data  = 0
         }
     }
     _state        = STATE_TERMINATED
     _priority     = 1634952493
     _id           = 1835363584
     fn_void       = (nil)
     fn_ret        = 0x10
     thread_arg    = (nil)
     detached      = 2078584
     _dummy        = 1684632432
     _values       = 0x61746368
     _value_alloc  = 7602176U
     posix_thread  = 17U
     next_id_mutex = 0xbeff0
     next_id       = 172
}





More information about the omniORB-list mailing list