activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "David Sitsky (JIRA)" <j...@apache.org>
Subject [jira] Commented: (AMQ-1251) Broker stops delivering messages to some consumers
Date Mon, 08 Oct 2007 01:46:23 GMT

    [ https://issues.apache.org/activemq/browse/AMQ-1251?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_40301
] 

David Sitsky commented on AMQ-1251:
-----------------------------------

Hi Rob,

Thanks - I can confirm that I no longer see the following messages:

"java.lang.RuntimeException: not implemented
at org.apache.activemq.broker.region.NullMessageReference.isDropped(NullMessageReference.java:47)"

Now I would mark this issue as resolved from my perspective, except I hadn't heard back from
Hiram about one of my previous comments above:

> Hi Hiram,
> 
> Many thanks for fixing this issue - all my unit tests now work, and my application runs
far further than it used to - I suspect these problems are mine now .
>
> I am curious though, your change to VMPendingMessageCursor makes sense in that isEmpty()
need to ignore dropped messages. Do we not need to make a similar 
> change for other implementations of PendingMessageCursor, such as FilePendingMessageCursor
and StoreQueueCursor?
>
> Cheers,
> David

> Broker stops delivering messages to some consumers
> --------------------------------------------------
>
>                 Key: AMQ-1251
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1251
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 4.1.0
>         Environment: WinXP
>            Reporter: Vadim Pesochinskiy
>            Assignee: Rob Davies
>             Fix For: 5.0.0
>
>         Attachments: QueueWorkerPrefetchTest.java, TestActiveMQ.java, TestActiveMQSyncReceive.java
>
>
> I have around 40 consumers taking messages from a single queue. After awhile 1 or 2 consumers
stop receiveing any messages. Going to JMX and stopping corresponding connection causes re-connect
and messages are delivered again.
> I reproduced it twice in QA enviroment and now it happened in production. I tried to
instrument the code and set the log in debug, but that changed timing and I failed to reproduce
it after the changes.
> I suspect that runtime association b/w Queue and Consumer objects is lost on the Broker
side. 
> One of the suspects is the empty catch block in the RoundRobinDispatchPolicy (line 64)
class. It is possible that the CopyOnWrite array list is messed up and it fails when removed
consumer is added back. 
> BTW CopyOnWrite list is good when you mostly read, but not so good when you write for
every message delivery and empty catch blocks are bad in any case.
> if (firstMatchingConsumer != null) {
>       // Rotate the consumer list.
>       try {
>                 consumers.remove(firstMatchingConsumer);
>                 consumers.add(firstMatchingConsumer);
>       } catch (Throwable bestEffort) {
>       }
> }

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


Mime
View raw message