ARTEMIS-3223 - ensure distribution uses the address from the message,…#3673
Conversation
|
I am thinking there must be some tests that depend on the old behaviour, lets see. sanity checks on the ones that appear relevant don't show a culprit so I will await a full suite run to validate. |
|
there was one failure in redistribution with prefixes, which pointed to the cause of this problem. #1782 re working the fix to update the message address once the routing is transformed seems correct. It keeps the prefix logic confined to the acceptor/session that produces the message. I notice that there is already some mangling going on for legacy clients in relation to prefixes. |
|
if you can link the docs where its explained how to build artemis from your fork, i would be willing to test this on my local machine, we have written a docker-compose based test suite which spins up an artemis cluster and which is able to reproduce this error. so we would just need a compiled artemis.jar from your fork to test this out on our side i think. best regards and thanks for working on this :) |
|
clone https://github.com/gtully/activemq-artemis/tree/ARTEMIS-3223 in a few minutes you will have a distribution in: there are more instructions at: https://activemq.apache.org/components/artemis/documentation/2.0.0/hacking-guide/tests.html but I think you will be good to go. |
michaelandrepearce
left a comment
There was a problem hiding this comment.
see inline comments
|
there may be some issue though, I see an intermittent failure in org.apache.activemq.artemis.tests.integration.amqp.AmqpBridgeClusterRedistributionTest#testSendMessageToBroker0GetFromBroker2 that I need to investigate. It fails most of the time. |
i have a compiled artemis.jar with the latest commit from this branch, does it make sense to test already or should i wait until you had time to investigate and maybe push some changes? |
|
@Elyytscha I think go ahead and verify on your end. From what I have been able to understand so far the intermittent failure in org.apache.activemq.artemis.tests.integration.amqp.AmqpBridgeClusterRedistributionTest#testSendMessageToBroker0GetFromBroker2 seems to be timing related. thanks for the help :-) |
|
Hello, we tested already, but i'm not sure if we did everything correct. redistribution on the same node is now okay with mqtt and clean session false, when you subscribe to a wildcard topic with clean session false, then disconnect, then send 2 messages on node a and node b to a topic in this wildcard range with different publisher, then reconnect the client, the messages are appearing with their original topic, not with a wildcard anymore. but we have some weird behavior with the management console and with same steps above but connecting to node b instead of node a where subscriber was connected before, it does not work, there are generally no messages arriving. the weird error we see and why we cant check the settings in the webconsole is actually: with this login.config: but i can't imagine how that should be related to this pullrequest, so i think we have some errors in the setup or something has changed since activemq 2.16 which we used before.. so i think we have some configuration error, we are investigating this.. best regards |
|
Hello we can confirm that with this pullrequest our problem is solved: we can now do the following in an artemis cluster with mqtt with clean session false in mosquitto-client: without this pullrequest (plain artemis 2.18) the same test looks like this: |
a0a947e to
0fec379
Compare
|
finally got to the source of the failure in org.apache.activemq.artemis.tests.integration.amqp.AmqpBridgeClusterRedistributionTest#testSendMessageToBroker0GetFromBroker2 |
… rather than the address from the queue which may be a wildcard sub and not valid for publishng on, fix and test
…dress such that further routing will match the lack of prefixes in broker routing, different fix for redistribution with prefixes
|
rebased |
… rather than the address from the queue which may be a wildcard sub and not valid for publishng on, fix and test