activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Devin Venable <venable.de...@gmail.com>
Subject Re: CMS and EINTR signal
Date Fri, 17 Sep 2010 16:30:52 GMT
>> 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.

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() ()

Mime
View raw message