[ 
https://issues.apache.org/jira/browse/ARTEMIS-5598?focusedWorklogId=976853&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-976853
 ]

ASF GitHub Bot logged work on ARTEMIS-5598:
-------------------------------------------

                Author: ASF GitHub Bot
            Created on: 29/Jul/25 21:15
            Start Date: 29/Jul/25 21:15
    Worklog Time Spent: 10m 
      Work Description: jbertram commented on code in PR #5848:
URL: https://github.com/apache/activemq-artemis/pull/5848#discussion_r2241034257


##########
artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ServerConsumerImpl.java:
##########
@@ -526,7 +526,11 @@ public void proceedDeliver(MessageReference reference) 
throws Exception {
          }
       } finally {
          pendingDelivery.countDown();
-         callback.afterDelivery();
+         synchronized (lock) {

Review Comment:
   I just incorporated `volatile`. I missed your update the last time.





Issue Time Tracking
-------------------

    Worklog Id:     (was: 976853)
    Time Spent: 50m  (was: 40m)

> Mitigate race condition on ServerConsumer callback
> --------------------------------------------------
>
>                 Key: ARTEMIS-5598
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-5598
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>            Reporter: Justin Bertram
>            Assignee: Justin Bertram
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 50m
>  Remaining Estimate: 0h
>
> There is a race condition in {{ServerConsumerImpl}} involving {{callback}} 
> which can result in a {{NullPointerException}}, e.g.:
> {noformat}
> java.lang.NullPointerException
>     at 
> org.apache.activemq.artemis.core.server.impl.ServerConsumerImpl.proceedDeliver(ServerConsumerImpl.java:532)
>     at 
> org.apache.activemq.artemis.core.server.impl.ServerConsumerImpl$BrowserDeliverer.run(ServerConsumerImpl.java:1488)
>     at 
> org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:57)
>     at 
> org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:32)
>     at 
> org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68)
>     at 
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
>     at 
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
>     at 
> org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118){noformat}
> The race happens when a message is being delivered at the same time the 
> consumer is closed.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@activemq.apache.org
For additional commands, e-mail: issues-h...@activemq.apache.org
For further information, visit: https://activemq.apache.org/contact


Reply via email to