[sheepdog] Segfault for 0.4.0 branch

Yunkai Zhang yunkai.me at gmail.com
Mon Jul 9 14:37:04 CEST 2012


On Mon, Jul 9, 2012 at 11:25 AM, Liu Yuan <namei.unix at gmail.com> wrote:
> On 07/09/2012 09:58 AM, Liu Yuan wrote:
>> Got an weird segfault,
>>
>> (gdb) where
>> #0  0x0000000000411936 in do_process_work (work=0xd13c70) at ops.c:992
>> #1  0x000000000040ed05 in worker_routine (arg=0xd12a20) at work.c:171
>> #2  0x00007f43f992c971 in start_thread (arg=<value optimized out>) at
>> pthread_create.c:304
>> #3  0x00007f43f8eeef3d in clone () at
>> ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
>> #4  0x0000000000000000 in ?? ()
>>
>> sheep.log:
>> ...
>> Jul 09 09:47:23 [main] client_handler(764) connection seems to be dead
>> Jul 09 09:47:23 [main] clear_client(703) refcnt:0, fd:14, ::1:43328
>> Jul 09 09:47:23 [main] destroy_client(672) connection from: ::1:43328
>> Jul 09 09:47:23 [main] cdrv_cpg_deliver(448) 5
>> Jul 09 09:47:23 [main] sd_notify_handler(851) size: 96, from: IPv4
>> ip:127.0.0.1 port:7000
>> Jul 09 09:47:23 [main] client_tx_handler(663) connection from: 13, ::1:43330
>> Jul 09 09:47:23 [main] client_handler(764) connection seems to be dead
>> Jul 09 09:47:23 [main] clear_client(703) refcnt:0, fd:13, ::1:43330
>> Jul 09 09:47:23 [main] destroy_client(672) connection from: ::1:43330
>> Jul 09 09:47:23 [main] listen_handler(819) accepted a new connection: 13
>> Jul 09 09:47:23 [main] listen_handler(819) accepted a new connection: 14
>> Jul 09 09:47:23 [block] do_process_work(990) 80, 0 , 32579 <--- XXX
>> Jul 09 09:47:23 [main] client_rx_handler(577) connection from: 14, ::1:43337
>> Jul 09 09:47:23 [main] queue_request(323) 2
>> Jul 09 09:47:23 [main] crash_handler(408) sheep pid 5326 exited
>> unexpectedly.
>>
>> Thanks,
>> Yuan
>>
>
> Yet another segfault.
>
> #0  __libc_free (mem=0x7f3301864000) at malloc.c:3709
> 3709    malloc.c: No such file or directory.
>         in malloc.c
> (gdb) where
> #0  __libc_free (mem=0x7f3301864000) at malloc.c:3709
> #1  0x00000000004090a1 in free_request (req=0x7f32fc000a00) at sdnet.c:474
> #2  0x00000000004098bd in client_tx_handler (ci=0x7f32fc0143c0) at
> sdnet.c:656
> #3  0x0000000000409d32 in client_handler (fd=14, events=4,
> data=0x7f32fc0143c0) at sdnet.c:760
> #4  0x000000000041e470 in event_loop (timeout=-1) at event.c:179
> #5  0x0000000000404376 in main (argc=7, argv=0x7fff9f1566a8) at sheep.c:275

I have fix this bug, we should use list_for_each_entry_safe instread
of list_for_each_entry to loop when we need to delete node in it.

>
> --
> sheepdog mailing list
> sheepdog at lists.wpkg.org
> http://lists.wpkg.org/mailman/listinfo/sheepdog
>



-- 
Yunkai Zhang
Work at Taobao



More information about the sheepdog mailing list