We've experienced what looks like the same issue on my co-worker's machine. So far it only happens on his machine, but is reproducible every time.
If he disposes the bus and restarts the consuming service, he ends up with a SubscriptionAdded, followed by a DuplicateSubscriptionAdded every time on the subscription service, but if he just kill the consumer service and restart, we get DuplicateClientRemoved followed by SubscriptionAdded
Here's a (stripped down) output when we dispose the bus
Info 09/05/2013 14:54:23 SubscriptionSaga SubscriptionAdded <prairieFyre.Storage.Common.Models.INewMailMessage, prairieFyre.Storage.Common> ADDED to <msmq://lcremonesi-pc/router_queue?tx=false>. Subscription ID <28700000-1891-0026-3b77-08d01afdbf45>
Info 09/05/2013 14:54:23 SubscriptionSaga DuplicateSubscriptionAdded <prairieFyre.Storage.Common.Models.INewMailMessage, prairieFyre.Storage.Common> REMOVED from <msmq://lcremonesi-pc/router_queue?tx=false>. Subscription ID <28700000-1891-0026-c473-08d01af87334>
And on restart:
Info 09/05/2013 15:00:04 SubscriptionSaga SubscriptionAdded <prairieFyre.Storage.Common.Models.INewMailMessage, prairieFyre.Storage.Common> ADDED to <msmq://lcremonesi-pc/router_queue?tx=false>. Subscription ID <28700000-1891-0026-1324-08d01afe8991>
Info 09/05/2013 15:00:04 SubscriptionSaga DuplicateSubscriptionAdded <prairieFyre.Storage.Common.Models.INewMailMessage, prairieFyre.Storage.Common> REMOVED from <msmq://lcremonesi-pc/router_queue?tx=false>. Subscription ID <28700000-1891-0026-3b77-08d01afdbf45>
Note the Subscription ID in the second case truly is a duplicate.
Here's the result when we kill the process and restart:
Info 09/05/2013 15:01:58 SubscriptionSaga DuplicateClientRemoved <prairieFyre.Storage.Common.Models.INewMailMessage, prairieFyre.Storage.Common> REMOVED from <msmq://lcremonesi-pc/router_queue?tx=false>. Subscription ID <28700000-1891-0026-1324-08d01afe8991>
Info 09/05/2013 15:02:05 SubscriptionSaga SubscriptionAdded <prairieFyre.Storage.Common.Models.INewMailMessage, prairieFyre.Storage.Common> ADDED to <msmq://lcremonesi-pc/router_queue?tx=false>. Subscription ID <28700000-1891-0026-15be-08d01afed129>
In this case, I see a ClientAdded, followed by all 28 removals, followed by the adds.
The only SubscriptionRemoved that I see is for GetMessageTraceList, which makes sense because we don't want to tear down the subscriptions. Would using Permanent subscriptions fix this? We're using Ninject right now, so it makes it a bit awkward, but I can try it.
I can take a stab at fixing this, but may need some guidance. OTOH, if Permanent subscriptions works out, or we jump on the RabbitMQ train, I may not. :-)