You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by Antoine Toulme <an...@gmail.com> on 2016/10/14 07:39:11 UTC

Problem with MQTT pattern subscription in a cluster

Hello,

we are trying out ActiveMQ Artemis with MQTT. We are interested in using pattern subscription such as foo/# to listen to a set of topics.

We created a cluster in which one client publishes to a node, while an other one subscribes to another.

When using pattern subscriptions, we see that the subscriber does not receive the message.
When using an exact subscription (foo/bar), the subscriber receives the message.

I tried to recreate the situation by modifying one of the clustering integration tests (MessageRedistributionTest). I’m not quite there yet mostly because of my ignorance of the internals.

Are you aware of this issue? I’d be happy to show you my demo and the results. Also happy to share whatever code, however crappy, I have written to create a test for this so far.

Cheers,

Antoine

Re: Problem with MQTT pattern subscription in a cluster

Posted by Antoine Toulme <an...@gmail.com>.
I have filed an issue to follow up:
https://issues.apache.org/jira/browse/ARTEMIS-806 <https://issues.apache.org/jira/browse/ARTEMIS-806>

Please let me know if and how I can help further.

Thanks!

Antoine

> On Oct 15, 2016, at 12:32 AM, Antoine Toulme <an...@gmail.com> wrote:
> 
> I have managed to reproduce the issue by adjusting the symmetric cluster example.
> 
> Here is the code:
> https://github.com/atoulme/activemq-artemis/tree/mqtt_cluster_test2 <https://github.com/atoulme/activemq-artemis/tree/mqtt_cluster_test2>
> 
> With this code, I see that messages are sent, but none are received.
> If you change the subscription to “mqtt/bar” line 71 and 103, messages are passed OK.
> 
>> On Oct 14, 2016, at 5:52 PM, Antoine Toulme <antoine.toulme@gmail.com <ma...@gmail.com>> wrote:
>> 
>> I have a test showing a cluster using MQTT, but it passes.
>> 
>> Either the test is bogus, the issue is intermittent, the issue was fixed since 1.4.0 and/or my cluster configuration is wrong.
>> 
>> Previously, I have found the issue to be intermittent.
>> 
>> Please feel free to take a look at the test. If it looks of value, I can create a pull request for it:
>> https://github.com/atoulme/activemq-artemis/commit/f7243c38ed0b835d1d3546845fa1871a636329e2 <https://github.com/atoulme/activemq-artemis/commit/f7243c38ed0b835d1d3546845fa1871a636329e2>
>> 
>> I’ll try to rerun my set up:
>> -with trace logging turned on
>> -with the latest code from master
>> 
>> Any help is very appreciated.
>> 
>> Thanks,
>> 
>> Antoine
>> 
>>> On Oct 14, 2016, at 8:28 AM, Antoine Toulme <antoine.toulme@gmail.com <ma...@gmail.com>> wrote:
>>> 
>>> 
>>>> On Oct 14, 2016, at 3:01 AM, Martyn Taylor <mtaylor@redhat.com <ma...@redhat.com>> wrote:
>>>> 
>>>> As a quick check can you tell me what message-load-policy you have
>>>> configured on your cluster connection.  Could you try setting this to
>>>> STRICT?
>>> It was unset, I tried setting to STRICT. That didn’t change the behavior.
>>>> 
>>>> If that doesn't work a reproducer would be the best thing to provide.  I
>>>> can manage to get somewhere with the modified cluster test, send a PR and
>>>> I'll take a look.  If not let me know and I'll see if I can reproduce this
>>>> myself (it would help if you could send your broker config).
>>> I should have a test to share later today.
>>> 
>>> In the mean time, my broker config is here:
>>> https://gist.github.com/atoulme/f5e3702b75c55994c5d2b42eb343fece <https://gist.github.com/atoulme/f5e3702b75c55994c5d2b42eb343fece>
>>> 
>>> Both nodes use the same config, swapping <IP1> and <IP2> to point at each other.
>>>> 
>>>> Thanks
>>>> 
>>>> On Fri, Oct 14, 2016 at 8:39 AM, Antoine Toulme <antoine.toulme@gmail.com <ma...@gmail.com>>
>>>> wrote:
>>>> 
>>>>> Hello,
>>>>> 
>>>>> we are trying out ActiveMQ Artemis with MQTT. We are interested in using
>>>>> pattern subscription such as foo/# to listen to a set of topics.
>>>>> 
>>>>> We created a cluster in which one client publishes to a node, while an
>>>>> other one subscribes to another.
>>>>> 
>>>>> When using pattern subscriptions, we see that the subscriber does not
>>>>> receive the message.
>>>>> When using an exact subscription (foo/bar), the subscriber receives the
>>>>> message.
>>>>> 
>>>>> I tried to recreate the situation by modifying one of the clustering
>>>>> integration tests (MessageRedistributionTest). I’m not quite there yet
>>>>> mostly because of my ignorance of the internals.
>>>>> 
>>>>> Are you aware of this issue? I’d be happy to show you my demo and the
>>>>> results. Also happy to share whatever code, however crappy, I have written
>>>>> to create a test for this so far.
>>>>> 
>>>>> Cheers,
>>>>> 
>>>>> Antoine
>>> 
>> 
> 


