Re: [Ekiga-devel-list] Crash on... startup!



Damien Sandras schrieb:
Le mardi 13 octobre 2009 à 20:19 +0200, Damien Sandras a écrit :
Le mardi 13 octobre 2009 à 19:26 +0200, Michael Rickmann a écrit :
Julien Puydt schrieb:
Julien Puydt a écrit :
I had a nice surprise this morning, trying to launch ekiga :
I'll try to update my ptlib&opal to see if I have just been unlucky.
I retried this evening : still crashing :-(

Snark
_______________________________________________
I tried this evening on WIN32 : still crashing.
I guess we will have to exercise patience.
I made shure that the reason for the crash is mainly in Opal's handlers.cxx index maps and not in Ekiga's heap. With attached patch Ekiga works.
I'll insist with Robert, but currently he does not answer me anymore.


Is this your crash :
(gdb) bt
#0  0xb6f7d44f in __exchange_and_add (__mem=0xb521ab02, __val=-1)
at /usr/include/c++/4.3/ext/atomicity.h:51
#1  0xb6f8cc3b in PAtomicInteger::operator-- (this=0xb521ab02)
at /usr/include/ptlib/critsec.h:248
#2  0xb6ac0dfb in PContainer::Destruct (this=0xb541bb18) at
ptlib/common/contain.cxx:123
#3  0xb7f19e8d in ~PAbstractArray (this=0xb541bb18, __in_chrg=<value
optimized out>) at /usr/include/ptlib/array.h:69
#4  ~PBaseArray (this=0xb541bb18, __in_chrg=<value optimized out>)
at /usr/include/ptlib/array.h:271
#5  ~PCharArray (this=0xb541bb18, __in_chrg=<value optimized out>)
at /usr/include/ptlib/array.h:564
#6  ~PString (this=0xb541bb18, __in_chrg=<value optimized out>)
at /usr/include/ptlib/pstring.h:102
#7  0xb73cf93d in ~pair (this=0xb541bb18, __in_chrg=<value optimized
out>) at /usr/include/c++/4.3/bits/stl_pair.h:73
#8  0xb73cf961 in __gnu_cxx::new_allocator<std::pair<PString const,
PSafePtr<SIPHandler, PSafePtrBase> > >::destroy (this=0xb555013f,
__p=0xb541bb18)
    at /usr/include/c++/4.3/ext/new_allocator.h:118
#9  0xb73cf9a5 in std::_Rb_tree<PString, std::pair<PString const,
PSafePtr<SIPHandler, PSafePtrBase> >, std::_Select1st<std::pair<PString
const, PSafePtr<SIPHandler, PSafePtrBase> > >, std::less<PString>,
std::allocator<std::pair<PString const, PSafePtr<SIPHandler,
PSafePtrBase> > > >::_M_destroy_node (this=0xb540f82c, __p=0xb541bb08)
at /usr/include/c++/4.3/bits/stl_tree.h:390
#10 0xb74191ac in std::_Rb_tree<PString, std::pair<PString const,
PSafePtr<SIPHandler, PSafePtrBase> >, std::_Select1st<std::pair<PString
const, PSafePtr<SIPHandler, PSafePtrBase> > >, std::less<PString>,
std::allocator<std::pair<PString const, PSafePtr<SIPHandler,
PSafePtrBase> > > >::erase (
    this=0xb540f82c, __position=...) at /usr/include/c
++/4.3/bits/stl_tree.h:1319
#11 0xb74191e6 in std::map<PString, PSafePtr<SIPHandler, PSafePtrBase>,
std::less<PString>, std::allocator<std::pair<PString const,
PSafePtr<SIPHandler, PSafePtrBase> > > >::erase (this=0xb540f82c,
__position=...) at /usr/include/c++/4.3/bits/stl_map.h:523
#12 0xb740c19f in SIPHandlersList::Remove (this=0xb540f748,
handler=0x825b288)
at /home/damien/Workspace/ekiga/opal/src/sip/handlers.cxx:1650
#13 0xb73c8637 in SIPEndPoint::GarbageCollection (this=0xb540f450)
at /home/damien/Workspace/ekiga/opal/src/sip/sipep.cxx:378
#14 0xb6f7e38e in OpalManager::GarbageCollection (this=0x82094d0)
at /home/damien/Workspace/ekiga/opal/src/opal/manager.cxx:1587
#15 0xb6f7e454 in OpalManager::GarbageMain (this=0x82094d0)
at /home/damien/Workspace/ekiga/opal/src/opal/manager.cxx:1607
#16 0xb6f8665b in OpalManager::GarbageMain_PNotifier::Call
(this=0x820bf28, note=..., extra=0)
    at /home/damien/Workspace/ekiga/opal/include/opal/manager.h:1452
