Core down when invoking amqp_destroy_connection() of rabbitmq-c-0.5.0 stable version

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Core down when invoking amqp_destroy_connection() of rabbitmq-c-0.5.0 stable version

椰风
It looks like the pool num_blocks (=1342177400) and blocklist(0x7fb850000bb0) members of pages is incorrect.
refer to,
$7 = {pagesize = 132577, pages = {num_blocks = 1342177400, blocklist = 0x7fb850000bb0}, large_blocks = {num_blocks = 0, blocklist = 0x0}, next_page = 0, alloc_block = 0x0, alloc_used = 0}

platform: Centos 6.3 x86_64bits

std output:
[push@zwjf-jpush-conn09-247115 conn_v1]$ *** glibc detected *** /opt/push/bin/conn/conn_v1/tcp_interface_srv_v1: free(): invalid pointer: 0x00007fb8500214f8 ***
======= Backtrace: =========
/lib64/libc.so.6[0x35dd676166]
/opt/push/lib64/librabbitmq.so.1(+0xf45d)[0x7fb8804a145d]
/opt/push/lib64/librabbitmq.so.1(empty_amqp_pool+0x28)[0x7fb8804a150a]
/opt/push/lib64/librabbitmq.so.1(amqp_destroy_connection+0x53)[0x7fb8804a082f]

more detail:
#4 0x00007fb8804a145d in empty_blocklist (x=0x7fb850000e20) at /home/push/source/jim/jpush-server/server/external/src/rabbitmq-c-0.5.0/librabbitmq/amqp_mem.c:79
79 free(x->blocklist[i]);
(gdb) l
74 static void empty_blocklist(amqp_pool_blocklist_t *x)
75 {
76 int i;
77
78 for (i = 0; i < x->num_blocks; i++) { 79 free(x->blocklist[i]); 80 }
81 if (x->blocklist != NULL) { 82 free(x->blocklist); 83 }
(gdb) p *x
$5 = {num_blocks = 1342177400, blocklist = 0x7fb850000bb0}
(gdb) f 5
#5 0x00007fb8804a150a in empty_amqp_pool (pool=0x7fb850000e18) at /home/push/source/jim/jpush-server/server/external/src/rabbitmq-c-0.5.0/librabbitmq/amqp_mem.c:99
99 empty_blocklist(&pool->pages);
(gdb) l
94 }
95
96 void empty_amqp_pool(amqp_pool_t *pool)
97 { 98 recycle_amqp_pool(pool); 99 empty_blocklist(&pool->pages); 100 }
101
102 /* Returns 1 on success, 0 on failure */
103 static int record_pool_block(amqp_pool_blocklist_t *x, void *block)
(gdb) p pool->pages
$6 = {num_blocks = 1342177400, blocklist = 0x7fb850000bb0}
(gdb) p *pool
$7 = {pagesize = 132577, pages = {num_blocks = 1342177400, blocklist = 0x7fb850000bb0}, large_blocks = {num_blocks = 0, blocklist = 0x0}, next_page = 0, alloc_block = 0x0, alloc_used = 0}
(gdb)



_______________________________________________
rabbitmq-discuss mailing list has moved to https://groups.google.com/forum/#!forum/rabbitmq-users,
please subscribe to the new list!

[hidden email]
https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
Reply | Threaded
Open this post in threaded view
|

Re: Core down when invoking amqp_destroy_connection() of rabbitmq-c-0.5.0 stable version

alan.antonuk
Looks like something has incorrectly written to the amqp_pool_t memory pool (probably contained in the amqp_connection_state_t object). Without further information about the program I cannot help you much further.

-Alan


On Mon, Jun 30, 2014 at 2:16 AM, 椰风 <[hidden email]> wrote:
It looks like the pool num_blocks (=1342177400) and blocklist(0x7fb850000bb0) members of pages is incorrect.
refer to,
$7 = {pagesize = 132577, pages = {num_blocks = 1342177400, blocklist = 0x7fb850000bb0}, large_blocks = {num_blocks = 0, blocklist = 0x0}, next_page = 0, alloc_block = 0x0, alloc_used = 0}

platform: Centos 6.3 x86_64bits

std output:
[push@zwjf-jpush-conn09-247115 conn_v1]$ *** glibc detected *** /opt/push/bin/conn/conn_v1/tcp_interface_srv_v1: free(): invalid pointer: 0x00007fb8500214f8 ***
======= Backtrace: =========
/lib64/libc.so.6[0x35dd676166]
/opt/push/lib64/librabbitmq.so.1(+0xf45d)[0x7fb8804a145d]
/opt/push/lib64/librabbitmq.so.1(empty_amqp_pool+0x28)[0x7fb8804a150a]
/opt/push/lib64/librabbitmq.so.1(amqp_destroy_connection+0x53)[0x7fb8804a082f]

more detail:
#4 0x00007fb8804a145d in empty_blocklist (x=0x7fb850000e20) at /home/push/source/jim/jpush-server/server/external/src/rabbitmq-c-0.5.0/librabbitmq/amqp_mem.c:79
79 free(x->blocklist[i]);
(gdb) l
74 static void empty_blocklist(amqp_pool_blocklist_t *x)
75 {
76 int i;
77
78 for (i = 0; i < x->num_blocks; i++) { 79 free(x->blocklist[i]); 80 }
81 if (x->blocklist != NULL) { 82 free(x->blocklist); 83 }
(gdb) p *x
$5 = {num_blocks = 1342177400, blocklist = 0x7fb850000bb0}
(gdb) f 5
#5 0x00007fb8804a150a in empty_amqp_pool (pool=0x7fb850000e18) at /home/push/source/jim/jpush-server/server/external/src/rabbitmq-c-0.5.0/librabbitmq/amqp_mem.c:99
99 empty_blocklist(&pool->pages);
(gdb) l
94 }
95
96 void empty_amqp_pool(amqp_pool_t *pool)
97 { 98 recycle_amqp_pool(pool); 99 empty_blocklist(&pool->pages); 100 }
101
102 /* Returns 1 on success, 0 on failure */
103 static int record_pool_block(amqp_pool_blocklist_t *x, void *block)
(gdb) p pool->pages
$6 = {num_blocks = 1342177400, blocklist = 0x7fb850000bb0}
(gdb) p *pool
$7 = {pagesize = 132577, pages = {num_blocks = 1342177400, blocklist = 0x7fb850000bb0}, large_blocks = {num_blocks = 0, blocklist = 0x0}, next_page = 0, alloc_block = 0x0, alloc_used = 0}
(gdb)



_______________________________________________
rabbitmq-discuss mailing list has moved to https://groups.google.com/forum/#!forum/rabbitmq-users,
please subscribe to the new list!

[hidden email]
https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss



_______________________________________________
rabbitmq-discuss mailing list has moved to https://groups.google.com/forum/#!forum/rabbitmq-users,
please subscribe to the new list!

[hidden email]
https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss