View Issue Details

IDProjectCategoryView StatusLast Update
0004352GNUnetcadet servicepublic2018-06-07 00:24
Reporteramatus Assigned ToChristian Grothoff  
PrioritynormalSeveritycrashReproducibilityhave not tried
Status closedResolutionfixed 
Platformi686OSDebianOS Versionjessie
Product VersionGit master 
Target Version0.11.0pre66Fixed in Version0.11.0pre66 
Summary0004352: segfault in destroy_channel()
DescriptionI just updated to rev 36969 and the set service crashed almost immediately at startup:

Program terminated with signal SIGSEGV, Segmentation fault.
#0 0xb7656990 in destroy_channel (ch=0x910e888, call_cleaner=1)
    at cadet_api.c:468
468 GNUNET_CONTAINER_DLL_remove (h->channels_head, h->channels_tail, ch);
(gdb) bt
#0 0xb7656990 in destroy_channel (ch=0x910e888, call_cleaner=1)
    at cadet_api.c:468
#1 0xb7659b9b in GNUNET_CADET_channel_destroy (channel=0x910e888)
    at cadet_api.c:1697
#2 0xb7657af7 in process_incoming_data (h=0x90fdf00, message=0xbfc1cae0)
    at cadet_api.c:876
#3 0xb76585b9 in msg_received (cls=0x90fdf00, msg=0xbfc1cae0)
    at cadet_api.c:1273
#4 0xb767f9c4 in receive_task (cls=0x90fe238, tc=0xbfc1cb94) at client.c:623
#5 0xb76bbad5 in run_ready (rs=0x910d050, ws=0x90fd930) at scheduler.c:587
#6 0xb76bc362 in GNUNET_SCHEDULER_run (task=0xb76c6ec6 <service_task>,
    task_cls=0xbfc1cdc0) at scheduler.c:868
#7 0xb76c8a64 in GNUNET_SERVICE_run (argc=7, argv=0xbfc1cfb4,
    service_name=0x8056fa8 "set", options=GNUNET_SERVICE_OPTION_NONE,
    task=0x804f057 <run>, task_cls=0x0) at service.c:1503
#8 0x0804f1a4 in main (argc=7, argv=0xbfc1cfb4) at gnunet-service-set.c:2034
(gdb) p *ch
$1 = {next = 0x90fe238, prev = 0xb765871e <send_callback>, cadet = 0x90fdf00,
  chid = 152035840, port = 0, peer = 4294967295, ctx = 0xffffffff,
  packet_size = 48, options = GNUNET_CADET_OPTION_NOBUFFER, allow_send = 50}
(gdb) p *h
$2 = {client = 0x90fe238, message_handlers = 0x8057340 <cadet_handlers>,
  n_handlers = 13, ports = 0x80573b0 <cadet_ports>, n_ports = 1,
  channels_head = 0x0, channels_tail = 0x0,
  new_channel = 0x804ec9b <channel_new_cb>,
  cleaner = 0x804ef74 <channel_end_cb>, th = 0x910e888, cls = 0x0,
  th_head = 0x910ef50, th_tail = 0x910ef50, next_chid = 2147483648,
  in_receive = 1, cfg = 0x90fd678, reconnect_time = {rel_value_us = 1000},
  reconnect_task = 0x0, info_cb = {channel_cb = 0x0, peers_cb = 0x0,
    peer_cb = 0x0, tunnels_cb = 0x0, tunnel_cb = 0x0}, info_cls = 0x0}

The set service logged:
Mar 30 14:36:28-933873 set-union-3599 ERROR union operation failed
TagsNo tags attached.

Activities

amatus

2016-03-30 20:21

developer   ~0010339

Hit the same thing on my other node (amd64 Debian jessie). This time the channels list pointers are not null.

Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00007f336c9d91dd in destroy_channel (ch=0x1b945d0, call_cleaner=1)
    at cadet_api.c:468
468 cadet_api.c: No such file or directory.
(gdb) bt
#0 0x00007f336c9d91dd in destroy_channel (ch=0x1b945d0, call_cleaner=1)
    at cadet_api.c:468
#1 0x00007f336c9de9cd in GNUNET_CADET_channel_destroy (channel=0x1b945d0)
    at cadet_api.c:1697
#2 0x00007f336c9dafa1 in process_incoming_data (h=0x1b740e0,
    message=0x7fff0e385b80) at cadet_api.c:876
#3 0x00007f336c9dc4c0 in msg_received (cls=0x1b740e0, msg=0x7fff0e385b80)
    at cadet_api.c:1273
#4 0x00007f336d00954b in receive_task (cls=0x1b74450, tc=0x7fff0e385ca0)
    at client.c:623
#5 0x00007f336d04c476 in run_ready (rs=0x1b882f0, ws=0x1b738d0)
    at scheduler.c:587
#6 0x00007f336d04cd83 in GNUNET_SCHEDULER_run (
    task=0x7f336d059831 <service_task>, task_cls=0x7fff0e386030)
    at scheduler.c:868
#7 0x00007f336d05b56a in GNUNET_SERVICE_run (argc=3, argv=0x7fff0e3862c8,
    service_name=0x413ada "set", options=GNUNET_SERVICE_OPTION_NONE,
    task=0x408fba <run>, task_cls=0x0) at service.c:1503
#8 0x000000000040911b in main (argc=3, argv=0x7fff0e3862c8)
    at gnunet-service-set.c:2034
(gdb) p *h
$1 = {client = 0x1b74450, message_handlers = 0x414000 <cadet_handlers>,
  n_handlers = 13, ports = 0x4140e0 <cadet_ports>, n_ports = 1,
  channels_head = 0x1b8b060, channels_tail = 0x1b8b060,
  new_channel = 0x4088f0 <channel_new_cb>,
  cleaner = 0x408c69 <channel_end_cb>, th = 0x1b945d0, cls = 0x0,
  th_head = 0x1b9d9e0, th_tail = 0x1b8ad00, next_chid = 2147483650,
  in_receive = 1, cfg = 0x1b73720, reconnect_time = {rel_value_us = 1000},
  reconnect_task = 0x0, info_cb = {channel_cb = 0x0, peers_cb = 0x0,
    peer_cb = 0x0, tunnels_cb = 0x0, tunnel_cb = 0x0}, info_cls = 0x0}
(gdb) p *ch
$2 = {next = 0x1b74450, prev = 0x7f336c9dc708 <send_callback>,
  cadet = 0x1b740e0, chid = 28787696, port = 0, peer = 0,
  ctx = 0xffffffffffffffff, packet_size = 48,
  options = GNUNET_CADET_OPTION_DEFAULT, allow_send = 1}

Christian Grothoff

2017-02-21 18:28

manager   ~0011811

No longer relevant after CADET rewrite.

Issue History

Date Modified Username Field Change
2016-03-30 16:48 amatus New Issue
2016-03-30 16:48 amatus Status new => assigned
2016-03-30 16:48 amatus Assigned To => Bart Polot
2016-03-30 20:21 amatus Note Added: 0010339
2016-09-22 20:11 Christian Grothoff Target Version => 0.11.0pre66
2017-02-21 18:28 Christian Grothoff Assigned To Bart Polot => Christian Grothoff
2017-02-21 18:28 Christian Grothoff Status assigned => resolved
2017-02-21 18:28 Christian Grothoff Resolution open => fixed
2017-02-21 18:28 Christian Grothoff Fixed in Version => 0.11.0pre66
2017-02-21 18:28 Christian Grothoff Note Added: 0011811
2018-06-07 00:24 Christian Grothoff Status resolved => closed