mosquitto-users team mailing list archive
-
mosquitto-users team
-
Mailing list archive
-
Message #00389
Re: Bridges, persistence and retained messages (might be a bug)
Hi!
Thank you very much for the confirmation and very quick fix. I have
successfully applied the fix in our version.
And thank you for your very good work!
/Marcus
Roger Light skrev 2013-12-09 22:53:
> Hi Marcus,
>
> It is a bug. Thanks for the very detailed description, it made it easy
> to figure out. I guessed what the problem was before I finished
> recreating it actually, so I'm sorry it was hard for you to find where
> things weren't working.
>
> I've pushed a fix on the 1.3 branch which should be very easy to use on 1.2.3:
>
> https://bitbucket.org/oojah/mosquitto/commits/a8e563fc0f53873500d31f217133540504735cdc
>
> Thanks!
>
> Roger
>
>
> On Mon, Dec 9, 2013 at 3:23 PM, Marcus Rejås <marcus.rejas@xxxxxxxxxx> wrote:
>> Problem: Messages are not being retained under some circumstances when
>> persistence is being used.
>>
>> Setup:
>>
>> Mosquitto 1.2.3
>>
>> BROKER A <-- BRIDGE --> BROKER B
>>
>> The bridge is initiated from Broker B.
>>
>> Config A
>>
>> persistence true
>> persistence_file mosquitto-A.db
>> persistence_location /tmp/
>> autosave_interval 3600
>>
>> port 1883
>>
>>
>> Config B
>>
>> persistence true
>> persistence_file mosquitto-B.db
>> persistence_location /tmp/
>> autosave_interval 3600
>>
>> port 1884
>>
>> connection A
>> address 127.0.0.1:1883
>> topic # both
>>
>>
>> When starting with no persistence files it works as we expects.
>>
>> Setting a retained message on either A or B makes it retained on both
>> brokers.
>>
>> Setting on A and B
>>
>> $ mosquitto_pub -p 1883 -t retainedA -m test -r
>> $ mosquitto_pub -p 1884 -t retainedB -m test -r
>>
>> Verifying that the messages are retained.
>>
>> $ mosquitto_sub -p 1883 -t \# -v
>> retainedA test
>> retainedB test
>>
>> $ mosquitto_sub -p 1884 -t \# -v
>> retainedA test
>> retainedB test
>>
>> Works as expected.
>>
>> Removing the retained messages by sending a null-message to the topics
>> also works as expected.
>>
>> But, restarting the brokers (making them read the persistence database)
>> makes it behave different.
>>
>> $ mosquitto_pub -p 1883 -t retainedA -m test -r
>> $ mosquitto_pub -p 1884 -t retainedB -m test -r
>>
>> $ mosquitto_sub -p 1883 -t \# -v
>> retainedA test
>> retainedB test
>>
>> $ mosquitto_sub -p 1884 -t \# -v
>> retainedB test
>>
>> Only the retained message set directly on B is set on B. Also remove
>> retained topics on B via the bridge does not work.
>>
>> This was little hard to find since it only occurs after restarting with
>> a persistence file present.
>>
>> Is this a bug or did we do something wrong?
>>
>> Regards
>>
>> Marcus
>>
>> --
>> Marcus Rejås
>> ALLEATO
>> Tel. +46 176 250103
>> Mobilnr: +46 70 266 79 85
>> marcus.rejas@xxxxxxxxxx
>> http://www.alleato.se
>>
>> --
>> Mailing list: https://launchpad.net/~mosquitto-users
>> Post to : mosquitto-users@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~mosquitto-users
>> More help : https://help.launchpad.net/ListHelp
--
*Marcus Rejås*
*ALLEATO*
Tel. +46 176 250103
Mobilnr: +46 70 266 79 85
marcus.rejas@xxxxxxxxxx <mailto:marcus.rejas@xxxxxxxxxx>
http://www.alleato.se
References