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