>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

Reply via email to