stratos-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Imesh Gunaratne <>
Subject Re: Un-subscribe cartridge takes 60+ sec
Date Fri, 14 Nov 2014 18:18:45 GMT
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.


On Fri, Nov 14, 2014 at 6:19 AM, Jeffrey Nguyen (jeffrngu) <> 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]
> *[2] *

Imesh Gunaratne

Technical Lead, WSO2
Committer & PMC Member, Apache Stratos

View raw message