[
https://issues.apache.org/jira/browse/ARTEMIS-2380?focusedWorklogId=303995&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-303995
]
ASF GitHub Bot logged work on ARTEMIS-2380:
-------------------------------------------
Author: ASF GitHub Bot
Created on: 30/Aug/19 01:41
Start Date: 30/Aug/19 01:41
Worklog Time Spent: 10m
Work Description: wy96f commented on issue #2703: ARTEMIS-2380 Fix
delivering message in the case of consume close
URL: https://github.com/apache/activemq-artemis/pull/2703#issuecomment-526421999
> This goes back to note the linger messages can be tracked at consumer
level or even the server session. not queue though. E.g. if the issue is
consumer is closed but session not committed, then it seems more logical that
its the sessions responsibility to track and to have the logic within the
session rollback/commit logic.
> Having it at the queue level i can just see is prone to leaks like we have
had other places which by putting the logic and ownership into the correct
place resolved the leak and also cleaned up.
Yes, we can track linger messages at consumer or session level. Linger
consumer should also be tracked in queue, otherwise i'm not sure how to get
linger messages without going through consumer while calling
QueueImpl::getDeliveringMessages. Moreover in our case, we need to know which
consumer is closed with these linger messages by which we can locate ip address
where problem occurs.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
Issue Time Tracking
-------------------
Worklog Id: (was: 303995)
Time Spent: 4h 40m (was: 4.5h)
> Fix delivering message in the case of consume close
> ---------------------------------------------------
>
> Key: ARTEMIS-2380
> URL: https://issues.apache.org/jira/browse/ARTEMIS-2380
> Project: ActiveMQ Artemis
> Issue Type: Bug
> Components: Broker
> Reporter: yangwei
> Priority: Major
> Time Spent: 4h 40m
> Remaining Estimate: 0h
>
> When consumer is closed and transaction is not committed or rollbacked, the
> msg acked is not showed by delivering message but counted by delivering count.
> We add closed consumer if any message is acked but not committed or
> rollbacked, and remove closed consumer if transaction is finished. In this
> way, delivering messages can be properly retained.
> During calling hasCosnumer and getConsumerId, there is some race condition
> that emptyConsumerId is called causing following getConsumerId throws
> IllegalStateException. Also optimize it without extra effort.
--
This message was sent by Atlassian Jira
(v8.3.2#803003)