>From the trace, it seems like the broker is receiving a transfer whose >delivery id is out of order.
This shouldn't cause an abort - likely the result is an untested failure path, in transport.c:781: if (id_present && id != state->id) { int err = pn_do_error(transport, "amqp:session:invalid-field", "sequencing error, expected delivery-id %u, got %u", state->id, id); ====> // XXX: this will probably leave delivery buffer state messed up pn_full_settle(incoming, delivery); return err; } It doesn't explain why a transfer is sent out of order by the client, but at least we probably should remove the attempt to pn_full_settle(), and just return the error to fail the connection (assumed - totally untested). -K ----- Original Message ----- > From: "Michael Ivanov" <iv...@logit-ag.de> > To: proton@qpid.apache.org > Sent: Friday, October 24, 2014 9:38:54 AM > Subject: Re: VOTE: Release Proton 0.8 RC4 as 0.8 final > > Hallo, > > I used proton 0.7 and later when I had an error, proton 0.8 RC4 to build > qpid-cpp-0.30. In both cases at some time qpidd aborts in proton library > in the following location: > > > #0 0x0000003999432635 in raise () from /lib64/libc.so.6 > #1 0x0000003999433e15 in abort () from /lib64/libc.so.6 > #2 0x000000399942b75e in __assert_fail_base () from /lib64/libc.so.6 > #3 0x000000399942b820 in __assert_fail () from /lib64/libc.so.6 > #4 0x00007f130a5af37d in pn_full_settle (db=<value optimized out>, > delivery=0x7f13001545f0) > at /home/ksmgr/mq/qpid-proton-0.8/proton-c/src/transport/transport.c:742 > #5 0x00007f130a5b0cbe in pn_do_transfer (disp=0x1b6dcf0) at > /home/ksmgr/mq/qpid-proton-0.8/proton-c/src/transport/transport.c:786 > #6 0x00007f130a5a94d5 in pni_dispatch_action (disp=0x1b6dcf0, frame=...) > at /home/ksmgr/mq/qpid-proton-0.8/proton-c/src/dispatcher/dispatcher.c:65 > #7 pn_dispatch_frame (disp=0x1b6dcf0, frame=...) at > /home/ksmgr/mq/qpid-proton-0.8/proton-c/src/dispatcher/dispatcher.c:172 > #8 0x00007f130a5a9718 in pn_dispatcher_input (disp=0x1b6dcf0, > bytes=0x1b75e10 "", available=0) > at > /home/ksmgr/mq/qpid-proton-0.8/proton-c/src/dispatcher/dispatcher.c:194 > #9 0x00007f130a5b2606 in pn_input_read_amqp (io_layer=<value optimized out>, > bytes=<value optimized out>, available=<value > optimized out>) > at /home/ksmgr/mq/qpid-proton-0.8/proton-c/src/transport/transport.c:1145 > #10 0x00007f130a5ae029 in transport_consume (transport=0x1b6dab0) at > /home/ksmgr/mq/qpid-proton-0.8/proton-c/src/transport/transport.c:1064 > #11 0x00007f130a5ae198 in pn_transport_process (transport=0x1b6dab0, > size=<value optimized out>) > at /home/ksmgr/mq/qpid-proton-0.8/proton-c/src/transport/transport.c:2120 > #12 0x00007f130a5ae8e0 in pn_transport_input (transport=0x1b6dab0, > bytes=0x1b2a9b6 "eeded\n", available=0) > at /home/ksmgr/mq/qpid-proton-0.8/proton-c/src/transport/transport.c:1039 > #13 0x00007f130a81c192 in qpid::broker::amqp::Connection::decode > (this=0x1b6c4c8, buffer=0x1b2a880 "", size=310) > at /home/ksmgr/mq/qpid-cpp-0.30/src/qpid/broker/amqp/Connection.cpp:119 > #14 0x00007f130a858c99 in qpid::broker::amqp::Sasl::decode (this=0x1b6c470, > buffer=<value optimized out>, size=310) > at /home/ksmgr/mq/qpid-cpp-0.30/src/qpid/broker/amqp/Sasl.cpp:49 > #15 0x00007f130b0e9100 in qpid::sys::AsynchIOHandler::readbuff > (this=0x1b29a90, buff=0x1b6a890) > at /home/ksmgr/mq/qpid-cpp-0.30/src/qpid/sys/AsynchIOHandler.cpp:135 > #16 0x00007f130b0689e7 in operator() (this=0x1b29ad0, h=...) at > /usr/include/boost/function/function_template.hpp:1013 > #17 qpid::sys::posix::AsynchIO::readable (this=0x1b29ad0, h=...) at > /home/ksmgr/mq/qpid-cpp-0.30/src/qpid/sys/posix/AsynchIO.cpp:452 > #18 0x00007f130b0ed853 in boost::function1<void, > qpid::sys::DispatchHandle&>::operator() (this=<value optimized out>, > a0=<value optimized out>) at > /usr/include/boost/function/function_template.hpp:1013 > #19 0x00007f130b0ec991 in qpid::sys::DispatchHandle::processEvent > (this=0x1b29ad8, type=qpid::sys::Poller::READABLE) > at /home/ksmgr/mq/qpid-cpp-0.30/src/qpid/sys/DispatchHandle.cpp:280 > #20 0x00007f130b08d4f2 in process (this=0x176cc90) at > /home/ksmgr/mq/qpid-cpp-0.30/src/qpid/sys/Poller.h:131 > #21 qpid::sys::Poller::run (this=0x176cc90) at > /home/ksmgr/mq/qpid-cpp-0.30/src/qpid/sys/epoll/EpollPoller.cpp:522 > #22 0x00007f130b08240a in qpid::sys::(anonymous namespace)::runRunnable > (p=<value optimized out>) > at /home/ksmgr/mq/qpid-cpp-0.30/src/qpid/sys/posix/Thread.cpp:35 > #23 0x0000003999c079d1 in start_thread () from /lib64/libpthread.so.0 > #24 0x00000039994e886d in clone () from /lib64/libc.so.6 > > I have core file and probably I can try to recreate the situation. > > Best regards, > > 24.10.2014 17:05, Timothy Bish пишет: > > [ X ] Yes, release Proton 0.8 RC4 as 0.8 final. > > > > Tested Proton-J with ActiveMQ and the new JMS client and found no issues, > > > > On 10/23/2014 12:21 PM, Rafael Schloming wrote: > >> Hi Everyone, > >> > >> I've put together RC4. This is pretty much the same as RC3 with a number > >> of > >> fixes to disable those SSL versions that are vulnerable to attack. > >> > >> The sources are available here: > >> > >> - http://people.apache.org/~rhs/qpid-proton-0.8rc4/ > >> > >> Java binaries are here: > >> > >> - > >> https://repository.apache.org/content/repositories/orgapacheqpid-1020/ > >> > >> Changes since RC3: > >> > >> - PROTON-724: make sure to pop any pending output in > >> pn_transport_close_head() > >> - PROTON-720: [Windows IO] fix format specifier to print string > >> - added dispatch utility > >> - fixed error message > >> - fixed Collector.put > >> - PROTON-719 : prevent ssl3 connections in Windows with schannel > >> - PROTON-717: disable SSLv3 > >> - PROTON-717: mitigate the CRIME SSL vulnerability > >> - PROTON-716: reject connections using SSLv3 - it is insecure > >> > >> Please check the sources out and register your vote: > >> > >> [ ] Yes, release Proton 0.8 RC4 as 0.8 final. > >> [ ] No, because... > >> > >> --Rafael > >> > > > > > > > -- > \ / | | > (OvO) | Mikhail Iwanow | > (^^^) | Voice: +7 (911) 223-1300 | > \^/ | E-mail: iv...@logit-ag.de | > ^ ^ | | > -- -K