Hi Jeffrey, Thanks for bringing this up. I was thinking about this issue sometime back and thought that may be we could start the retry interval with a small value and then increase it step by step depending on the number of continuous failures. I noticed this approach in Gmail.
I can do a quick fix for this if you don't mind. Of course, we could upgrade the mqtt-client version. Thanks for pointing this out! I will do this. Thanks On Fri, Nov 14, 2014 at 6:19 AM, Jeffrey Nguyen (jeffrngu) < jeffr...@cisco.com> wrote: > Hi, > > While testing Stratos 4.1 M3, I noticed about half the times, > unsubscribing a cartridge takes 60+ seconds to execute. During that time, > the caller is blocked. I poke around Stratos code and found TopicPublisher > class that is responsible for the 60 second retry delay. The code sleeps > for 60 seconds whenever we encounter an exception while posting the given > message to its corresponding topic. Looks like this code has been around > since at least release 4.0.0. > > It seems to me 60 sec delay is way to long. If you have a lot of > subscriptions, the delay can be multiple factor of 60 seconds. Also, if > you do this via Stratos' Rest API, the request might get timed out before > the response comes back? > > I reduced this delay from 60 seconds to one second and tested and > noticed that worked just fine. I'm planning to push this change upstream > unless I get any objection on that. > > As for why the exception while attempting to update the topic, I did > some googling and found [1]. It seems this is an issue with mqtt-client. > Somehow we're getting a stale connection to MB when we update the topic. > We're currently using version 0.4.0 of mqtt-client. From [2], it looks > like the latest version is 1.0.0. Maybe it's time to upgrade? > > Other question: when I make a Rest call to get list of subscriptions and > it returns nothing, is it safe to assume all spawn instances have been > killed? > > Regards, > -Jeffrey > > [1] https://github.com/openhab/openhab/issues/980 > *[2] *http://git.eclipse.org/c/paho/org.eclipse.paho.mqtt.java.git/ > -- Imesh Gunaratne Technical Lead, WSO2 Committer & PMC Member, Apache Stratos