| Summary: | QMF errors ignored by cluster, causing cluster de-sync | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Red Hat Enterprise MRG | Reporter: | Pavel Moravec <pmoravec> | ||||
| Component: | qpid-cpp | Assignee: | Ken Giusti <kgiusti> | ||||
| Status: | CLOSED NOTABUG | QA Contact: | Frantisek Reznicek <freznice> | ||||
| Severity: | high | Docs Contact: | |||||
| Priority: | high | ||||||
| Version: | 2.1 | CC: | esammons, freznice, iboverma, jross, kgiusti, pematous, rdassen | ||||
| Target Milestone: | 2.2 | ||||||
| Target Release: | --- | ||||||
| Hardware: | All | ||||||
| OS: | Linux | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | Doc Type: | Bug Fix | |||||
| Doc Text: | Story Points: | --- | |||||
| Clone Of: | Environment: | ||||||
| Last Closed: | 2012-06-21 15:37:54 UTC | Type: | --- | ||||
| Regression: | --- | Mount Type: | --- | ||||
| Documentation: | --- | CRM: | |||||
| Verified Versions: | Category: | --- | |||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||
| Attachments: |
|
||||||
|
Description
Pavel Moravec
2012-02-01 11:52:29 UTC
Ken, please assess. Created attachment 559326 [details]
Test cases: QMF create() vs AMQP queue.declare
Shows the inconsistent behaviour between the two methods used to create a queue. The state of the cluster is invalid after the QMF method is used.
Alan Conway hit the issue directly on the head: "I think that is a bug. Haven't looked at the code but I would guess the QMF errors are sent as QMF response messages, and not raised as AMQP errors, which is what the cluster code is looking out for." He's exactly correct - QMF creates a queue "in-band", using regular old data traffic that just happens to have meaning to the broker. To the cluster, this traffic isn't anything special - it's just passed around like regular data.... But when AMQP commands are used to create the queue (queue.declare), the cluster is able to see the create happen, as these commands are "out of band", and the cluster is monitoring this traffic. qpid-config currently uses the AMQP commands method, not the QMF method, which is why we probably haven't hit this sooner. This issue will be seen for all other object types - exchanges, bindings, etc - not specific to queues. To solve this, we have to make QMF and clustering aware of each other. Do we make cluster sniff for well known QMF addresses? Or should QMF indicate these operations directly to the cluster code via an API? The result, while not ideal, cannot be prevented because the cluster cannot be guaranteed to operate correctly in this configuration. The host environment differs between the clustered brokers - one host has more available diskspace than the other. This contradicts the prescribed deployment guidelines for clustering - the environments must provide equvalent resources. If that is not held, eventually discrepencies will be introduced. |