Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-7948

[Broker-J] [AMQP0-9] [Publish Confirms] Client hangs if message sent to topic within no subscribers

    XMLWordPrintableJSON

Details

    Description

      Testing on master today, If publish confirms is enabled, if I sent to a topic with no subscribers, the client hangs in the following way:

      javax.jms.JMSException: Server did not respond in a timely fashion
              at org.apache.qpid.client.BasicMessageProducer_0_8.sendMessage(BasicMessageProducer_0_8.java:386)
              at org.apache.qpid.client.BasicMessageProducer.sendImpl(BasicMessageProducer.java:549)
              at org.apache.qpid.client.BasicMessageProducer.send(BasicMessageProducer.java:333)
              at org.apache.qpid.server.security.acl.MessagingACLTest.testPublishToTempTopicSuccess(MessagingACLTest.java:483)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
              at java.lang.reflect.Method.invoke(Method.java:498)
              at junit.framework.TestCase.runTest(TestCase.java:176)
              at org.apache.qpid.test.utils.QpidTestCase.runTest(QpidTestCase.java:181)
              at junit.framework.TestCase.runBare(TestCase.java:141)
              at org.apache.qpid.test.utils.QpidBrokerTestCase.runBare(QpidBrokerTestCase.java:91)
              at junit.framework.TestResult$1.protect(TestResult.java:122)
              at junit.framework.TestResult.runProtected(TestResult.java:142)
              at junit.framework.TestResult.run(TestResult.java:125)
              at junit.framework.TestCase.run(TestCase.java:129)
              at org.apache.qpid.test.utils.QpidTestCase.run(QpidTestCase.java:165)
              at junit.framework.TestSuite.runTest(TestSuite.java:255)
              at junit.framework.TestSuite.run(TestSuite.java:250)
              at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:84)
              at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:367)
              at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:274)
              at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)
              at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:161)
              at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:290)
              at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:242)
              at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:121)
      

      Currently, the Broker does not send a nack in this case, but the client awaits all the same.

      Attachments

        Activity

          People

            kwall Keith Wall
            kwall Keith Wall
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: