The official rabbitmq-c source has been moved to:
rabbitmq / rabbitmq-c Goto Github PK
View Code? Open in Web Editor NEWThe official rabbitmq-c sources have moved to:
Home Page: https://github.com/alanxz/rabbitmq-c
The official rabbitmq-c sources have moved to:
Home Page: https://github.com/alanxz/rabbitmq-c
The official rabbitmq-c source has been moved to:
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
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 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.
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?
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.
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 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}}
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.