View Issue Details

IDProjectCategoryView StatusLast Update
0003971GNUnettransport servicepublic2018-06-07 00:24
ReporterBart PolotAssigned ToChristian Grothoff 
PrioritynormalSeveritycrashReproducibilityhave not tried
Status closedResolutionfixed 
Product VersionSVN HEAD 
Target Version0.11.0pre66Fixed in Version0.11.0pre66 
Summary0003971: Crash in transport GST_ats_add_address
Description(gdb) bt
#0 0x00007f8c161185f8 in raise () from /usr/lib/libc.so.6
#1 0x00007f8c16119a7a in abort () from /usr/lib/libc.so.6
#2 0x00007f8c1742795b in GNUNET_abort_ () at common_logging.c:290
#3 0x00000000004073c9 in GST_ats_add_address (address=0x1779120, prop=0x7fff188e8d40)
    at gnunet-service-transport_ats.c:467
#4 0x000000000042062c in GST_validation_handle_pong (sender=0x14ffed0, hdr=0x7fff188e90e8)
    at gnunet-service-transport_validation.c:1504
#5 0x0000000000404b49 in GST_receive_callback (cls=0x1485c60, address=0x14ffed0, session=0x14f7f20,
    message=0x7fff188e90e8) at gnunet-service-transport.c:423
#6 0x0000000000421c59 in GST_manipulation_recv (cls=0x1485c60, address=0x14ffed0, session=0x14f7f20,
    message=0x7fff188e90e8) at gnunet-service-transport_manipulation.c:412
#7 0x00007f8c15cd7a26 in process_inbound_tokenized_messages (cls=0x1486ec0, client=0x14f7f20, hdr=0x7fff188e90e8)
    at plugin_transport_udp.c:2139
#8 0x00007f8c1746c7b3 in GNUNET_SERVER_mst_receive (mst=0x1485620, client_identity=0x14f7f20, buf=0x7fff188e90e8 "",
    size=106, purge=1, one_shot=0) at server_mst.c:262
#9 0x00007f8c15cd8b9d in process_udp_message (plugin=0x1486ec0, msg=0x7fff188e90c0, udp_addr=0x7fff188e90b0,
    udp_addr_len=10, network_type=GNUNET_ATS_NET_WAN) at plugin_transport_udp.c:2533
#10 0x00007f8c15cd9e2d in udp_select_read (plugin=0x1486ec0, rsock=0x14870a0) at plugin_transport_udp.c:2944
#11 0x00007f8c15cdaaa3 in udp_plugin_select_v4 (cls=0x1486ec0, tc=0x7fff188f9210) at plugin_transport_udp.c:3274
#12 0x00007f8c17464932 in run_ready (rs=0x149bb70, ws=0x149bc00) at scheduler.c:587
#13 0x00007f8c17465244 in GNUNET_SCHEDULER_run (task=0x7f8c17471d34 <service_task>, task_cls=0x7fff188f95a0)
    at scheduler.c:868
#14 0x00007f8c17473a80 in GNUNET_SERVICE_run (argc=3, argv=0x7fff188f9828, service_name=0x422ebc "transport",
    options=GNUNET_SERVICE_OPTION_NONE, task=0x405c07 <run>, task_cls=0x0) at service.c:1503
#15 0x00000000004062e5 in main (argc=3, argv=0x7fff188f9828) at gnunet-service-transport.c:929

(gdb) up 3
#3 0x00000000004073c9 in GST_ats_add_address (address=0x1779120, prop=0x7fff188e8d40) at gnunet-service-transport_ats.c:467
467 GNUNET_assert (NULL == ai);

(gdb) l
462 }
463 GNUNET_assert (GNUNET_YES !=
464 GNUNET_HELLO_address_check_option (address,
465 GNUNET_HELLO_ADDRESS_INFO_INBOUND));
466 ai = find_ai_no_session (address);
467 GNUNET_assert (NULL == ai);
468 LOG (GNUNET_ERROR_TYPE_INFO,
469 "Notifying ATS about peer `%s''s new address `%s'\n",
470 GNUNET_i2s (&address->peer),
471 (0 == address->address_length)

(gdb) p *ai
$1 = {address = 0x14a34c0, session = 0x14f7f20, ar = 0x0, properties = {delay = {rel_value_us = 1654}, utilization_out = 0, utilization_in = 0, distance = 0, scope = GNUNET_ATS_NET_UNSPECIFIED}, blocked = {abs_value_us = 1442056137578022},
  back_off = {rel_value_us = 4000}, unblock_task = 0x0, expired = 1}

(gdb) p *ai->address
$2 = {peer = {public_key = {q_y = "\264@\270\306\351\362\353ߌB+\237\325=\327\365\271\341\255\215\025\346\031\366\331\353\203\344\303\060", <incomplete sequence \311>}}, transport_name = 0x14a350a "udp", address = 0x14a3500,
  address_length = 10, local_info = GNUNET_HELLO_ADDRESS_INFO_NONE}

(gdb) p *ai->session
$3 = {target = {public_key = {q_y = "\264@\270\306\351\362\353ߌB+\237\325=\327\365\271\341\255\215\025\346\031\366\331\353\203\344\303\060", <incomplete sequence \311>}}, plugin = 0x1486ec0, frag_ctx = 0x167b110,
  flow_delay_for_other_peer = {rel_value_us = 0}, flow_delay_from_other_peer = {abs_value_us = 1442123053380720}, timeout_task = 0x14f9750, timeout = {abs_value_us = 1442123670605146}, last_expected_ack_delay = {rel_value_us = 111},
  last_expected_msg_delay = {rel_value_us = 0}, address = 0x14ffed0, bytes_in_queue = 0, msgs_in_queue = 0, rc = 1, scope = GNUNET_ATS_NET_WAN, in_destroy = 0}

(gdb) p *address
$4 = {peer = {public_key = {q_y = "\264@\270\306\351\362\353ߌB+\237\325=\327\365\271\341\255\215\025\346\031\366\331\353\203\344\303\060", <incomplete sequence \311>}}, transport_name = 0x177916a "udp", address = 0x1779160,
  address_length = 10, local_info = GNUNET_HELLO_ADDRESS_INFO_NONE}
Steps To ReproduceRunning a peer connected to the public network.
Additional Information(gdb) bt full
#0 0x00007f8c161185f8 in raise () from /usr/lib/libc.so.6
No symbol table info available.
#1 0x00007f8c16119a7a in abort () from /usr/lib/libc.so.6
No symbol table info available.
#2 0x00007f8c1742795b in GNUNET_abort_ () at common_logging.c:290
No locals.
#3 0x00000000004073c9 in GST_ats_add_address (address=0x1779120, prop=0x7fff188e8d40) at gnunet-service-transport_ats.c:467
        ar = 0x4fef
        ai = 0x14a3460
        __FUNCTION__ = "GST_ats_add_address"
#4 0x000000000042062c in GST_validation_handle_pong (sender=0x14ffed0, hdr=0x7fff188e90e8) at gnunet-service-transport_validation.c:1504
        prop = {delay = {rel_value_us = 10231}, utilization_out = 0, utilization_in = 0, distance = 0, scope = GNUNET_ATS_NET_WAN}
        pong = 0x7fff188e90e8
        ve = 0x15504f0
        tname = 0x7fff188e9144 "udp"
        addr = 0x7fff188e9148 ""
        addrlen = 10
        slen = 4
        size = 14
        hello = 0x14b32d0
        address = {peer = {public_key = {q_y = "\264@\270\306\351\362\353ߌB+\237\325=\327\365\271\341\255\215\025\346\031\366\331\353\203\344\303\060", <incomplete sequence \311>}}, transport_name = 0x7fff188e9144 "udp",
          address = 0x7fff188e9148, address_length = 10, local_info = GNUNET_HELLO_ADDRESS_INFO_NONE}
        sig_res = 1
        do_verify = 1
        __FUNCTION__ = "GST_validation_handle_pong"
#5 0x0000000000404b49 in GST_receive_callback (cls=0x1485c60, address=0x14ffed0, session=0x14f7f20, message=0x7fff188e90e8) at gnunet-service-transport.c:423
        plugin_name = 0x1485c60 "udp"
        ret = {rel_value_us = 0}
        type = 373
        __FUNCTION__ = "GST_receive_callback"
#6 0x0000000000421c59 in GST_manipulation_recv (cls=0x1485c60, address=0x14ffed0, session=0x14f7f20, message=0x7fff188e90e8) at gnunet-service-transport_manipulation.c:412
        tmp = 0x0
        quota_delay = {rel_value_us = 140733605451808}
        m_delay = {rel_value_us = 0}
        __FUNCTION__ = "GST_manipulation_recv"
#7 0x00007f8c15cd7a26 in process_inbound_tokenized_messages (cls=0x1486ec0, client=0x14f7f20, hdr=0x7fff188e90e8) at plugin_transport_udp.c:2139
        plugin = 0x1486ec0
        session = 0x14f7f20
#8 0x00007f8c1746c7b3 in GNUNET_SERVER_mst_receive (mst=0x1485620, client_identity=0x14f7f20, buf=0x7fff188e90e8 "", size=106, purge=1, one_shot=0) at server_mst.c:262
        hdr = 0x7fff188e90e8
        delta = 10866267260218
        want = 106
        ibuf = 0x15011d0 ""
        need_align = 0
        offset = 140733605384424
        ret = 1
        __FUNCTION__ = "GNUNET_SERVER_mst_receive"
#9 0x00007f8c15cd8b9d in process_udp_message (plugin=0x1486ec0, msg=0x7fff188e90c0, udp_addr=0x7fff188e90b0, udp_addr_len=10, network_type=GNUNET_ATS_NET_WAN) at plugin_transport_udp.c:2533
        s = 0x14f7f20
        address = 0x1586850
        __FUNCTION__ = "process_udp_message"
#10 0x00007f8c15cd9e2d in udp_select_read (plugin=0x1486ec0, rsock=0x14870a0) at plugin_transport_udp.c:2944
        fromlen = 16
        addr = {ss_family = 2, __ss_align = 0, __ss_padding = '\000' <repeats 111 times>}
        buf = "\000\222\000\070\000\000\000\000\264@\270\306\351\362\353ߌB+\237\325=\327\365\271\341\255\215\025\346\031\366\331\353\203\344\303\060\033\311\000j\001u\310Ɣ_i\263\236\\\312NI:;\220\322{\345/\337\350̆e1)z\341E\231J5s\257z\f-sr\3
10k\351\321CʘZ\016B\237\220gȤ\322\302\366\nC\260\tb2%\305\321\331A\t\000\000\000\"\000\000\000\001\000\005\037\233\\\t\363\252\000\000\000\016udp\000\000\000\000\000\254\030\201;\b&@\024K\026\371\067\001\237\315\323\363\211FK+O\224\246\333\3
56\373\203udp\000\000\000\000\000\254\030\200\003\b&\000\000\b\001\000\000\001\000\000\000\360\221\217\030\377\177\000\000.\022C\027\214\177\000\000"...
        size = 146
        msg = 0x7fff188e90c0
        v4 = {options = 0, ipv4_addr = 998316204, u4_port = 9736}
        v6 = {options = 65535, ipv6_addr = {__in6_u = {__u6_addr8 = "\000\000\000\000\340\361b\001\000\000\000\000\020\000\000", __u6_addr16 = {0, 0, 61920, 354, 0, 0, 16, 0}, __u6_addr32 = {0, 23261664, 0, 16}}}, u6_port = 0}
        sa = 0x7fff188f90c0
        sa4 = 0x7fff188f90c0
        sa6 = 0x7fff188f91d0
TagsNo tags attached.

Activities

Christian Grothoff

2015-10-07 13:55

manager   ~0009712

Added additional assertions to find where the invariant is violated in SVN 36468.

Christian Grothoff

2015-10-26 16:26

manager   ~0009792

Is this still happening?

Bart Polot

2015-10-26 20:32

manager   ~0009799

I had a trasport crash yesterday but the core file is missing (Arch stores the coredump in the syslog), so I don't know if it's the same :/

Christian Grothoff

2015-10-28 14:06

manager   ~0009818

Waiting for feedback / reproduction.

Christian Grothoff

2015-10-31 16:12

manager   ~0009870

Seems fixed.

Issue History

Date Modified Username Field Change
2015-09-15 05:14 Bart Polot New Issue
2015-09-15 05:14 Bart Polot Status new => assigned
2015-09-15 05:14 Bart Polot Assigned To => bratao
2015-09-15 05:16 Bart Polot Severity minor => crash
2015-09-15 05:16 Bart Polot Description Updated View Revisions
2015-10-05 18:40 Christian Grothoff Assigned To bratao => Christian Grothoff
2015-10-07 13:55 Christian Grothoff Note Added: 0009712
2015-10-07 13:55 Christian Grothoff Status assigned => feedback
2015-10-26 16:26 Christian Grothoff Note Added: 0009792
2015-10-26 20:32 Bart Polot Note Added: 0009799
2015-10-26 20:32 Bart Polot Status feedback => assigned
2015-10-28 14:06 Christian Grothoff Note Added: 0009818
2015-10-28 14:06 Christian Grothoff Status assigned => feedback
2015-10-31 16:12 Christian Grothoff Note Added: 0009870
2015-10-31 16:12 Christian Grothoff Status feedback => resolved
2015-10-31 16:12 Christian Grothoff Fixed in Version => 0.11.0pre66
2015-10-31 16:12 Christian Grothoff Resolution open => fixed
2018-06-07 00:24 Christian Grothoff Status resolved => closed