GithubHelp home page GithubHelp logo

rabbitmq-c's Introduction

rabbitmq-c's People

Contributors

alanxz avatar dpw avatar epicads-scott avatar mrtazz avatar piotrsikora avatar tonyg avatar xgzeng avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rabbitmq-c's Issues

librabbitmq-devel-0.3.0 core down

The call stack is:
#0 0x000000321fe328a5 in raise () from /lib64/libc.so.6
#1 0x000000321fe34085 in abort () from /lib64/libc.so.6
#2 0x000000321fe707b7 in __libc_message () from /lib64/libc.so.6
#3 0x000000321fe760e6 in malloc_printerr () from /lib64/libc.so.6
#4 0x000000321fe7656d in malloc_consolidate () from /lib64/libc.so.6
#5 0x000000321fe79385 in _int_malloc () from /lib64/libc.so.6
#6 0x000000321fe7a911 in malloc () from /lib64/libc.so.6
#7 0x00007f0ee34718f7 in amqp_tune_connection () from /usr/lib64/librabbitmq.so.1
#8 0x00007f0ee34719a7 in amqp_new_connection () from /usr/lib64/librabbitmq.so.1
#9 0x00000000004f18de in AMQP::sockConnect (this=0x7f0ea80008c0) at .../src/amqpcpp/src/AMQP.cpp:193
#10 0x00000000004f17a8 in AMQP::connect (this=0x7f0ea80008c0) at .../src/amqpcpp/src/AMQP.cpp:176
#11 0x00000000004f08fb in AMQP::AMQP (this=0x7f0ea80008c0, cnnStr=

"\230\020\v\001\000\000\000\000\225\221I\000\000\000\000\000?\177\321\016\177\000\000\210V\v\001\000\000\000\000\220\254\177\321\016\177\000\000\000\001\000\000\000\000\000\000h>\v\001\000\000\000\000\230\020\v\001\000\000\000\000\360\254\177\321\016\177\000\000\002\005N\000\000\000\000\000\360\254\177\321\016\177\000\000\372+N\000\000\000\000\000\230\020\v\001\000\000\000\000\000U\v\001\000\000\000\000\210V\v\001\000\000\000\000\001\vN\000\000\000\000\000@KL\000\000\000\000\000\000U\v\001\000\000\000\000\000\001\000\000\000\000\000\000h>\v\001\000\000\000\000\240\255\177\321\016\177\000\000w\006N\000\000\000\000\000(L\v\001\000\000\000\000h>\v\001\000\000\000\000\230\020\v\001", '\000' <repeats 21 times>, "U\v\001", '\000' <repeats 35 times>)
at .../src/amqpcpp/src/AMQP.cpp:26

Double free

amqp_new_connection can free state doubly, first in amqp_tune_connection -> amqp_destroy_connection, then again in amqp_new_connection.

*** glibc detected *** /usr/bin/perl: double free or corruption (!prev): 0x0000000000b41210 ***

Program received signal SIGABRT, Aborted.
0x00007ffff7200945 in raise () from /lib64/libc.so.6
(gdb) bt
#0 0x00007ffff7200945 in raise () from /lib64/libc.so.6
#1 0x00007ffff7201f21 in abort () from /lib64/libc.so.6
#2 0x00007ffff723d8ef in __libc_message () from /lib64/libc.so.6
#3 0x00007ffff7243018 in malloc_printerr () from /lib64/libc.so.6
#4 0x00007ffff7247f6c in free () from /lib64/libc.so.6
#5 0x00007ffff6db5f1e in amqp_new_connection () at amqp_connection.c:97
#6 0x00007ffff6da2eaa in XS_Net__RabbitMQ_new (my_perl=,

cv=<value optimized out>) at RabbitMQ.xs:732

#7 0x000000000047e115 in Perl_pp_entersub ()
#8 0x0000000000455ad3 in Perl_runops_debug ()
#9 0x000000000047a005 in perl_run ()
#10 0x000000000042172c in main ()

(gdb)

amqp_basic_publish sends uninitialized 16 bits

amqp_basic_publish sends uninitialized 16 bits because it does not initialize the ticket field of amqp_basic_publish_t before calling amqp_send_method with amqp_basic_publish_t m. The 16 bits come from stack.

Giving priority to consumers

Hello, I want to put a backup consumer to the main consumer to cover the case the main consumer goes down. I have given priority as
` amqp_table_t args;
#if 1
amqp_table_entry_t entry = {
.key = amqp_cstring_bytes("x-priority"),
.value = {.kind = AMQP_FIELD_KIND_I32, .value = m_priority}};

args.entries = &entry;
args.num_entries = 1;
#endif

amqp_basic_consume(conn, 1, queuename, amqp_empty_bytes, 0, 1, 0,
amqp_empty_table);`
m_priority is a number between 1 and 10. But It seems no effect on consuming messages from the queue. How can I give priority to consumers?

README BEFORE SUBMITTING AN ISSUE

Development on rabbitmq-c has moved to a new location: alanxz/rabbitmq-c. Please submit any issues there. Issues submitted here will not be responded to in a timely fashion.

The issues here have been left temporarily open for historical reasons, and will be disabled in the future.

cmake-based build should be preferred on Windows

Someone at the London real-time hackathon tried to use RabbitMQ and the C client, and was not able to get the C client to build. I wasn't present, so I'm not sure exactly what the problem was. But I think the fact that README.windows still emphasizes the mignw-based build is part of the problem. The cmake-based build is probably the most acceptable to Windows developers at this point, so should be the emphasis in that file. In fact, maybe mention of the other builds should be dropped entirely?

Server closing channel hangs client in recv

Server closing the channel hangs the client in wait_frame_inner / recv:
http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/2012-April/019361.html
http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/2012-April/019572.html

It seems to me that the client does not recognize the server sending an error message about the publish exchange not existing and therefore can get stuck on a channel that does not get any more messages.

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

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.

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=,

__n=<value optimized out>, __buf=<value optimized out>, 
__fd=<value optimized out>) at /usr/include/bits/socket2.h:45

#2 wait_frame_inner (__flags=,

__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=,

__n=<value optimized out>, __buf=<value optimized out>, 
__fd=<value optimized out>) at /usr/include/bits/socket2.h:45

#2 wait_frame_inner (__flags=,

__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=,

__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=,

__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}}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.