qpid-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gordon Sim <g...@redhat.com>
Subject Re: Qpid raise an exception each time my program terminates
Date Mon, 10 Oct 2011 08:22:02 GMT
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:users-subscribe@qpid.apache.org


Mime
View raw message