You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Rob Godfrey (JIRA)" <qp...@incubator.apache.org> on 2008/06/20 11:35:45 UTC

[jira] Updated: (QPID-1144) Test org.apache.qpid.test.testcases.ImmediateMessageTest.test_QPID_517_ImmediateFailsConsumerDisconnectedTxPubSub intermittently failing

     [ https://issues.apache.org/jira/browse/QPID-1144?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Rob Godfrey updated QPID-1144:
------------------------------

    Component/s:     (was: Java Client)
                 Java Broker

The issue is with reference counting; and in particular that in the refactored broker messages are not actually enqueued until a TxCommit has been sent

In processing immediate messages, the enqueue on IncomingMessage decrements due to the "immediate" failure before it increments due to the creation of the returned message exception.

Fix by ensuring that there is at least one reference to the message while the TxCommit processes the publish action

> Test org.apache.qpid.test.testcases.ImmediateMessageTest.test_QPID_517_ImmediateFailsConsumerDisconnectedTxPubSub intermittently failing 
> -----------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: QPID-1144
>                 URL: https://issues.apache.org/jira/browse/QPID-1144
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Broker
>    Affects Versions: M3
>            Reporter: Arnaud Simon
>            Assignee: Rob Godfrey
>             Fix For: M3
>
>
> Description: 
> This test is intermittently failing because the excepted exception (no consumers) is not thrown. I believe this is because of a threading issue and the expected exception is masked with the broker throwing the following exception:
>  org.apache.qpid.AMQChannelException: Failed to commit: Reference count for message id (HC:3808966 ID:1 Ref:-1073741825) has gone below 0.
> 	at org.apache.qpid.framing.AMQMethodBodyImpl.getChannelException(AMQMethodBodyImpl.java:73)
> 	at org.apache.qpid.server.handler.TxCommitHandler.methodReceived(TxCommitHandler.java:75)
> 	at org.apache.qpid.server.handler.ServerMethodDispatcherImpl.dispatchTxCommit(ServerMethodDispatcherImpl.java:547)
> 	at org.apache.qpid.framing.amqp_0_9.TxCommitBodyImpl.execute(TxCommitBodyImpl.java:103)
> 	at org.apache.qpid.server.state.AMQStateManager.methodReceived(AMQStateManager.java:204)
> pool-2-thread-4 2008-06-20 10:04:19,261 DEBUG [qpid.client.protocol.AMQProtocolHandler] (18607473)Method frame received: [BasicReturnBodyImpl: replyCode=313, replyText=Immediate delivery is not possible., exchange=amq.topic, routingKey=sendTo_1]
> pool-2-thread-4 2008-06-20 10:04:19,264 DEBUG [qpid.client.handler.BasicReturnMethodHandler] New JmsBounce method received
> 	at org.apache.qpid.server.protocol.AMQMinaProtocolSession.methodFrameReceived(AMQMinaProtocolSession.java:296)
> 	at org.apache.qpid.framing.AMQMethodBodyImpl.handle(AMQMethodBodyImpl.java:93)
> 	at org.apache.qpid.server.protocol.AMQMinaProtocolSession.frameReceived(AMQMinaProtocolSession.java:236)
> 	at org.apache.qpid.server.protocol.AMQMinaProtocolSession.dataBlockReceived(AMQMinaProtocolSession.java:192)
> pool-2-thread-4 2008-06-20 10:04:19,266 DEBUG [apache.qpid.client.AMQSession] Message[Channel Id : 1ContentHeader org.apache.qpid.framing.ContentHeaderBody@1ba6076] received in session
> 	at org.apache.qpid.server.protocol.AMQPFastProtocolHandler.messageReceived(AMQPFastProtocolHandler.java:244)
> 	at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived(AbstractIoFilterChain.java:703)
> 	at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:362)
> 	at org.apache.mina.common.support.AbstractIoFilterChain.access$1200(AbstractIoFilterChain.java:54)
> 	at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:800)
> 	at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProtocolDecoderOutput.java:60)
> 	at org.apache.mina.filter.codec.QpidProtocolCodecFilter.messageReceived(QpidProtocolCodecFilter.java:174)
> 	at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:362)
> 	at org.apache.mina.common.support.AbstractIoFilterChain.access$1200(AbstractIoFilterChain.java:54)
> pool-1-thread-1 2008-06-20 10:04:19,270 DEBUG [qpid.client.message.AbstractJMSMessageFactory] Creating message from buffer with position=0 and remaining=1
> 	at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:800)
> 	at org.apache.qpid.pool.PoolingFilter.messageReceived(PoolingFilter.java:334)
> 	at org.apache.mina.filter.ReferenceCountingIoFilter.messageReceived(ReferenceCountingIoFilter.java:96)
> 	at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:362)
> main 2008-06-20 10:04:19,272 DEBUG [qpid.client.protocol.AMQProtocolHandler] Sent frame Frame channelId: 1, bodyFrame: [TxCommitBodyImpl: ]
> pool-1-thread-1 2008-06-20 10:04:19,274 DEBUG [apache.qpid.client.AMQSession] Message returned with error code 313: no consumers (Immediate delivery is not possible.)
> 	at org.apache.mina.common.support.AbstractIoFilterChain.access$1200(AbstractIoFilterChain.java:54)
> 	at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:800)
> 	at org.apache.qpid.pool.Event$ReceivedEvent.process(Event.java:86)
> 	at org.apache.qpid.pool.Job.processAll(Job.java:114)
> 	at org.apache.qpid.pool.Job.run(Job.java:153)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
> 	at java.lang.Thread.run(Thread.java:619)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.