View Issue Details

IDProjectCategoryView StatusLast Update
0001618GNUnetcore servicepublic2011-09-19 08:45
Reportermrwiggles Assigned ToChristian Grothoff Due Date
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 10: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 21: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 10: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 13:00

manager   ~0004181

Fixed in SVN 13751.

mrwiggles

2010-11-24 10: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 16:34

manager   ~0004187

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

mrwiggles

2010-12-01 16: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 13:54

reporter   ~0004212

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

Issue History

Date ModifiedUsernameFieldChange
2010-11-12 13:11mrwigglesNew Issue
2010-11-18 10:44mrwigglesNote Added: 0004171
2010-11-18 10:45mrwigglesDescription Updated
2010-11-18 10:46mrwigglesStatusnew => assigned
2010-11-18 10:46mrwigglesAssigned To => Christian Grothoff
2010-11-18 21:53Christian GrothoffNote Added: 0004174
2010-11-19 10:31mrwigglesNote Added: 0004178
2010-11-19 13:00Christian GrothoffNote Added: 0004181
2010-11-19 13:00Christian GrothoffStatusassigned => resolved
2010-11-19 13:00Christian GrothoffResolutionopen => fixed
2010-11-24 10:53mrwigglesNote Added: 0004186
2010-11-24 10:53mrwigglesStatusresolved => feedback
2010-11-24 10:53mrwigglesResolutionfixed => reopened
2010-11-24 16:23Christian GrothoffStatusfeedback => assigned
2010-11-24 16:34Christian GrothoffNote Added: 0004187
2010-12-01 16:33mrwigglesNote Added: 0004192
2010-12-21 13:27Christian GrothoffStatusassigned => feedback
2010-12-21 13:54mrwigglesNote Added: 0004212
2010-12-21 13:54mrwigglesStatusfeedback => closed
2010-12-21 13:54mrwigglesResolutionreopened => fixed
2010-12-21 13:54mrwigglesFixed in Version => Git master
2011-09-19 08:45Christian GrothoffFixed in VersionGit master => 0.9.0pre3
2011-09-19 08:45Christian GrothoffTarget Version => 0.9.0pre3