activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Timothy Bish <tabish...@gmail.com>
Subject Re: CMS and EINTR signal
Date Mon, 20 Sep 2010 13:21:43 GMT
On Fri, 2010-09-17 at 11:30 -0500, Devin Venable wrote:
> >> all is well. Since implementing activemq, a new error type is showing
> >> up that wasn't handled by our logic: EINTR which means "Interrupted
> >> system call".
> >>
> >
> > What version of ActiveMQ-CPP are you using?
> > What OS and Compiler?
> 
> Lib: activemq-cpp-library-3.2.3
> OS: Linux centdev 2.6.18-194.8.1.el5 #1 SMP Thu Jul 1 19:04:48 EDT
> 2010 x86_64 x86_64 x86_64 GNU/Linux
> Compiler: gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-48)
> 
> >
> > Have you tracked where the EINTR signal is coming from?  It shouldn't be
> > coming from CMS unless there is a bug in the code.  It would be helpful
> > to know what operation is throwing the EINTR signal.
> >
> 
> Yes, the EINTR signal is coming from a call to msgrcv which is apart
> from activemq-cpp.  In the code I'm working with there is a polling
> loop that calls msgrcv to pull messages from a Linux message queue.
> The EINTR code only appears when I am running a producer in the same
> program in async mode.  I catch my signal in my main thread.  BT:
> 
> (gdb) bt
> #0  0xffffe410 in __kernel_vsyscall ()
> #1  0x009f5573 in msgrcv () from /lib/libc.so.6
> 
> 
> There are four other threads running.  Here are the back traces for
> the other four threads.

You'd need to investigate the mechanics of the msgrcv call to determine
what the conditions are that would cause it to send the EINTR signal.  I
don't know of any reason why the CMS client would cause this behavior.

Regards


> 
> Thread 1:
> 
> (gdb) bt
> #0  0xffffe410 in __kernel_vsyscall ()
> #1  0x00ab7ef2 in pthread_cond_timedwait@@GLIBC_2.3.2 ()
>    from /lib/libpthread.so.0
> #2  0x0448982b in
> decaf::internal::util::concurrent::ConditionImpl::wait(decaf::util::concurrent::ConditionHandle*,
> long long, long long) ()
>    from /usr/lib/libactivemq-cpp.so.9
> 
> 
> Thread 2:
> 
> (gdb) bt
> #0  0xffffe410 in __kernel_vsyscall ()
> #1  0x00ab7ef2 in pthread_cond_timedwait@@GLIBC_2.3.2 ()
>    from /lib/libpthread.so.0
> #2  0x0448982b in
> decaf::internal::util::concurrent::ConditionImpl::wait(decaf::util::concurrent::ConditionHandle*,
> long long, long long) ()
>    from /usr/lib/libactivemq-cpp.so.9
> #3  0x0450848f in decaf::util::concurrent::Mutex::wait(long long, int) ()
>    from /usr/lib/libactivemq-cpp.so.9
> #4  0x0450831a in decaf::util::concurrent::Mutex::wait(long long) ()
>    from /usr/lib/libactivemq-cpp.so.9
> 
> Thread 3:
> 
> 
> #0  0xffffe410 in __kernel_vsyscall ()
> #1  0x00ab7ef2 in pthread_cond_timedwait@@GLIBC_2.3.2 ()
>    from /lib/libpthread.so.0
> #2  0x0448982b in
> decaf::internal::util::concurrent::ConditionImpl::wait(decaf::util::concurrent::ConditionHandle*,
> long long, long long) ()
>    from /usr/lib/libactivemq-cpp.so.9
> #3  0x0450848f in decaf::util::concurrent::Mutex::wait(long long, int) ()
>    from /usr/lib/libactivemq-cpp.so.9
> #4  0x0450831a in decaf::util::concurrent::Mutex::wait(long long) ()
>    from /usr/lib/libactivemq-cpp.so.9
> #5  0x0448919c in
> decaf::internal::util::concurrent::SynchronizableImpl::wait(long long)
> () from /usr/lib/libactivemq-cpp.so.9
> 
> 
> Thread 4:
> 
> #0  0xffffe410 in __kernel_vsyscall ()
> #1  0x00ab7bc5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
> #2  0x0448992a in
> decaf::internal::util::concurrent::ConditionImpl::wait(decaf::util::concurrent::ConditionHandle*)
> () from /usr/lib/libactivemq-cpp.so.9
> #3  0x045084d9 in decaf::util::concurrent::Mutex::wait() ()
>    from /usr/lib/libactivemq-cpp.so.9
> #4  0x041d66e2 in activemq::threads::CompositeTaskRunner::run() ()

-- 
Tim Bish

Open Source Integration: http://fusesource.com

Follow me on Twitter: http://twitter.com/tabish121
My Blog: http://timbish.blogspot.com/


Mime
View raw message