Only place we do Qpid connection/session/receiver handles is inside a static function run on a separate thread. The objects are released as required and that function terminated and thread no longer exists. as for the libraries I only have Qpid & MySql so I don't think there's another user. I already tried changing the link order - no effect
On Mon, Oct 10, 2011 at 10:23 AM, Gordon Sim [via Apache Qpid users] < [email protected]> wrote: > On 10/09/2011 08:37 PM, yoav wrote: > > > Hi, > > I'm pretty new to Qpid and my application includes an AP{I server > listening > > on a Qpid connection. We did the sequence as shown in the examples (i.e., > > > Connection connection(..); ... connection.open(); .. Receiver receiver > --> > > connection.close(); receiver.close();) and it works fine. > > Problem is that in some configurations when exiting from our application, > > > AFTER application cleanup is completed we have a Qpid exception > > #0 0x00007fe73311cd05 in raise () from /lib/x86_64-linux-gnu/libc.so.6 > > #1 0x00007fe733120a47 in abort () from /lib/x86_64-linux-gnu/libc.so.6 > > #2 0x00007fe7350476dd in __gnu_cxx::__verbose_terminate_handler() () > from > > /usr/lib/x86_64-linux-gnu/libstdc++.so.6 > > #3 0x00007fe735045926 in ?? () from > > /usr/lib/x86_64-linux-gnu/libstdc++.so.6 > > #4 0x00007fe735045953 in std::terminate() () from > > /usr/lib/x86_64-linux-gnu/libstdc++.so.6 > > #5 0x00007fe735045a5e in __cxa_throw () from > > /usr/lib/x86_64-linux-gnu/libstdc++.so.6 > > #6 0x00007fe7311b827a in qpid::sys::PollerPrivate::interruptAll > > (this=<value optimized out>) at qpid/sys/epoll/EpollPoller.cpp:327 > > #7 0x00007fe731591e2f in qpid::client::(anonymous > > namespace)::IOThread::~IOThread (this=0x7fe7317fa660, __in_chrg=<value > > optimized out>) at qpid/client/ConnectionImpl.cpp:132 > > #8 0x00007fe733122961 in exit () from /lib/x86_64-linux-gnu/libc.so.6 > > #9 0x00007fe733107f06 in __libc_start_main () from > > /lib/x86_64-linux-gnu/libc.so.6 > > #10 0x000000000040e0a9 in _start () > > > > The issue is probably in this QPID_POSIX_CHECK: > > void interruptAll() { > > ::epoll_event epe; > > // Not EPOLLONESHOT, so we eventually get all threads > > epe.events = ::EPOLLIN; > > epe.data.u64 = 2; // Keep valgrind happy > > QPID_POSIX_CHECK(::epoll_ctl(epollFd, EPOLL_CTL_MOD, > > alwaysReadableFd,&epe)); > > } > > As a result, I get core dumps each termination, which cause a sever a > disk > > space problem > > Any ideas why this happens and how to avoid it? > > My guess is it is related to scope of variables holding Qpid API > objects. E.g. do you have any static variables holding > connection/session/receiver handles? Are you using any libraries that > themselves use Qpid (and if so what is the link order)? > > --------------------------------------------------------------------- > Apache Qpid - AMQP Messaging Implementation > Project: http://qpid.apache.org > Use/Interact: mailto:[hidden > email]<http://user/SendEmail.jtp?type=node&node=6876163&i=0> > > > > ------------------------------ > If you reply to this email, your message will be added to the discussion > below: > > http://apache-qpid-users.2158936.n2.nabble.com/Qpid-raise-an-exception-each-time-my-program-terminates-tp6875052p6876163.html > To start a new topic under Apache Qpid users, email > [email protected] > To unsubscribe from Apache Qpid users, click > here<http://apache-qpid-users.2158936.n2.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=2158936&code=eW9hdkB6YWRhcmFzdG9yYWdlLmNvbXwyMTU4OTM2fC0xMDc5MzQwNTg=>. > > -- View this message in context: http://apache-qpid-users.2158936.n2.nabble.com/Qpid-raise-an-exception-each-time-my-program-terminates-tp6875052p6876498.html Sent from the Apache Qpid users mailing list archive at Nabble.com.
