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?