You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2022/07/28 16:22:00 UTC

[jira] [Work logged] (ARTEMIS-3909) Move RoutingContext::processReferences to PostOfficeImpl

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

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

                Author: ASF GitHub Bot
            Created on: 28/Jul/22 16:21
            Start Date: 28/Jul/22 16:21
    Worklog Time Spent: 10m 
      Work Description: clebertsuconic opened a new pull request, #4156:
URL: https://github.com/apache/activemq-artemis/pull/4156

   We were lucky that processReferences was pretty much a static operation, hence I am moving it away from RoutingContext both for clarity and avoiding state being needed on that method.
   If state was needed as part of processReferences you would had a pretty nasty bug as the IOCallback could introduce a race where a send would change the state while the IO was pending.




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

            Worklog Id:     (was: 796128)
    Remaining Estimate: 0h
            Time Spent: 10m

> Move RoutingContext::processReferences to PostOfficeImpl
> --------------------------------------------------------
>
>                 Key: ARTEMIS-3909
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-3909
>             Project: ActiveMQ Artemis
>          Issue Type: Task
>            Reporter: Clebert Suconic
>            Assignee: Clebert Suconic
>            Priority: Major
>             Fix For: 2.25.0
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Reasoning:
> - We reuse the Routing Context as an optimization on the ServerSession. 
> - By the time the Routing is done, we will process the references on a IO callback.
> - if anyone used any state in between the Routing and Storage, you could have an invalid operation.
> We were lucky that the method processReferences in PostOffice was pretty much static and no actual bug happened because of that, however I almost thought we had something scary going on.
> So, to avoid this kind of issue ever being introduced in the codebase I am moving the processReferences away from RoutingContext.



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