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

椰风 1006798382 at qq.com
Mon Jun 30 10:16:43 BST 2014


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 at 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)‍
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20140630/5b8dadd6/attachment.html>


More information about the rabbitmq-discuss mailing list