Re: Problem with MQTT pattern subscription in a cluster

Posted by Antoine Toulme <an...@gmail.com>.
I have managed to reproduce the issue by adjusting the symmetric cluster example.

Here is the code:
https://github.com/atoulme/activemq-artemis/tree/mqtt_cluster_test2 <https://github.com/atoulme/activemq-artemis/tree/mqtt_cluster_test2>

With this code, I see that messages are sent, but none are received.
If you change the subscription to “mqtt/bar” line 71 and 103, messages are passed OK.

> On Oct 14, 2016, at 5:52 PM, Antoine Toulme <an...@gmail.com> wrote:
> 
> I have a test showing a cluster using MQTT, but it passes.
> 
> Either the test is bogus, the issue is intermittent, the issue was fixed since 1.4.0 and/or my cluster configuration is wrong.
> 
> Previously, I have found the issue to be intermittent.
> 
> Please feel free to take a look at the test. If it looks of value, I can create a pull request for it:
> https://github.com/atoulme/activemq-artemis/commit/f7243c38ed0b835d1d3546845fa1871a636329e2 <https://github.com/atoulme/activemq-artemis/commit/f7243c38ed0b835d1d3546845fa1871a636329e2>
> 
> I’ll try to rerun my set up:
> -with trace logging turned on
> -with the latest code from master
> 
> Any help is very appreciated.
> 
> Thanks,
> 
> Antoine
> 
>> On Oct 14, 2016, at 8:28 AM, Antoine Toulme <antoine.toulme@gmail.com <ma...@gmail.com>> wrote:
>> 
>> 
>>> On Oct 14, 2016, at 3:01 AM, Martyn Taylor <mtaylor@redhat.com <ma...@redhat.com>> wrote:
>>> 
>>> As a quick check can you tell me what message-load-policy you have
>>> configured on your cluster connection.  Could you try setting this to
>>> STRICT?
>> It was unset, I tried setting to STRICT. That didn’t change the behavior.
>>> 
>>> If that doesn't work a reproducer would be the best thing to provide.  I
>>> can manage to get somewhere with the modified cluster test, send a PR and
>>> I'll take a look.  If not let me know and I'll see if I can reproduce this
>>> myself (it would help if you could send your broker config).
>> I should have a test to share later today.
>> 
>> In the mean time, my broker config is here:
>> https://gist.github.com/atoulme/f5e3702b75c55994c5d2b42eb343fece <https://gist.github.com/atoulme/f5e3702b75c55994c5d2b42eb343fece>
>> 
>> Both nodes use the same config, swapping <IP1> and <IP2> to point at each other.
>>> 
>>> Thanks
>>> 
>>> On Fri, Oct 14, 2016 at 8:39 AM, Antoine Toulme <antoine.toulme@gmail.com <ma...@gmail.com>>
>>> wrote:
>>> 
>>>> Hello,
>>>> 
>>>> we are trying out ActiveMQ Artemis with MQTT. We are interested in using
>>>> pattern subscription such as foo/# to listen to a set of topics.
>>>> 
>>>> We created a cluster in which one client publishes to a node, while an
>>>> other one subscribes to another.
>>>> 
>>>> When using pattern subscriptions, we see that the subscriber does not
>>>> receive the message.
>>>> When using an exact subscription (foo/bar), the subscriber receives the
>>>> message.
>>>> 
>>>> I tried to recreate the situation by modifying one of the clustering
>>>> integration tests (MessageRedistributionTest). I’m not quite there yet
>>>> mostly because of my ignorance of the internals.
>>>> 
>>>> Are you aware of this issue? I’d be happy to show you my demo and the
>>>> results. Also happy to share whatever code, however crappy, I have written
>>>> to create a test for this so far.
>>>> 
>>>> Cheers,
>>>> 
>>>> Antoine
>> 
> 


