Hi All, We are running application which has dedicated signal handler. It uses libfbclient-2.5 to connect to Firebird database. When it receives signal 15 it tries first to shutdown active database connections with help of detach_or_drop_database routine. Unfortunatelly this call fails and application crashes. The stacktrace from debugger is shown below. Apparently there is a problem with MemoryPool which is probably destroyed earlier in another thread ( allClean in file init.cpp). In my opinion a mechanism should be implemented to prevent such situation.
Best Regards Pawel #0 0x0085cb5f in Firebird::MemoryPool::allocate_nothrow (this=0x0, size=100) at ../src/common/classes/alloc.cpp:633 #1 0x0085d039 in Firebird::MemoryPool::allocate (this=0x0, size=100) at ../src/common/classes/alloc.cpp:809 #2 0x00858af5 in operator new (this=0xffbdb578, k=1, c=335544856) at ../src/include/../common/classes/alloc.h:517 #3 Firebird::Arg::StatusVector::StatusVector (this=0xffbdb578, k=1, c=335544856) at ../src/common/StatusArg.cpp:66 #4 0x00858d4c in Firebird::Arg::Gds::Gds (this=0xffbdb578, s=335544856) at ../src/common/StatusArg.cpp:204 #5 0x0082d373 in Why::translate<Why::CAttachment> (handle=0x91867c4, checkAttachment=false) at ../src/jrd/why.cpp:712 #6 0x00825edc in detach_or_drop_database (user_status=<value optimized out>, handle=0x91867c4, proc=9, specCode=0) at ../src/jrd/why.cpp:2241 #7 0x00b8c3e1 in Database::finish() () from /sz/lib/libdsql++.so #8 0x0807ac94 in SqlDbWrapper::shutdown (this=0x91867c4) at ../src/sqldbwrapper.cpp:158 #9 0x08058181 in DbToLdapSyncer::shutdown (this=0x9186768) at ../src/dbtoldapsyncer.cpp:106 #10 0x08058cc9 in DDIFrameworkInit::shutdown (this=0xffbdcd48, ddiTask=0x0) at ../src/ddiframeworkinit.cpp:647 #11 0x08058e37 in DDIFrameworkInit::handle_signal (this=0xffbdcd48) at ../src/ddiframeworkinit.cpp:598 #12 0x002a14a0 in ACE_Sig_Handler::dispatch (signum=15, siginfo=0xffbdc8ac, ucontext=0xffbdc92c) at Sig_Handler.cpp:251 #13 0x00812a4e in signal_action (number=15, siginfo=0xffbdc8ac, context=0xffbdc92c) at ../src/jrd/os/posix/isc_ipc.cpp:369 #14 <signal handler called> #15 0x003fb430 in __kernel_vsyscall () #16 0x00c6c0b1 in select () from /lib/libc.so.6 #17 0x002373f3 in select (this=0x917e960, dispatch_set=..., max_wait_time=0x0) at /proj/egon/rtvh46/ACE_wrappers/ace/OS_NS_sys_select.inl:45 #18 ACE_Select_Reactor_T<ACE_Reactor_Token_T<ACE_Token> >::wait_for_multiple_events (this=0x917e960, dispatch_set=..., max_wait_time=0x0) at /proj/egon/rtvh46/ACE_wrappers/ace/Select_Reactor_T.cpp:1096 #19 0x0023a6d6 in handle_events_i (this=0x917e960, max_wait_time=0x0) at /proj/egon/rtvh46/ACE_wrappers/ace/Select_Reactor_T.cpp:1437 #20 ACE_Select_Reactor_T<ACE_Reactor_Token_T<ACE_Token> >::handle_events (this=0x917e960, max_wait_time=0x0) at /proj/egon/rtvh46/ACE_wrappers/ace/Select_Reactor_T.cpp:1416 #21 0x0805d086 in ACE_Reactor::handle_events (this=0x9180570, max_wait_time=0x0) at /vobs/acetao/ACE_wrappers/ace/Reactor.inl:188 #22 0x08058e9b in DDIFrameworkInit::run (this=0xffbdcd48) at ../src/ddiframeworkinit.cpp:582 #23 0x0806039c in main (argc=3, argv=0xffbdd014) at ../src/ddimain.cpp:188 -- View this message in context: http://firebird.1100200.n4.nabble.com/Segmentation-Fault-in-libfbclient-2-5-RedHat6-0-tp3514625p3514625.html Sent from the firebird-devel mailing list archive at Nabble.com. ------------------------------------------------------------------------------ Achieve unprecedented app performance and reliability What every C/C++ and Fortran developer should know. Learn how Intel has extended the reach of its next-generation tools to help boost performance applications - inlcuding clusters. http://p.sf.net/sfu/intel-dev2devmay Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel