Hi, Yes 60 seconds is a long time. We can start from short value and increase timeout when failed as Imesh mentioned once.
Touched, not typed. Erroneous words are a feature, not a typo. On Nov 14, 2014 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/ >