Re: Problem with MQTT pattern subscription in a cluster

Posted by Antoine Toulme <an...@gmail.com>.
I have a test showing a cluster using MQTT, but it passes.

Either the test is bogus, the issue is intermittent, the issue was fixed since 1.4.0 and/or my cluster configuration is wrong.

Previously, I have found the issue to be intermittent.

Please feel free to take a look at the test. If it looks of value, I can create a pull request for it:
https://github.com/atoulme/activemq-artemis/commit/f7243c38ed0b835d1d3546845fa1871a636329e2 <https://github.com/atoulme/activemq-artemis/commit/f7243c38ed0b835d1d3546845fa1871a636329e2>

I’ll try to rerun my set up:
-with trace logging turned on
-with the latest code from master

Any help is very appreciated.

Thanks,

Antoine

> On Oct 14, 2016, at 8:28 AM, Antoine Toulme <an...@gmail.com> wrote:
> 
> 
>> On Oct 14, 2016, at 3:01 AM, Martyn Taylor <mtaylor@redhat.com <ma...@redhat.com>> wrote:
>> 
>> As a quick check can you tell me what message-load-policy you have
>> configured on your cluster connection.  Could you try setting this to
>> STRICT?
> It was unset, I tried setting to STRICT. That didn’t change the behavior.
>> 
>> If that doesn't work a reproducer would be the best thing to provide.  I
>> can manage to get somewhere with the modified cluster test, send a PR and
>> I'll take a look.  If not let me know and I'll see if I can reproduce this
>> myself (it would help if you could send your broker config).
> I should have a test to share later today.
> 
> In the mean time, my broker config is here:
> https://gist.github.com/atoulme/f5e3702b75c55994c5d2b42eb343fece <https://gist.github.com/atoulme/f5e3702b75c55994c5d2b42eb343fece>
> 
> Both nodes use the same config, swapping <IP1> and <IP2> to point at each other.
>> 
>> Thanks
>> 
>> On Fri, Oct 14, 2016 at 8:39 AM, Antoine Toulme <antoine.toulme@gmail.com <ma...@gmail.com>>
>> wrote:
>> 
>>> Hello,
>>> 
>>> we are trying out ActiveMQ Artemis with MQTT. We are interested in using
>>> pattern subscription such as foo/# to listen to a set of topics.
>>> 
>>> We created a cluster in which one client publishes to a node, while an
>>> other one subscribes to another.
>>> 
>>> When using pattern subscriptions, we see that the subscriber does not
>>> receive the message.
>>> When using an exact subscription (foo/bar), the subscriber receives the
>>> message.
>>> 
>>> I tried to recreate the situation by modifying one of the clustering
>>> integration tests (MessageRedistributionTest). I’m not quite there yet
>>> mostly because of my ignorance of the internals.
>>> 
>>> Are you aware of this issue? I’d be happy to show you my demo and the
>>> results. Also happy to share whatever code, however crappy, I have written
>>> to create a test for this so far.
>>> 
>>> Cheers,
>>> 
>>> Antoine
> 


