[rabbitmq-discuss] librabbitmq faults

Matti Linnanvuori matti.linnanvuori at portalify.com
Tue Apr 3 14:25:44 BST 2012


Hi!

I have encountered two possible faults in librabbitmq (rabbitmq-c-fb6fca832fd2). I am trying to use that latest version customized with Perl Net::RabbitMQ on SLES 11 SP 1.

One is that amqp_simple_wait_frame and recv do not respond to messages being published to an exchange after rabbitmqctl stop_app, reset and start_app. That problem appears also with Net::RabbitMQ versions 0.2.2 and 0.2.0.

Another is that amqp_basic_get fails with error Operation not permitted after rabbitmqctl stop_app, reset and start_app.  That problem appears also with Net::RabbitMQ versions 0.2.2 and 0.2.0, but there is a segmentation fault.

I got the following state in gdb with recv:

0x00007f38e70b7935 in recv () from /lib64/libpthread.so.0
(gdb) bt
#0  0x00007f38e70b7935 in recv () from /lib64/libpthread.so.0
#1  0x00007f38e5cfba4d in recv (__flags=<value optimized out>, 
    __n=<value optimized out>, __buf=<value optimized out>, 
    __fd=<value optimized out>) at /usr/include/bits/socket2.h:45
#2  wait_frame_inner (__flags=<value optimized out>, 
    __n=<value optimized out>, __buf=<value optimized out>, 
    __fd=<value optimized out>) at amqp_socket.c:182
#3  0x00007f38e5ce78b9 in internal_recv (RETVAL=0xbf4f68, conn=0xbe1440, 
    piggyback=0) at RabbitMQ.xs:77
#4  0x00007f38e5ce8566 in XS_Net__RabbitMQ_recv (
    my_perl=<value optimized out>, cv=<value optimized out>) at RabbitMQ.xs:424
#5  0x000000000047e115 in Perl_pp_entersub ()
#6  0x0000000000455ad3 in Perl_runops_debug ()
#7  0x000000000047a1af in perl_run ()
#8  0x000000000042172c in main ()
(gdb) continue
Continuing.
^C
Program received signal SIGINT, Interrupt.
0x00007f38e70b7935 in recv () from /lib64/libpthread.so.0
(gdb) bt
#0  0x00007f38e70b7935 in recv () from /lib64/libpthread.so.0
#1  0x00007f38e5cfba4d in recv (__flags=<value optimized out>, 
    __n=<value optimized out>, __buf=<value optimized out>, 
    __fd=<value optimized out>) at /usr/include/bits/socket2.h:45
#2  wait_frame_inner (__flags=<value optimized out>, 
    __n=<value optimized out>, __buf=<value optimized out>, 
    __fd=<value optimized out>) at amqp_socket.c:182
#3  0x00007f38e5ce78b9 in internal_recv (RETVAL=0xbf4f68, conn=0xbe1440, 
    piggyback=0) at RabbitMQ.xs:77
#4  0x00007f38e5ce8566 in XS_Net__RabbitMQ_recv (
    my_perl=<value optimized out>, cv=<value optimized out>) at RabbitMQ.xs:424
#5  0x000000000047e115 in Perl_pp_entersub ()
#6  0x0000000000455ad3 in Perl_runops_debug ()
#7  0x000000000047a1af in perl_run ()
#8  0x000000000042172c in main ()
(gdb) up
#1  0x00007f38e5cfba4d in recv (__flags=<value optimized out>, 
    __n=<value optimized out>, __buf=<value optimized out>, 
    __fd=<value optimized out>) at /usr/include/bits/socket2.h:45
45	  return __recv_alias (__fd, __buf, __n, __flags);
(gdb) up
#2  wait_frame_inner (__flags=<value optimized out>, 
    __n=<value optimized out>, __buf=<value optimized out>, 
    __fd=<value optimized out>) at amqp_socket.c:182
182	    res = recv(state->sockfd, state->sock_inbound_buffer.bytes,
(gdb) up
#3  0x00007f38e5ce78b9 in internal_recv (RETVAL=0xbf4f68, conn=0xbe1440, 
    piggyback=0) at RabbitMQ.xs:77
77	      result = amqp_simple_wait_frame(conn, &frame);
(gdb) print conn
$1 = (amqp_connection_state_t) 0xbe1440
(gdb) print *conn
$2 = {frame_pool = {pagesize = 131072, pages = {num_blocks = 5, 
      blocklist = 0xc5d4f0}, large_blocks = {num_blocks = 0, blocklist = 0x0}, 
    next_page = 0, alloc_block = 0x0, alloc_used = 0}, decoding_pool = {
    pagesize = 131072, pages = {num_blocks = 1, blocklist = 0xbf22e0}, 
    large_blocks = {num_blocks = 0, blocklist = 0x0}, next_page = 0, 
    alloc_block = 0x0, alloc_used = 0}, state = CONNECTION_STATE_IDLE, 
  channel_max = 0, frame_max = 131072, heartbeat = 0, inbound_buffer = {
    len = 131072, bytes = 0x0}, inbound_offset = 0, target_size = 7, 
  outbound_buffer = {len = 131072, bytes = 0xc67f90}, sockfd = 3, 
  sock_inbound_buffer = {len = 131072, bytes = 0x7f38e7b57010}, 
  sock_inbound_offset = 79, sock_inbound_limit = 79, first_queued_frame = 0x0, 
  last_queued_frame = 0x0, most_recent_api_result = {
    reply_type = AMQP_RESPONSE_NORMAL, reply = {id = 3932181, 
      decoded = 0x7f38e7af1038}, library_error = 0}}


regards, Matti Linnanvuori

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20120403/46065f09/attachment.htm>


More information about the rabbitmq-discuss mailing list