Gordon,
I tried it with QPID revision 720246 (2008-11-24 13:18:04). Below is the
output from running the listener program itself as well as the gdb
backtrace. To reproduce this error, I first run the listener and THEN add
one message to the queue using direct_provider. Please see my comments
after the backtrace for further information:
[EMAIL PROTECTED] direct]$ .libs/lt-listener 10.195.6.78
-1.26144e+307
*** glibc detected *** .libs/lt-listener: malloc(): memory corruption:
0xf7e914de ***
======= Backtrace: =========
/lib/libc.so.6[0xf7d92484]
/lib/libc.so.6(__libc_malloc+0xd4)[0xf7d94024]
/usr/lib/libstdc++.so.6(_Znwj+0x3c)[0xedec11c]
/home/developer01/qpid/trunk/trunk/qpid/cpp/src/.libs/libqpidcommon.so.0(_ZN4qpid7framing8AMQFrame7setBodyERKNS0_7AMQBodyE+0x48)[0xfdaed88]
/home/developer01/qpid/trunk/trunk/qpid/cpp/src/.libs/libqpidclient.so.0(_ZN4qpid6client11SessionImpl11sendCommandERKNS_7framing7AMQBodyEPKNS2_13MethodContentE+0x1d4)[0xff561f4]
/home/developer01/qpid/trunk/trunk/qpid/cpp/src/.libs/libqpidclient.so.0(_ZN4qpid6client11SessionImpl4sendERKNS_7framing7AMQBodyE+0x30)[0xff56610]
/home/developer01/qpid/trunk/trunk/qpid/cpp/src/.libs/libqpidclient.so.0(_ZN4qpid6client10no_keyword17AsyncSession_0_1013messageAcceptERKNS_7framing11SequenceSetEb+0xf0)[0xfef5830]
/home/developer01/qpid/trunk/trunk/qpid/cpp/src/.libs/libqpidclient.so.0(_ZN4qpid6client16SubscriptionImpl8receivedERNS0_7MessageE+0x224)[0xff5cf14]
/home/developer01/qpid/trunk/trunk/qpid/cpp/src/.libs/libqpidclient.so.0(_ZN4qpid6client10Dispatcher3runEv+0x3ac)[0xff3581c]
/home/developer01/qpid/trunk/trunk/qpid/cpp/src/.libs/libqpidclient.so.0(_ZN4qpid6client19SubscriptionManager3runEv+0x40)[0xff5e330]
.libs/lt-listener[0x10006c90]
/lib/libc.so.6[0xf7d2dc60]
/lib/libc.so.6[0xf7d2dea0]
======= Memory map: ========
00100000-00120000 r-xp 00100000 00:00 0 [vdso]
0ed10000-0ee30000 r-xp 00000000 00:13 186318952
/usr/lib/libstdc++.so.6.0.8
0ee30000-0ee40000 r--p 00110000 00:13 186318952
/usr/lib/libstdc++.so.6.0.8
0ee40000-0ee50000 rw-p 00120000 00:13 186318952
/usr/lib/libstdc++.so.6.0.8
0eef0000-0ef10000 r-xp 00000000 00:13 167282020
/lib/libgcc_s-4.1.2-20080102.so.1
0ef10000-0ef20000 rw-p 00010000 00:13 167282020
/lib/libgcc_s-4.1.2-20080102.so.1
0fa20000-0fa30000 r-xp 00000000 00:13 186319916
/usr/lib/libboost_thread.so.1.33.1
0fa30000-0fa40000 rw-p 00000000 00:13 186319916
/usr/lib/libboost_thread.so.1.33.1
0fa50000-0fa60000 r-xp 00000000 00:13 167281972 /lib/librt-2.5.so
0fa60000-0fa70000 r--p 00000000 00:13 167281972 /lib/librt-2.5.so
0fa70000-0fa80000 rw-p 00010000 00:13 167281972 /lib/librt-2.5.so
0fb50000-0fb70000 r-xp 00000000 00:13 186319898
/usr/lib/libboost_filesystem.so.1.33.1
0fb70000-0fb80000 rw-p 00010000 00:13 186319898
/usr/lib/libboost_filesystem.so.1.33.1
0fb90000-0fbd0000 r-xp 00000000 00:13 186319904
/usr/lib/libboost_program_options.so.1.33.1
0fbd0000-0fbe0000 rw-p 00030000 00:13 186319904
/usr/lib/libboost_program_options.so.1.33.1
0fbf0000-0fe80000 r-xp 00000000 00:17 14521032
/home/developer01/qpid/trunk/trunk/qpid/cpp/src/.libs/libqpidcommon.so.0.1.0
0fe80000-0fea0000 rw-p 00280000 00:17 14521032
/home/developer01/qpid/trunk/trunk/qpid/cpp/src/.libs/libqpidcommon.so.0.1.0
0feb0000-0ffa0000 r-xp 00000000 00:17 14521045
/home/developer01/qpid/trunk/trunk/qpid/cpp/src/.libs/libqpidclient.so.0.1.0
0ffa0000-0ffb0000 rw-p 000e0000 00:17 14521045
/home/developer01/qpid/trunk/trunk/qpid/cpp/src/.libs/libqpidclient.so.0.1.0
0ffc0000-0ffe0000 r-xp 00000000 00:13 167281991 /lib/ld-2.5.so
0ffe0000-0fff0000 r--p 00010000 00:13 167281991 /lib/ld-2.5.so
0fff0000-10000000 rw-p 00020000 00:13 167281991 /lib/ld-2.5.so
10000000-10010000 r-xp 00000000 00:17 14618816
/home/developer01/qpid/trunk/trunk/qpid/cpp/examples/direct/.libs/lt-listener
10010000-10020000 rw-p 00000000 00:17 14618816
/home/developer01/qpid/trunk/trunk/qpid/cpp/examples/direct/.libs/lt-listener
10020000-10260000 rwxp 10020000 00:00 0 [heap]
f72d0000-f72e0000 ---p f72d0000 00:00 0
f72e0000-f7cd0000 rw-p f72e0000 00:00 0
f7cd0000-f7cf0000 r-xp 00000000 00:13 167282058 /lib/libpthread-2.5.so
f7cf0000-f7d00000 r--p 00010000 00:13 167282058 /lib/libpthread-2.5.so
f7d00000-f7d10000 rw-p 00020000 00:13 167282058 /lib/libpthread-2.5.so
f7d10000-f7e80000 r-xp 00000000 00:13 167282057 /lib/libc-2.5.so
f7e80000-f7e90000 r--p 00160000 00:13 167282057 /lib/libc-2.5.so
f7e90000-f7ea0000 rw-p 00170000 00:13 167282057 /lib/libc-2.5.so
f7ea0000-f7f60000 r-xp 00000000 00:13 167282050 /lib/libm-2.5.so
f7f60000-f7f70000 r--p 000b0000 00:13 167282050 /lib/libm-2.5.so
f7f70000-f7f80000 rw-p 000c0000 00:13 167282050 /lib/libm-2.5.so
f7f80000-f7f90000 r-xp 00000000 00:13 167281961 /lib/libuuid.so.1.2
f7f90000-f7fa0000 rw-p 00000000 00:13 167281961 /lib/libuuid.so.1.2
f7fa0000-f7fb0000 r-xp 00000000 00:13 167282039 /lib/libdl-2.5.so
f7fb0000-f7fc0000 r--p 00000000 00:13 167282039 /lib/libdl-2.5.so
f7fc0000-f7fd0000 rw-p 00010000 00:13 167282039 /lib/libdl-2.5.so
f7fe0000-f7ff0000 rw-p f7fe0000 00:00 0
ff9d0000-ffb20000 rw-p ff9d0000 00:00 0 [stack]
Aborted (core dumped)
[EMAIL PROTECTED] direct]$ ppu-gdb .libs/lt-listener core.xxx
...
(gdb) bt
#0 0xf7d46110 in raise () from /lib/libc.so.6
#1 0xf7d47e14 in abort () from /lib/libc.so.6
#2 0xf7d877f4 in __libc_message () from /lib/libc.so.6
#3 0xf7d92484 in _int_malloc () from /lib/libc.so.6
#4 0xf7d94024 in malloc () from /lib/libc.so.6
#5 0x0edec11c in operator new () from /usr/lib/libstdc++.so.6
#6 0x0fdaed88 in qpid::framing::AMQFrame::setBody (this=0xffb1ecc4,
b=<value optimized out>) at qpid/framing/AMQFrame.cpp:36
#7 0x0ff561f4 in qpid::client::SessionImpl::sendCommand (this=0x10244010,
[EMAIL PROTECTED], content=0x0) at ./qpid/framing/AMQFrame.h:43
#8 0x0ff56610 in qpid::client::SessionImpl::send (this=<value optimized
out>, command=<value optimized out>) at qpid/client/SessionImpl.cpp:280
#9 0x0fef5830 in
qpid::client::no_keyword::AsyncSession_0_10::messageAccept
(this=0xffb1ee10, transfers=<value optimized out>, sync=false) at
gen/qpid/client/no_keyword/AsyncSession_0_10.cpp:64
#10 0x0ff5cf14 in qpid::client::SubscriptionImpl::received
(this=0x10244508, m=<value optimized out>) at
gen/qpid/client/AsyncSession_0_10.h:311
#11 0x0ff3581c in qpid::client::Dispatcher::run (this=0xffb1f6c8) at
qpid/client/Dispatcher.cpp:80
#12 0x0ff5e330 in qpid::client::SubscriptionManager::run (this=<value
optimized out>) at qpid/client/SubscriptionManager.cpp:86
#13 0x10006c90 in main (argc=<value optimized out>, argv=<value optimized
out>) at listener.cpp:112
As stated, to reproduce the above error, I first run the listener and THEN
add one message to the queue. However, if I fill the queue with ONE
message BEFORE running listener, then the listener does not crash but it
gets garbage from getDouble("foo", x). Finally, if I hadd TWO messages to
the queue BEFORE running the listener, then I do not get the "glibc
detected memory corruption" memory map output on the console, and I get a
different backtrace from gdb:
[EMAIL PROTECTED] direct]$ .libs/lt-listener 10.195.6.78
-2.80376e+307
Segmentation fault (core dumped)
[EMAIL PROTECTED] direct]$ ppu-gdb .libs/lt-listener core.xxx
...
#0 0x0fdbf068 in qpid::framing::FieldTable::getDouble (this=<value
optimized out>, name=<value optimized out>, value=<value optimized out>)
at /usr/include/boost/detail/sp_counted_base_gcc_ppc.hpp:153
153 dispose();
(gdb) bt
#0 0x0fdbf068 in qpid::framing::FieldTable::getDouble (this=<value
optimized out>, name=<value optimized out>, value=<value optimized out>)
at /usr/include/boost/detail/sp_counted_base_gcc_ppc.hpp:153
#1 0x1000720c in Listener::received (this=<value optimized out>,
message=<value optimized out>) at listener.cpp:88
#2 0x0ff5cb18 in qpid::client::SubscriptionImpl::received
(this=0x102444d0, [EMAIL PROTECTED]) at qpid/client/SubscriptionImpl.cpp:123
#3 0x0ff357fc in qpid::client::Dispatcher::run (this=0xffc3f6c8) at
qpid/client/Dispatcher.cpp:80
#4 0x0ff5e0a0 in qpid::client::SubscriptionManager::run (this=<value
optimized out>) at qpid/client/SubscriptionManager.cpp:86
#5 0x10006c70 in main (argc=<value optimized out>, argv=<value optimized
out>) at listener.cpp:114
Thanks,
Aamir
Gordon Sim <[EMAIL PROTECTED]>
Nov/24/2008 05:23 PM GMT
Please respond to
[email protected]
To
[email protected]
cc
Subject
Re: FieldTable decoding not working on ppc64?
[EMAIL PROTECTED] wrote:
> Hello,
>
> I have compiled qpid (trunk) on the ppc64 architecture. I have
> successfully run the "direct" example in a number of different
> configurations (qpid broker running on x86 and clients running on ppc,
and
> vice versa).
Could you post a backtrace for the core generated from the segv? (You
may need to enable coredumps with ulimit -u unlimited, then re-run the
test, then gdb your-app core.xxx and type bt).
Also, which revision are you working with?
**********************************************************************************
This communication (and any attachments) is directed in confidence to the
addressee(s) listed above, and may not otherwise be distributed, copied or
used. The contents of this communication may also be subject to privilege, and
all rights to that privilege are expressly claimed and not waived. If you have
received this communication in error, please notify us by reply e-mail or by
telephone and delete this communication (and any attachments) without making a
copy. Thank you.
***************
La présente communication (et tout fichier rattaché) s'adresse uniquement au(x)
destinataire(s) précité(s) et ne peut être autrement distribuée, copiée ou
utilisée. Le contenu de cette communication peut être assujetti au privilège.
Tout droit à ce privilège est expressément revendiqué et nullement abandonné.
Si vous avez reçu cette communication par erreur, veuillez nous en avertir
immédiatement en répondant à ce courriel ou en nous appelant. Veuillez
également effacer cette communication (et tout fichier rattaché) sans en
conserver une copie. Merci.