#17 0xb7f19667 in PNotifierTemplate<int>::operator() (this=0x8208ca8,
notifier=..., extra=0) at /usr/include/ptlib/notifier.h:129
#18 0xb6a9eef9 in PSimpleThread::Main (this=0x8208c08) at
ptlib/common/osutils.cxx:1964
#19 0xb6a5cd1a in PThread::PX_ThreadStart (arg=0x8208c08) at
ptlib/unix/tlibthrd.cxx:459
#20 0xb673d4b5 in start_thread () from /lib/i686/cmov/libpthread.so.0
#21 0xb6381a5e in clone () from /lib/i686/cmov/libc.so.6


I get it by simply disabling an account.

The middle portions look identical in the Win32 on-startup crash, i.e. from #18 to #12. I just rebuild a crashing version to make absolutely shure. Could there be another problem? When you look at opal/src/sip/handlers.cxx:1689 FindBy(m_byAorAndPackage, MakeUrlKey(aor, method), mode); . As no event package is given that FindBy will only find handlers entered without event package. It is the simpler version of the SIPHandlersList::FindSIPHandlerByUrl function and is called e.g. from opal/src/sip/sipep.cxx:948 (in SIPEndPoint::Register) and others in that file. Before revision 23623 to Opal which contained the m_byAOR map these calls were always satisfied. Hopefully it will work now as well.
Now the backtrace of the on-startup crash is ready:

(gdb) #0  0x059924e2 in std::_Rb_tree_rebalance_for_erase ()
    at /home/mrickma/src/ekiga/win32/include/ptlib/videoio.h:1077
#1 0x059786bd in std::_Rb_tree<PString, std::pair<PString const, PSafePtr<SIPHandler, PSafePtrBase> >, std::_Select1st<std::pair<PString const, PSafePtr<SIPHandler, PSafePtrBase> > >, std::less<PString>, std::allocator<std::pair<PString const, PSafePtr<SIPHandler, PSafePtrBase> > > >::erase (this=0xc238fc0,
    __position={_M_node = 0xe6a3508})
at /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/c++/bits/stl_tree.h:1247 #2 0x059671dd in std::map<PString, PSafePtr<SIPHandler, PSafePtrBase>, std::less<PString>, std::allocator<std::pair<PString const, PSafePtr<SIPHandler, PSafePtrBase> > > >::erase (this=0xc238fc0, __position={_M_node = 0xe6a3508}) at /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/c++/bits/stl_map.h:454 #3 0x057b1041 in SIPHandlersList::Remove (this=0xc238ed8, handler=0xe6c60d8)
    at /home/mrickma/src/ekiga/win32/opal/src/sip/handlers.cxx:1650
#4  0x05783727 in SIPEndPoint::GarbageCollection (this=0xc238bb8)
    at /home/mrickma/src/ekiga/win32/opal/src/sip/sipep.cxx:378
#5  0x054e2b11 in OpalManager::GarbageCollection (this=0xc231e08)
    at /home/mrickma/src/ekiga/win32/opal/src/opal/manager.cxx:1587
#6  0x054e2bc4 in OpalManager::GarbageMain (this=0xc231e08)
    at /home/mrickma/src/ekiga/win32/opal/src/opal/manager.cxx:1607
#7  0x058b0e90 in OpalManager::GarbageMain_PNotifier::Call (this=0xc236848,
    note= 0xc232918, extra=0)
    at /home/mrickma/src/ekiga/win32/opal/include/opal/manager.h:1460
#8  0x045cffd6 in PNotifierTemplate<int>::operator() (this=0xc232970,
    notifier= 0xc232918, extra=0)
    at /home/mrickma/src/ekiga/win32/ptlib/include/ptlib/notifier.h:129
#9  0x04565fb3 in PSimpleThread::Main (this=0xc232918)
    at ptlib/common/osutils.cxx:1964
#10 0x04534886 in PThread::MainFunction (threadPtr=0xc232918)
    at ptlib/msos/win32.cxx:722
#11 0x77c0a3b0 in msvcrt!_endthreadex () from C:\WINDOWS\system32\msvcrt.dll
#12 0x7c80b683 in KERNEL32!GetModuleFileNameA ()
   from C:\WINDOWS\system32\kernel32.dll
#13 0x00000000 in ?? ()

My #9 to #3 correspond to your #18 to #12 with only #7/#16 having a line mutation. Regarding the different Os and the different starting point I would call it a highly conserved crash domain.
Michael


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]