Bug 964224 - amqp1.0: Unable to set various node properties using x-declare
Summary: amqp1.0: Unable to set various node properties using x-declare
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat Enterprise MRG
Classification: Red Hat
Component: qpid-cpp
Version: Development
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: 3.0
: ---
Assignee: Gordon Sim
QA Contact: Petr Matousek
URL:
Whiteboard:
Depends On:
Blocks: 1010399
TreeView+ depends on / blocked
 
Reported: 2013-05-17 15:09 UTC by Petr Matousek
Modified: 2014-10-20 13:47 UTC (History)
2 users (show)

Fixed In Version: qpid-cpp-0.22-4.el6, qpid-cpp-0.22-4.el5
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2014-10-20 13:47:25 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Apache JIRA QPID-4884 0 None None None Never

Description Petr Matousek 2013-05-17 15:09:06 UTC
Description of problem:

When trying to declare a queue to be auto-deleted using the messaging api over amqp1.0 protocol. The client is aborted. please see additional info for details.

This applies also to other properties defined in the x-declare node map, ie exclusive, alt-exchange:
./spout --connection-options "{protocol:'amqp1.0'}" "q2;{create:sender,node:{x-declare:{exclusive:True}}}"
./spout --connection-options "{protocol:'amqp1.0'}" "q3;{create:sender,node:{x-declare:{type:topic,alternate-exchange:amq.direct}}}"

note: Client core dump may be provided on demand.

Version-Release number of selected component (if applicable):
qpid-cpp-0.22-2

How reproducible:
100%

Steps to Reproduce:
1. ./spout --connection-options "{protocol:'amqp1.0'}"  "q;{create:sender,node:{x-declare:{auto-delete:True}}}"
2. Segmentation fault
3. see additional info
  
Actual results:
Unable to declare various node properties using x-declare map

Expected results:
User may declare various queue properties using x-declare map

