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&lt;ACE_Reactor_Token_T&lt;ACE_Token&gt;
>::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&lt;ACE_Reactor_Token_T&lt;ACE_Token&gt;
>::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

Reply via email to