View Issue Details

IDProjectCategoryView StatusLast Update
0002637GNUnetcadet servicepublic2012-12-21 16:49
ReporterLRN Assigned ToBart Polot  
PrioritynormalSeveritycrashReproducibilityunable to reproduce
Status closedResolutionduplicate 
Product VersionGit master 
Target Version0.9.5Fixed in VersionGit master 
Summary0002637: Crash in mesh service during perf_stream_api test
Descriptionsubj
Additional Information
Reading symbols from d:\progs\gnunet\lib\gnunet\libexec\gnunet-service-mesh.exe...done.
Continuing.

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 13276.0x2f8c]
0x62b56816 in GNUNET_CONTAINER_multihashmap_get (map=0xdf0adba, key=0x28fba0) at container_multihashmap.c:251
251       me = map->map[idx_of (map, key)];
(gdb) bt
#0  0x62b56816 in GNUNET_CONTAINER_multihashmap_get (map=0xdf0adba, key=0x28fba0) at container_multihashmap.c:251
#1  0x00402ee5 in announce_application (cls=0x0, key=0x28fba0, value=0x4904d8) at gnunet-service-mesh.c:1805
#2  0x62b56a4d in GNUNET_CONTAINER_multihashmap_iterate (map=0x499228, it=0x402dec <announce_application>, it_cls=0x0) at container_multihashmap.c:326
#3  0x004031c4 in announce_applications (cls=0x0, tc=0x28fc60) at gnunet-service-mesh.c:1880
#4  0x62b7f991 in run_ready (rs=0x56e940, ws=0x569fe8) at scheduler.c:597
#5  0x62b8012f in GNUNET_SCHEDULER_run (task=0x62b8c487 <service_task>, task_cls=0x28fdf8) at scheduler.c:785
#6  0x62b8d2b4 in GNUNET_SERVICE_run (argc=3, argv=0x48a498, service_name=0x423c5a <__register_frame_info+4340826> "mesh", options=GNUNET_SERVICE_OPTION_NONE, task=0x41bdb1 <run>, task_cls=0x0) at service.c:1813
#7  0x0041c9e9 in main (argc=3, argv=0x48a498) at gnunet-service-mesh.c:8472
(gdb) p map
$1 = (const struct GNUNET_CONTAINER_MultiHashMap *) 0xdf0adba
(gdb) up
#1  0x00402ee5 in announce_application (cls=0x0, key=0x28fba0, value=0x4904d8) at gnunet-service-mesh.c:1805
1805      block.type = (long) GNUNET_CONTAINER_multihashmap_get (c->apps, key);
(gdb) p/x *c
$2 = {next = 0x49fe68, prev = 0x48f9d0, own_tunnels = 0xdf0adba, incoming_tunnels = 0xdf0adba, ignore_tunnels = 0xdf0adba, handle = 0xdf0adba, apps = 0xdf0adba, types = 0xdf0adba, shutting_down = 0xdf0adba, id = 0xdf0adba, regexes = 0xdf0adba,
  n_regex = 0xdf0adba, regex_announce_task = 0xdf0adba0df0adba}
(gdb) l
1800      struct MeshClient *c;
1801
1802      block.id = my_full_id;
1803      c =  GNUNET_CONTAINER_multihashmap_get (applications, key);
1804      GNUNET_assert(NULL != c);
1805      block.type = (long) GNUNET_CONTAINER_multihashmap_get (c->apps, key);
1806      if (0 == block.type)
1807      {
1808        GNUNET_break(0);
1809        return GNUNET_YES;


also in the _same_ test:

Reading symbols from d:\progs\gnunet\lib\gnunet\libexec\gnunet-service-mesh.exe...done.
Continuing.

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 10160.0x1584]
0x004067f7 in tunnel_poll (cls=0x5fea38, tc=0x28fc60) at gnunet-service-mesh.c:2988
2988      msg.tid = htonl (t->id.tid);
(gdb) bt
#0  0x004067f7 in tunnel_poll (cls=0x5fea38, tc=0x28fc60) at gnunet-service-mesh.c:2988
#1  0x62b7f991 in run_ready (rs=0x5f9fe8, ws=0x5fb000) at scheduler.c:597
#2  0x62b8012f in GNUNET_SCHEDULER_run (task=0x62b8c487 <service_task>, task_cls=0x28fdf8) at scheduler.c:785
#3  0x62b8d2b4 in GNUNET_SERVICE_run (argc=3, argv=0x1d5a498, service_name=0x423c5a <__register_frame_info+4340826> "mesh", options=GNUNET_SERVICE_OPTION_NONE, task=0x41bdb1 <run>, task_cls=0x0) at service.c:1813
#4  0x0041c9e9 in main (argc=3, argv=0x1d5a498) at gnunet-service-mesh.c:8472
(gdb) p/x *t
Cannot access memory at address 0xdf0adba
(gdb) l
2983      }
2984
2985      t = cinfo->t;
2986      msg.header.type = htons (GNUNET_MESSAGE_TYPE_MESH_POLL);
2987      msg.header.size = htons (sizeof (msg));
2988      msg.tid = htonl (t->id.tid);
2989      GNUNET_PEER_resolve (t->id.oid, &msg.oid);
2990      msg.last_ack = htonl (cinfo->fwd_ack);
2991
2992      GNUNET_PEER_resolve (cinfo->id, &id);
(gdb) p/x *cinfo
$1 = {id = 0x17, skip = 0xdf0adba, fwd_pid = 0x27b0, bck_pid = 0xdf0adba, fwd_ack = 0xdf0adba, bck_ack = 0xdf0adba, send_buffer = 0x8, send_buffer_start = 0x0, send_buffer_n = 0x274, t = 0xdf0ad75, fc_poll = 0x0}


This happens at the end of the test, when, apparently, peers are shutting down.
After killing two crashing processes, i see:
Testing over 1 hop with payload size 50000
Testing Uplink
Progress: [0%...........25%............50%............75%............100%]
Throughput 4736.64 kB/sec
Testing Downlink
Progress: [0%...........25%............50%............75%............100%]
Throughput 6370.24 kB/sec
PASS: perf_stream_api.exe

in the console.

Ran this test specifically a few times, failed to reproduce the crash.
TagsNo tags attached.

Relationships

duplicate of 0002660 closedBart Polot crash in mesh (running 'make check' in fs/ directory left a present...) 

Activities

Bart Polot

2012-12-06 17:33

reporter   ~0006649

Duplicate of 0002660. Probably fixed now.

Issue History

Date Modified Username Field Change
2012-11-07 18:42 LRN New Issue
2012-11-07 18:42 LRN Status new => assigned
2012-11-07 18:42 LRN Assigned To => Bart Polot
2012-11-10 14:12 Christian Grothoff Product Version => Git master
2012-11-10 14:12 Christian Grothoff Target Version => 0.9.5
2012-12-06 17:33 Bart Polot Note Added: 0006649
2012-12-06 17:33 Bart Polot Relationship added duplicate of 0002660
2012-12-06 17:33 Bart Polot Status assigned => resolved
2012-12-06 17:33 Bart Polot Fixed in Version => Git master
2012-12-06 17:33 Bart Polot Resolution open => duplicate
2012-12-21 16:49 Christian Grothoff Status resolved => closed
2014-05-09 18:34 Christian Grothoff Category mesh service => cadet service