Re: Problem with MQTT pattern subscription in a cluster

Posted by Antoine Toulme <an...@gmail.com>.
> On Oct 14, 2016, at 3:01 AM, Martyn Taylor <mt...@redhat.com> wrote:
> 
> As a quick check can you tell me what message-load-policy you have
> configured on your cluster connection.  Could you try setting this to
> STRICT?
It was unset, I tried setting to STRICT. That didn’t change the behavior.
> 
> If that doesn't work a reproducer would be the best thing to provide.  I
> can manage to get somewhere with the modified cluster test, send a PR and
> I'll take a look.  If not let me know and I'll see if I can reproduce this
> myself (it would help if you could send your broker config).
I should have a test to share later today.

In the mean time, my broker config is here:
https://gist.github.com/atoulme/f5e3702b75c55994c5d2b42eb343fece <https://gist.github.com/atoulme/f5e3702b75c55994c5d2b42eb343fece>

Both nodes use the same config, swapping <IP1> and <IP2> to point at each other.
> 
> Thanks
> 
> On Fri, Oct 14, 2016 at 8:39 AM, Antoine Toulme <an...@gmail.com>
> wrote:
> 
>> Hello,
>> 
>> we are trying out ActiveMQ Artemis with MQTT. We are interested in using
>> pattern subscription such as foo/# to listen to a set of topics.
>> 
>> We created a cluster in which one client publishes to a node, while an
>> other one subscribes to another.
>> 
>> When using pattern subscriptions, we see that the subscriber does not
>> receive the message.
>> When using an exact subscription (foo/bar), the subscriber receives the
>> message.
>> 
>> I tried to recreate the situation by modifying one of the clustering
>> integration tests (MessageRedistributionTest). I’m not quite there yet
>> mostly because of my ignorance of the internals.
>> 
>> Are you aware of this issue? I’d be happy to show you my demo and the
>> results. Also happy to share whatever code, however crappy, I have written
>> to create a test for this so far.
>> 
>> Cheers,
>> 
>> Antoine


Re: Problem with MQTT pattern subscription in a cluster

Posted by Martyn Taylor <mt...@redhat.com>.
As a quick check can you tell me what message-load-policy you have
configured on your cluster connection.  Could you try setting this to
STRICT?

If that doesn't work a reproducer would be the best thing to provide.  I
can manage to get somewhere with the modified cluster test, send a PR and
I'll take a look.  If not let me know and I'll see if I can reproduce this
myself (it would help if you could send your broker config).

Thanks

On Fri, Oct 14, 2016 at 8:39 AM, Antoine Toulme <an...@gmail.com>
wrote:

> Hello,
>
> we are trying out ActiveMQ Artemis with MQTT. We are interested in using
> pattern subscription such as foo/# to listen to a set of topics.
>
> We created a cluster in which one client publishes to a node, while an
> other one subscribes to another.
>
> When using pattern subscriptions, we see that the subscriber does not
> receive the message.
> When using an exact subscription (foo/bar), the subscriber receives the
> message.
>
> I tried to recreate the situation by modifying one of the clustering
> integration tests (MessageRedistributionTest). I’m not quite there yet
> mostly because of my ignorance of the internals.
>
> Are you aware of this issue? I’d be happy to show you my demo and the
> results. Also happy to share whatever code, however crappy, I have written
> to create a test for this so far.
>
> Cheers,
>
> Antoine