| Summary: | store unit tests are hanging when running the cluster unit test | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | Red Hat Enterprise MRG | Reporter: | Ken Giusti <kgiusti> | ||||||
| Component: | qpid-cpp | Assignee: | Ken Giusti <kgiusti> | ||||||
| Status: | CLOSED CURRENTRELEASE | QA Contact: | MRG Quality Engineering <mrgqe-bugs> | ||||||
| Severity: | urgent | Docs Contact: | |||||||
| Priority: | unspecified | ||||||||
| Version: | Development | CC: | iboverma, jross | ||||||
| Target Milestone: | 2.0 | ||||||||
| Target Release: | --- | ||||||||
| Hardware: | All | ||||||||
| OS: | Linux | ||||||||
| Whiteboard: | |||||||||
| Fixed In Version: | qpid-cpp-server-0.9.1079953-1, qpid-cpp-server-cluster-0.9.1079953-1 | Doc Type: | Bug Fix | ||||||
| Doc Text: |
Cause
A clustered broker was not correctly detecting when a durable message was finished being saved in the durable store.
Consequence:
The cluster can hang when store is enabled and a new broker is added to the cluster.
Fix:
The clustered brokers now monitor for the completion of the message storage event.
Result:
The newly added broker is correctly notified of the completion of the message storage process, and will not hang.
|
Story Points: | --- | ||||||
| Clone Of: | Environment: | ||||||||
| Last Closed: | 2013-02-25 11:15:45 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
Ken Giusti
2011-02-23 20:27:45 UTC
Created attachment 480569 [details]
Log from failing test.
Created attachment 480570 [details]
Log from passing test - test passes if run without store enabled.
Analysis: The test creates a cluster of two brokers. It then declares some queues, and sends some durable messages to the cluster. All that appears fine. Then the test attempts to add another broker to the cluster. At this point the test hangs. From what I can see, the new broker is asynchronously completing messages to the store. The store completes the messages in its thread, and calls requestIOProcessing() to schedule the completion of the message's transfer command. The requested scheduled completion never runs. This appears to be happening during the cluster update process (the new broker is being updated at the time). Does the cluster update process hold off callbacks scheduled via requestIOProcessing()? Alan has create a fix for this. Patched upstream: http://svn.apache.org/viewvc?view=revision&revision=1074332 Jira: https://issues.apache.org/jira/browse/QPID-3084
Technical note added. If any revisions are required, please edit the "Technical Notes" field
accordingly. All revisions will be proofread by the Engineering Content Services team.
New Contents:
Cause
A clustered broker was not correctly detecting when a durable message was finished being saved in the durable store.
Consequence:
The cluster can hang when store is enabled and a new broker is added to the cluster.
Fix:
The clustered brokers now monitor for the completion of the message storage event.
Result:
The newly added broker is correctly notified of the completion of the message storage process, and will not hang.
|