View Issue Details

IDProjectCategoryView StatusLast Update
0001618GNUnetcore servicepublic2011-09-19 10:45
Reportermrwiggles Assigned ToChristian Grothoff  
PrioritynormalSeveritycrashReproducibilityrandom
Status closedResolutionfixed 
Summary0001618: Core segfault
DescriptionSee traces below, this happens more often than any other when running lots of peers. The transmit handle is obviously garbage by the time this gets called. I'm guessing there's something wrong with the cleaning task.
Additional Information#0 GNUNET_TRANSPORT_notify_transmit_ready_cancel (th=0x20007f0) at transport_api.c:1869
#0 GNUNET_TRANSPORT_notify_transmit_ready_cancel (th=0x20007f0) at transport_api.c:1869
#1 0x0000000000402f7e in free_neighbour (n=0x20041e0) at gnunet-service-core.c:1254
#2 0x00000000004038f6 in cleaning_task (cls=<value optimized out>, tc=<value optimized out>) at gnunet-service-core.c:3931

(gdb) print *th
$3 = {neighbour = 0xc9f789b2db74b73c, notify = 0xdca54687f2d0310d, notify_cls = 0xe953ba9eed12312d, notify_delay_task = 12745338902540692070, timeout = {
    abs_value = 4988047160665810704}, notify_size = 844231822741600669, priority = 890925694}
TagsNo tags attached.

Activities

mrwiggles

2010-11-18 11:44

reporter   ~0004171

It seems that after the core service crashes in this way, when a process calls GNUNET_CORE_disconnect with a handle to the service (which it thinks is still valid) that process dies with an assertion failure at:

#2 0x00007f06e92b954a in GNUNET_CLIENT_notify_transmit_ready_cancel (th=0x1916db0) at client.c:890
#3 0x00007f06e9cf5987 in GNUNET_CORE_disconnect (handle=0x19097c0) at core_api.c:1397

Christian Grothoff

2010-11-18 22:53

manager   ~0004174

I've added a few extra checks (asserts) to help with the diagnosis. Also, the line numbers reported did not match the current code BY FAR, so maybe re-running it with HEAD would be useful...

mrwiggles

2010-11-19 11:31

reporter   ~0004178

#0 GNUNET_TRANSPORT_notify_transmit_ready_cancel (th=0x1915240) at transport_api.c:1869
#0 GNUNET_TRANSPORT_notify_transmit_ready_cancel (th=0x1915240) at transport_api.c:1869
#1 0x000000000040396e in free_neighbour (n=0x19152e0) at gnunet-service-core.c:1529
#2 0x00000000004053a6 in cleaning_task (cls=<value optimized out>, tc=<value optimized out>) at gnunet-service-core.c:4234

This is where it happens (with svn head from a recent version). I just didn't re-report the new line numbers as they changed (same issue).

Christian Grothoff

2010-11-19 14:00

manager   ~0004181

Fixed in SVN 13751.

mrwiggles

2010-11-24 11:53

reporter   ~0004186

Current stack trace...

#0 0x00007ff9e5b25ed5 in raise () from /lib/libc.so.6
#1 0x00007ff9e5b273f3 in abort () from /lib/libc.so.6
#2 0x00007ff9e6882402 in GNUNET_SCHEDULER_cancel (task=1290582702840) at scheduler.c:910
#3 0x00007ff9e6a993a5 in GNUNET_TRANSPORT_notify_transmit_ready_cancel (th=0x9fcb80) at transport_api.c:1883
#4 0x0000000000404340 in free_neighbour (n=0xa1d470) at gnunet-service-core.c:1543
#5 0x000000000040938e in cleaning_task (cls=0x0, tc=0x7fff1478ae40) at gnunet-service-core.c:4246
#6 0x00007ff9e6881cc8 in run_ready (rs=0x9abf50, ws=0x9b0b50) at scheduler.c:644
#7 0x00007ff9e68820d7 in GNUNET_SCHEDULER_run (task=0x7ff9e6887f83 <service_task>, task_cls=0x7fff1478b300) at scheduler.c:786
#8 0x00007ff9e6888e3e in GNUNET_SERVICE_run (argc=3, argv=0x7fff1478b4f8, serviceName=0x40a342 "core", opt=GNUNET_SERVICE_OPTION_NONE,
    task=0x4094b5 <run>, task_cls=0x0) at service.c:1577

Christian Grothoff

2010-11-24 17:34

manager   ~0004187

Could you please try again with 13797 (and valgrind traces would make me very happy...).

mrwiggles

2010-12-01 17:33

reporter   ~0004192

May have been fixed with core and transport changes, won't know until other stuff is working again.

mrwiggles

2010-12-21 14:54

reporter   ~0004212

Issue was fixed after transport hashmap change, verified with testing.

Issue History

Date Modified Username Field Change
2010-11-12 14:11 mrwiggles New Issue
2010-11-18 11:44 mrwiggles Note Added: 0004171
2010-11-18 11:45 mrwiggles Description Updated
2010-11-18 11:46 mrwiggles Status new => assigned
2010-11-18 11:46 mrwiggles Assigned To => Christian Grothoff
2010-11-18 22:53 Christian Grothoff Note Added: 0004174
2010-11-19 11:31 mrwiggles Note Added: 0004178
2010-11-19 14:00 Christian Grothoff Note Added: 0004181
2010-11-19 14:00 Christian Grothoff Status assigned => resolved
2010-11-19 14:00 Christian Grothoff Resolution open => fixed
2010-11-24 11:53 mrwiggles Note Added: 0004186
2010-11-24 11:53 mrwiggles Status resolved => feedback
2010-11-24 11:53 mrwiggles Resolution fixed => reopened
2010-11-24 17:23 Christian Grothoff Status feedback => assigned
2010-11-24 17:34 Christian Grothoff Note Added: 0004187
2010-12-01 17:33 mrwiggles Note Added: 0004192
2010-12-21 14:27 Christian Grothoff Status assigned => feedback
2010-12-21 14:54 mrwiggles Note Added: 0004212
2010-12-21 14:54 mrwiggles Status feedback => closed
2010-12-21 14:54 mrwiggles Resolution reopened => fixed
2010-12-21 14:54 mrwiggles Fixed in Version => Git master
2011-09-19 10:45 Christian Grothoff Fixed in Version Git master => 0.9.0pre3
2011-09-19 10:45 Christian Grothoff Target Version => 0.9.0pre3