While testing bridging together 3 or more brokers I discovered several problems specifically related to durable subscription propagation. In general durable network subscriptions were not propagating properly when using more than 2 brokers either by not being created at all, not being removed, or even in some cases the same durable was being added twice and causing bridge failures.
This jira includes the following changes to fix these issues:
- Currently proxy network subscriptions are not eligible to be conduit. For topics it doesn't make sense to not use conduit subscriptions so this should be changed. For queue subscriptions this can sometimes be useful to conduit as well so I added a new flag for this. Not allowing conduit topic proxy network subs was causing collisions with durables and breaking bridges
- The durable sync process should only ignore network durable subs for the specific bridge it is syncing, it should still be re-adding subs for other bridges otherwise they will get dropped
- On demand subscription removal, the tracked demand sub should be checked to see if it's a network demand sub and if it still has remote durable subs attached to it. If it does they need to be cleaned up and removed
- Lastly, when creating a demand subscription the consumerId should only be changed if the consumer is for a direct bridge and not a proxy bridge otherwise the demand won't be properly tracked and removed later