Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 878638

Summary: cluster test reports failure during teardown
Product: Red Hat Enterprise MRG Reporter: mick <mgoulish>
Component: qpid-cppAssignee: mick <mgoulish>
Status: CLOSED CURRENTRELEASE QA Contact: Petr Matousek <pematous>
Severity: high Docs Contact:
Priority: medium    
Version: 2.2CC: iboverma, jross, lzhaldyb, mcressma, pematous
Target Milestone: 2.3   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: qpid-cpp-0.18-12 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 872946    

Description mick 2012-11-20 20:35:53 UTC
This BZ is descended from BZ 872934.   The former BZ caused a SEGV - that is fixed.

Now the problem is that the test framework reports a failure during the test teardown.

I believe that this problem is benign but irritating.  Here is what I think is happening:

  1. during test teardown, the cluster's queue is destroyed.

  2. one of the brokers in the cluster gets another message to the queue very shortly ( a few hundred microseconds ) *after* qpid::broker::QueueRegistry::destroy has been called, and the queue registry has been emptied.

  3. That broker throws an error because it sees an attempt to deliver to a nonexistent queue.

  4. The testing framework sees the error, and becomes upset.


I don't think that there will be a reasonable way to fix this in the C++ code.  I think the fix will either be in the testing framework, or in the test itself.


reproducer
-------------------------------------------

    cd ; pkill -9 qpidd ; rm -f ~/.qpidd/core*
    ./start_cluster  # see below for this script
    cd /home/mick/trunk/qpid/qpid/python
    ./qpid-python-test -m qpid_tests qpid_tests.broker_0_10.qmf_events.EventTests.test_queue_autodelete_exclusive ; date




start_cluster script
-------------------------------------------

#! /bin/bash

export LD_LIBRARY_PATH=$TRUNK/qpid/cpp/src/.libs

QPIDD_SRC=$TRUNK/qpid/cpp/src

QPIDD=$QPIDD_SRC/.libs/qpidd

echo $QPIDD

rm -rf /tmp/mick
mkdir /tmp/mick

for N in 1 2
do
  $QPIDD                                      \
    --no-module-dir                           \
    --load-module $QPIDD_SRC/.libs/cluster.so \
   --cluster-name  cluster_flock              \
    -p 567$N                                  \
    --data-dir /tmp/mick/data_$N              \
    --auth=no                                 \
    --mgmt-enable=yes                         \
    --log-enable info+                        \
    --log-source 1                            \
    --log-to-file /tmp/mick/qpidd_$N.log      \
    -d
  echo "============================================"
  echo "started broker $N from $QPIDD"
  echo "============================================"
done

Comment 2 mick 2012-11-30 19:48:38 UTC
Fixed by Alan's fix for 872932 -- on branch  0.18-mrg-aconway-872932

Comment 3 Petr Matousek 2012-12-07 09:29:22 UTC
This issue has been fixed.

Verified on rhel5.9 and rhel6.3 (x86_64, i386)

packages used for testing:
qpid-cpp-*-0.18-12
qpid-tests-0.18-2

-> ON_QA -> VERIFIED