[
https://issues.apache.org/jira/browse/QPIDJMS-609?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18010802#comment-18010802
]
Hitesh commented on QPIDJMS-609:
--------------------------------
Thanks, [~tabish] .
As suggested, added the connection attempts limit:
{code:java}
failover:(amqp://activemq:5672)?jms.sendTimeout=5000&jms.requestTimeout=5000&provider.futureType=balanced&failover.maxReconnectAttempts=2
{code}
Now, we are seeing an exception.
Following up on [https://github.com/netty/netty/issues/15520] for the exception
observed.
> Qpid JMS 2.3.0: setClientID() Hangs Indefinitely at
> BalancedProviderFuture.sync()
> ----------------------------------------------------------------------------------
>
> Key: QPIDJMS-609
> URL: https://issues.apache.org/jira/browse/QPIDJMS-609
> Project: Qpid JMS
> Issue Type: Bug
> Components: qpid-jms-client
> Environment: * {*}Qpid JMS Client Version{*}: {{2.3.0}}
> * {*}Broker{*}: ActiveMQ {{6.1.4}} (AMQP 1.0)
> * {*}Java Version{*}: Amazon Corretto JDK 21
> Reporter: Rakhesh
> Priority: Major
>
> We're experiencing a *blocking hang* when calling {{setClientID()}} on a
> newly created JMS connection. The call *never returns* and the thread remains
> stuck in a {*}WAITING state{*}, with {*}no further AMQP activity observed{*}.
> Repro code:
> {code:java}
> JmsConnection conn = (JmsConnection) factory.createConnection();
> conn.setClientID("my-client-id"); // hangs indefinitely here{code}
> Thread dump:
> {code:java}
> "thread name custom" #101 [214] prio=5 os_prio=0 cpu=88.60ms elapsed=1646.32s
> tid=0x00007f462c03be80 nid=214 in Object.wait() [0x00007f45b37f6000]
> java.lang.Thread.State: WAITING (on object monitor)
> at java.lang.Object.wait0([email protected]/Native Method)
> - waiting on <0x00000000d80f8378> (a
> org.apache.qpid.jms.provider.BalancedProviderFuture)
> at java.lang.Object.wait([email protected]/Object.java:366)
> at java.lang.Object.wait([email protected]/Object.java:339)
> at
> org.apache.qpid.jms.provider.BalancedProviderFuture.sync(BalancedProviderFuture.java:136)
> - locked <0x00000000d80f8378> (a
> org.apache.qpid.jms.provider.BalancedProviderFuture)
> at org.apache.qpid.jms.JmsConnection.createResource(JmsConnection.java:693)
> at org.apache.qpid.jms.JmsConnection.createResource(JmsConnection.java:682)
> at
> org.apache.qpid.jms.JmsConnection.createJmsConnection(JmsConnection.java:593)
> - locked <0x00000000d80f5d58> (a org.apache.qpid.jms.meta.JmsConnectionInfo)
> at
> org.apache.qpid.jms.JmsConnection.setClientID(JmsConnection.java:353){code}
>
> h3. *Logs & Observations:*
> * {{PN_TRACE_FRM=1}} is set — *only {{-> SASL}} frames are printed*
> repeatedly.
> * No {{{}OPEN{}}}, {{{}BEGIN{}}}, or other frames are exchanged post-SASL.
> * No logs from {{io.netty}} or {{org.apache.qpid}} even after setting level
> to {{{}TRACE{}}}.
> * Upgrading to {{2.7.0+}} doesn't resolve the issue either.
>
> h3. *Expected Behavior:*
> {{setClientID()}} should either:
> * Complete successfully when broker responds
> * Or fail with a timeout/error if handshake fails
> h3. *Actual Behavior:*
> * Hangs forever — appears to be waiting for a remote peer response that
> never arrives.
> * All consumer threads waiting on {{getConnectionPoolSize()}} also block due
> to this.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]