Bug 691778

Summary: The Broker object is created using python client even if an error occurs
Product: Red Hat Enterprise MRG Reporter: Petr Matousek <pematous>
Component: python-qpidAssignee: messaging-bugs <messaging-bugs>
Status: NEW --- QA Contact: MRG Quality Engineering <mrgqe-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: DevelopmentCC: iboverma, jross
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 734472 (view as bug list) Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Petr Matousek 2011-03-29 13:07:14 UTC
Description of problem:

When creating object using addressing (with python client), in some cases object is created even if the command for creation ends with error.

This was seen on RHEL5.6 x86_64

Version-Release number of selected component (if applicable):
python-qpid-0.10-1.el5

How reproducible:
100%

Steps to Reproduce:
Please see additional info
  
Actual results:
The Broker object is created even if an error occurs

Expected results:
The Broker object shall not created if an error occurs

Additional info:

# qpid-config exchanges | grep myEx_xml
# /usr/share/doc/python-qpid-0.10/examples/api/drain "myEx_xml;{create: always,node:{type: topic,x-declare:{type:xml}}}"
...
qpid.messaging.exceptions.ServerError: internal-error: Could not parse xquery: (qpid/xml/XmlExchange.cpp:96)(541)
# echo $?
1
# qpid-config exchanges | grep myEx_xml
xml       myEx_xml           

------------- The same applies for header exchange

# qpid-config exchanges | grep myEx_headers
# /usr/share/doc/python-qpid-0.10/examples/api/drain "myEx_headers;{create: always,node:{type: topic,x-declare:{type:headers}}}"
...
qpid.messaging.exceptions.ServerError: internal-error: Invalid or missing x-match value binding to headers exchange. Must be a string ["all" or "any"] (qpid/broker/HeadersExchange.cpp:110)(541)
# echo $?
1
# qpid-config exchanges | grep myEx_headers
headers   myEx_headers