Description of problem: After unsubscribing the last consumer from an auto-delete queue, the delete event was not propagated to the backup nodes. Additionally, after re-creating a queue with the same name, the the backup did not receive the declare event. The original queue declare event was correctly propagated to the backup. Version-Release number of selected component (if applicable): qpid-cpp-0.18-6 How reproducible: 100% Steps to Reproduce: 1. Subscribe to an auto-delete queue 2. Unsubscribe from the auto-delete queue Actual results: The backup node did not receive the delete event. Expected results: The backup node should receive the delete event.
After additional investigation, the issue appears to have been exposed due to channel errors that resulted in the link reconnecting (see BZ873347). The QMF channel did not have any errors in the log but somehow the backup missed a queue creation event and thus failed to replicate a queue.
Issue is not 100% reproducible, but has happened often across numerous machines.
Created attachment 641055 [details] Quick patch to prevent duplicate output tasks
Discovered that the inter-broker link had hundreds of thousands of enqueued OutputTasks -- representing only a few unique consumers. There should only be only a single output task for a given consumer. This appears to have stalled the delivery of QMF messages to the backup broker.
Created attachment 641080 [details] Quick patch to prevent duplicate output tasks
Fix committed: http://mrg1.lab.bos.redhat.com/cgit/qpid.git/commit/?h=0.18-mrg-aconway-ha-1&id=dc05b45d4582373d69ef5d378073ed1957b29307 On branch: http://mrg1.lab.bos.redhat.com/cgit/qpid.git/log/?h=0.18-mrg-aconway-ha-1