If the wrong port is given when trying to connect to a broker then we
get a hanging problem.  The stack backtrace is:

#0  0x00007f0ca3837a82 in pthread_cond_timedwait@@GLIBC_2.3.2 () from
/usr/lib64/libpthread.so.0
(gdb) bt
#0  0x00007f0ca3837a82 in pthread_cond_timedwait@@GLIBC_2.3.2 () from
/usr/lib64/libpthread.so.0
#1  0x00007f0caa023db6 in
decaf::internal::util::concurrent::PlatformThread::interruptibleWaitOnCondition
(condition=0x1571040, mutex=0x1607090, mills=100, nanos=0,
complete=...)
    at decaf/internal/util/concurrent/unix/PlatformThread.cpp:239
#2  0x00007f0caa022220 in doWaitOnMonitor (nanos=0, mills=100,
thread=0x15711c0, monitor=0x7f0b94003570, interruptible=<optimized
out>) at decaf/internal/util/concurrent/Threading.cpp:750
#3  decaf::internal::util::concurrent::Threading::waitOnMonitor
(monitor=0x7f0b94003570, mills=100, nanos=0) at
decaf/internal/util/concurrent/Threading.cpp:1565
#4  0x00007f0ca9f0d282 in
activemq::transport::failover::FailoverTransport::oneway
(this=0x1603780, command=...) at
activemq/transport/failover/FailoverTransport.cpp:445
#5  0x00007f0ca9ed720f in
activemq::transport::correlator::ResponseCorrelator::request
(this=<optimized out>, command=...) at
activemq/transport/correlator/ResponseCorrelator.cpp:218
#6  0x00007f0ca9ce02ae in
activemq::core::ActiveMQConnection::syncRequest (this=<optimized out>,
command=..., timeout=<optimized out>) at
activemq/core/ActiveMQConnection.cpp:1276
#7  0x00007f0ca9ce2fa7 in
activemq::core::ActiveMQConnection::ensureConnectionInfoSent
(this=0x1606d40) at activemq/core/ActiveMQConnection.cpp:1357
#8  0x00007f0ca9ce614c in
activemq::core::ActiveMQConnection::setClientID (this=0x1606d40,
clientID=...) at activemq/core/ActiveMQConnection.cpp:669

What's the best way to prevent it hanging in this situation?

If a man stands in a forest and no woman is around to hear him, is he still 
wrong?

Reply via email to