Additional info:
# ./spout --connection-options "{protocol:'amqp1.0'}"  "q;{create:sender,node:{x-declare:{auto-delete:True}}}"
*** glibc detected *** ./spout: free(): invalid pointer: 0x00000000008016e8 ***
======= Backtrace: =========
/lib64/libc.so.6[0x31542760e6]
/usr/lib64/qpid/client/amqpc.so(_ZNSt3mapISsN4qpid5types7VariantESt4lessISsESaISt4pairIKSsS2_EEE5eraseESt17_Rb_tree_iteratorIS7_E+0x29)[0x7f71c874d669]
/usr/lib64/qpid/client/amqpc.so(_ZN4qpid9messaging4amqp13AddressHelperC2ERKNS0_7AddressE+0x8bc)[0x7f71c874a33c]
/usr/lib64/qpid/client/amqpc.so(_ZN4qpid9messaging4amqp13SenderContextC1EP12pn_session_tRKSsRKNS0_7AddressE+0x4f)[0x7f71c876139f]
/usr/lib64/qpid/client/amqpc.so(_ZN4qpid9messaging4amqp14SessionContext12createSenderERKNS0_7AddressE+0x4ff)[0x7f71c87645ef]
/usr/lib64/qpid/client/amqpc.so(_ZN4qpid9messaging4amqp13SessionHandle12createSenderERKNS0_7AddressE+0x2e)[0x7f71c876d49e]
/usr/lib64/libqpidmessaging.so.3(_ZN4qpid9messaging7Session12createSenderERKSs+0x40)[0x7f71c89e61a0]
./spout(main+0x132)[0x409596]
/lib64/libc.so.6(__libc_start_main+0xfd)[0x315421ecdd]
./spout[0x4093a9]
======= Memory map: ========
00400000-00414000 r-xp 00000000 fd:00 32249                              /usr/share/examples/messaging/spout
00613000-00614000 rw-p 00013000 fd:00 32249                              /usr/share/examples/messaging/spout
007d6000-00818000 rw-p 00000000 00:00 0                                  [heap]
3153a00000-3153a20000 r-xp 00000000 fd:00 28354                          /lib64/ld-2.12.so
3153c1f000-3153c20000 r--p 0001f000 fd:00 28354                          /lib64/ld-2.12.so
3153c20000-3153c21000 rw-p 00020000 fd:00 28354                          /lib64/ld-2.12.so
3153c21000-3153c22000 rw-p 00000000 00:00 0 
3154200000-315438a000 r-xp 00000000 fd:00 28648                          /lib64/libc-2.12.so
315438a000-3154589000 ---p 0018a000 fd:00 28648                          /lib64/libc-2.12.so
3154589000-315458d000 r--p 00189000 fd:00 28648                          /lib64/libc-2.12.so
315458d000-315458e000 rw-p 0018d000 fd:00 28648                          /lib64/libc-2.12.so
315458e000-3154593000 rw-p 00000000 00:00 0 
3154600000-3154617000 r-xp 00000000 fd:00 28653                          /lib64/libpthread-2.12.so
3154617000-3154817000 ---p 00017000 fd:00 28653                          /lib64/libpthread-2.12.so
3154817000-3154818000 r--p 00017000 fd:00 28653                          /lib64/libpthread-2.12.so
3154818000-3154819000 rw-p 00018000 fd:00 28653                          /lib64/libpthread-2.12.so
3154819000-315481d000 rw-p 00000000 00:00 0 
3154a00000-3154a83000 r-xp 00000000 fd:00 28650                          /lib64/libm-2.12.so
3154a83000-3154c82000 ---p 00083000 fd:00 28650                          /lib64/libm-2.12.so
3154c82000-3154c83000 r--p 00082000 fd:00 28650                          /lib64/libm-2.12.so
3154c83000-3154c84000 rw-p 00083000 fd:00 28650                          /lib64/libm-2.12.so
3154e00000-3154e15000 r-xp 00000000 fd:00 4553                           /lib64/libz.so.1.2.3
3154e15000-3155014000 ---p 00015000 fd:00 4553                           /lib64/libz.so.1.2.3
3155014000-3155015000 r--p 00014000 fd:00 4553                           /lib64/libz.so.1.2.3
3155015000-3155016000 rw-p 00015000 fd:00 4553                           /lib64/libz.so.1.2.3
3155200000-3155207000 r-xp 00000000 fd:00 28654                          /lib64/librt-2.12.so
3155207000-3155406000 ---p 00007000 fd:00 28654                          /lib64/librt-2.12.so
3155406000-3155407000 r--p 00006000 fd:00 28654                          /lib64/librt-2.12.so
3155407000-3155408000 rw-p 00007000 fd:00 28654                          /lib64/librt-2.12.so
3155e00000-3155e16000 r-xp 00000000 fd:00 28655                          /lib64/libresolv-2.12.so
3155e16000-3156016000 ---p 00016000 fd:00 28655                          /lib64/libresolv-2.12.so
3156016000-3156017000 r--p 00016000 fd:00 28655                          /lib64/libresolv-2.12.so
3156017000-3156018000 rw-p 00017000 fd:00 28655                          /lib64/libresolv-2.12.so
3156018000-315601a000 rw-p 00000000 00:00 0 
3156a00000-3156a16000 r-xp 00000000 fd:00 28651                          /lib64/libgcc_s-4.4.7-20120601.so.1
3156a16000-3156c15000 ---p 00016000 fd:00 28651                          /lib64/libgcc_s-4.4.7-20120601.so.1
3156c15000-3156c16000 rw-p 00015000 fd:00 28651                          /lib64/libgcc_s-4.4.7-20120601.so.1
3157600000-31576e8000 r-xp 00000000 fd:00 28652                          /usr/lib64/libstdc++.so.6.0.13
31576e8000-31578e8000 ---p 000e8000 fd:00 28652                          /usr/lib64/libstdc++.so.6.0.13
31578e8000-31578ef000 r--p 000e8000 fd:00 28652                          /usr/lib64/libstdc++.so.6.0.13
31578ef000-31578f1000 rw-p 000ef000 fd:00 28652                          /usr/lib64/libstdc++.so.6.0.13
31578f1000-3157906000 rw-p 00000000 00:00 0 
3158e00000-3158f6f000 r-xp 00000000 fd:00 9344                           /lib64/libdb-4.7.so
3158f6f000-315916e000 ---p 0016f000 fd:00 9344                           /lib64/libdb-4.7.so
315916e000-3159174000 rw-p 0016e000 fd:00 9344                           /lib64/libdb-4.7.so
3159200000-3159203000 r-xp 00000000 fd:00 28677                          /lib64/libcom_err.so.2.1
3159203000-3159402000 ---p 00003000 fd:00 28677                          /lib64/libcom_err.so.2.1
3159402000-3159403000 r--p 00002000 fd:00 28677                          /lib64/libcom_err.so.2.1
3159403000-3159404000 rw-p 00003000 fd:00 28677                          /lib64/libcom_err.so.2.1
31da400000-31da41d000 r-xp 00000000 fd:00 34436                          /lib64/libselinux.so.1
31da41d000-31da61c000 ---p 0001d000 fd:00 34436                          /lib64/libselinux.so.1
31da61c000-31da61d000 r--p 0001c000 fd:00 34436                          /lib64/libselinux.so.1
31da61d000-31da61e000 rw-p 0001d000 fd:00 34436                          /lib64/libselinux.so.1
31da61e000-31da61f000 rw-p 00000000 00:00 0 
31da800000-31da8db000 r-xp 00000000 fd:00 34438                          /lib64/libkrb5.so.3.3
31da8db000-31daada000 ---p 000db000 fd:00 34438                          /lib64/libkrb5.so.3.3
31daada000-31daae4000 r--p 000da000 fd:00 34438                          /lib64/libkrb5.so.3.3
31daae4000-31daae6000 rw-p 000e4000 fd:00 34438                          /lib64/libkrb5.so.3.3
31dac00000-31dac29000 r-xp 00000000 fd:00 34437                          /lib64/libk5crypto.so.3.1
31dac29000-31dae29000 ---p 00029000 fd:00 34437                          /lib64/libk5crypto.so.3.1
31dae29000-31dae2a000 r--p 00029000 fd:00 34437                          /lib64/libk5crypto.so.3.1
31dae2a000-31dae2b000 rw-p 0002a000 fd:00 34437                          /lib64/libk5crypto.so.3.1
31dae2b000-31dae2c000 rw-p 00000000 00:00 0 
31db000000-31db00a000 r-xp 00000000 fd:00 21396                          /lib64/libkrb5support.so.0.1
31db00a000-31db209000 ---p 0000a000 fd:00 21396                          /lib64/libkrb5support.so.0.1
31db209000-31db20a000 r--p 00009000 fd:00 21396                          /lib64/libkrb5support.so.0.1
31db20a000-31db20b000 rw-p 0000a000 fd:00 21396                          /lib64/libkrb5support.so.0.1
31db400000-31db441000 r-xp 00000000 fd:00 34439                          /lib64/libgssapi_krb5.so.2.2
31db441000-31db641000 ---p 00041000 fd:00 34439                          /lib64/libgssapi_krb5.so.2.2Aborted (core dumped)

Comment 1 Gordon Sim 2013-05-24 16:50:25 UTC
Fixed upstream by http://svn.apache.org/viewvc?view=revision&revision=1486113

Comment 2 Petr Matousek 2013-07-18 13:04:02 UTC
The issue has been fixed

Verified on RHEL5.9 and RHEL6.4, architectures: i386, x86_64

packages installed:
qpid-cpp-*-0.22-7

-> VERIFIED


Note You need to log in before you can comment on or make changes to this bug.