| Summary: | Qpidd segfaults on under perftest --mode fanout | ||
|---|---|---|---|
| Product: | Red Hat Enterprise MRG | Reporter: | ppecka <ppecka> |
| Component: | qpid-cpp | Assignee: | Ken Giusti <kgiusti> |
| Status: | CLOSED CURRENTRELEASE | QA Contact: | Frantisek Reznicek <freznice> |
| Severity: | high | Docs Contact: | |
| Priority: | high | ||
| Version: | Development | CC: | esammons, iboverma, jross, tross |
| Target Milestone: | 2.1.2 | ||
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | qpid-cpp-0.14-9 | Doc Type: | Bug Fix |
| Doc Text: |
Cause
Sending persistent messages containing a time-to-live (TTL) header to a fanout exchange.
Consequence
The broker will occasionally crash.
Fix
A threading lock was added to the message header processing code.
Result
The broker serializes access to the TTL header, preventing the race condition that results in the crash.
|
Story Points: | --- |
| Clone Of: | Environment: | ||
| Last Closed: | 2012-12-07 17:41:00 UTC | Type: | --- |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Bug Depends On: | 801310 | ||
| Bug Blocks: | |||
|
Description
ppecka
2012-02-16 15:30:41 UTC
A couple of questions: 1) How reproducible is this symptom? Have you seen it more than once? 2) Is the broker really running with only six threads or are there threads not reported by gdb in the back-trace? Petr, do we know if this is a regression from 0.10? Mick, please do a short assessment. (In reply to comment #2) > A couple of questions: > > 1) How reproducible is this symptom? Have you seen it more than once? i was able to reproduce every run, with given reproducer > 2) Is the broker really running with only six threads or are there threads not > reported by gdb in the back-trace? there was no change to worker-threads, i believe qpidd decided itself on # of threads Ken, please take a look. Gordon has discovered the root cause - this is due to a thread encoding the message's headers whilst another thread updates them (the ttl). See upstream jira - fix in progress: https://issues.apache.org/jira/browse/QPID-3877 Bugfix submitted upstream: http://svn.apache.org/viewvc?view=rev&rev=1296230
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
Sending persistent messages containing a time-to-live (TTL) header to a fanout exchange.
Consequence
The broker will occasionally crash.
Fix
A threading lock was added to the message header processing code.
Result
The broker serializes access to the TTL header, preventing the race condition that results in the crash.
Retested, buggy behavior changed in the way that original above described crash moved somewhere else (most probably due to incomplete fix). The new crash is tracked as bug 801310 and marked as dependency for this defect (801310 should be resolved before this defect goes VERI). Retested on rhel5.7/5.8/6.2 i/x on packages: qpid-cpp-*0.14-12.el5 + qpid-qmf-*0.14-3.el5 qpid-cpp-*0.14-12.el6 + qpid-qmf-*0.14-5.el6 Issue is reliably fixed, no other crashes detected. Waiting for installable set & retest Retested on rhel5.7/5.8/6.2 i/x on packages: qpid-cpp-*0.14-14.el5 + qpid-qmf-*0.14-4.el5 qpid-cpp-*0.14-12.el6 + qpid-qmf-*0.14-6.el6 Issue is reliably fixed, no other crashes detected. -> VERIFIED |