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

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

                Author: ASF GitHub Bot
            Created on: 26/Apr/24 08:24
            Start Date: 26/Apr/24 08:24
    Worklog Time Spent: 10m 
      Work Description: iiliev2 commented on PR #4899:
URL: 
https://github.com/apache/activemq-artemis/pull/4899#issuecomment-2078890094

   Initially I attempted what you suggest about lazy initializing the node id 
like that, precicely because I wanted to keep the code changes to a minimum. 
However, that ended up being much more complicated(rather than simplified), 
because of the way `ClientSessionFactoryImpl` creates a new connection object 
on re-connects. It is very hard to reason about both when reading the code and 
when needing to debug it at runtime. So instead of this, I had to fill the 
missing gaps to use the data that is already there anyway, just wasn't being 
propagated deep enough.
   
   IMO from a functional standpoint, adding the `TransportConfiguration` to the 
connector(and connection) is the right thing to do here anyway. I assume due to 
historical reasons, those classes were working with a subset of the data, and 
no one had a good reason to fix this until now. For example 
`NettyConnection#getConnectorConfig` was creating a bogus transport 
configuration, even though when it was created there was a configuration which 
was not being passed to it.
   
   `Ping` is already the only `Packet` that is being modified. Why do you want 
to use a raw `byte[]` rather than `UUID`? IMO that will be more confusing - it 
suggests that there could be other kind of data that can be contained.




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

    Worklog Id:     (was: 916585)
    Time Spent: 0.5h  (was: 20m)

> Zero persistence does not work in kubernetes
> --------------------------------------------
>
>                 Key: ARTEMIS-4305
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-4305
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>            Reporter: Ivan Iliev
>            Priority: Major
>          Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> In a cluster deployed in kubernetes, when a node is destroyed it terminates 
> the process and shuts down the network before the process has a chance to 
> close connections. Then a new node might be brought up, reusing the old 
> node’s ip. If this happens before the connection ttl, from artemis’ point of 
> view, it looks like as if the connection came back. Yet it is actually not 
> the same, the peer has a new node id, etc. This messes things up with the 
> cluster, the old message flow record is invalid.
> One way to fix it could be if the {{Ping}} messages which are typically used 
> to detect dead connections could use some sort of connection id to match that 
> the other side is really the one which it is supposed to be.



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

Reply via email to