View Issue Details

IDProjectCategoryView StatusLast Update
0003918GNUnetNAT traversal librarypublic2018-06-07 00:24
ReporterBart Polot Assigned Tobratao  
PriorityhighSeveritycrashReproducibilitysometimes
Status closedResolutionfixed 
Product VersionGit master 
Target Version0.11.0pre66Fixed in Version0.11.0pre66 
Summary0003918: segfault in transport
DescriptionProgram terminated with signal SIGSEGV, Segmentation fault.
#0 0x00007f13a7ab3bd9 in stun_dns_callback (cls=0x1d17ff0, addr=0x0, addrlen=0) at nat_stun.c:478
478 request->cb(request->cb_cls, GNUNET_NAT_ERROR_INTERNAL_NETWORK_ERROR);
(gdb) bt
#0 0x00007f13a7ab3bd9 in stun_dns_callback (cls=0x1d17ff0, addr=0x0, addrlen=0) at nat_stun.c:478
#1 0x00007f13a766ef86 in handle_response (cls=0x1d29d80, msg=0x0) at resolver_api.c:382
#2 0x00007f13a76306b5 in receive_helper (cls=0x1d2de00, buf=0x0, available=0, addr=0x0, addrlen=0, errCode=0) at client.c:540
#3 0x00007f13a763c6cd in signal_receive_timeout (connection=0x1d2dd30) at connection.c:511
#4 0x00007f13a763f79a in receive_ready (cls=0x1d2dd30, tc=0x7ffd1e325ad0) at connection.c:1109
#5 0x00007f13a7672a0f in run_ready (rs=0x1d11550, ws=0x1d288b0) at scheduler.c:587
#6 0x00007f13a767331f in GNUNET_SCHEDULER_run (task=0x7f13a767fe3d <service_task>, task_cls=0x7ffd1e325e60) at scheduler.c:867
#7 0x00007f13a7681b89 in GNUNET_SERVICE_run (argc=3, argv=0x7ffd1e3260e8, service_name=0x422ebc "transport", options=GNUNET_SERVICE_OPTION_NONE, task=0x405c07 <run>, task_cls=0x0) at service.c:1503
#8 0x00000000004062e5 in main (argc=3, argv=0x7ffd1e3260e8) at gnunet-service-transport.c:929
(gdb)
Steps To ReproduceRunning a peer connected to the Internet, cadet profiler.
Additional Information(gdb) bt full
#0 0x00007f13a7ab3bd9 in stun_dns_callback (cls=0x1d17ff0, addr=0x0, addrlen=0) at nat_stun.c:478
        request = 0x1d17ff0
        req = 0x7f13a768e938
        reqdata = "0{\321\001\000\000\000\000 \333h\246\023\177\000\000\060{\321\001\000\000\000\000\201\005d\247\023\177\000\000\377\377\377\377\377\377\377\377\360w\321\001\000\000\000\000\020U1\036\375\177\000\000\316\030d\247\023\177\000\000\320a\321\001\000\000\000\000 |\321\001\000\000\000\000\377\377\377\377\377\377\377\377\067\227g\247\023\177\000\000(\000\000\000\000\000\000\000\060{\321\001\000\000\000\000\000;B\000\000\000\000\000\070", '\000' <repeats 15 times>, "\260m\321\001\000\000\000\000PU1\036\375\177\000\000\352\005\000\000\023\177\000\000@U1\036\375\177\000\000\220\224\323\001\000\000\000\000PU1\036\375\177\000\000\023\230g\247\023\177\000\000\340`2\036\375\177\000\000"...
        reqlen = 32531
        server = {sin_family = 21648, sin_port = 7729, sin_addr = {s_addr = 32765}, sin_zero = "CMg\247\023\177\000"}
        __FUNCTION__ = "stun_dns_callback"
#1 0x00007f13a766ef86 in handle_response (cls=0x1d29d80, msg=0x0) at resolver_api.c:382
        buf = '\000' <repeats 16 times>, "u<\263U", '\000' <repeats 12 times>, "p\021\321\001\000\000\000\000\320\371\320\001\000"
        rh = 0x1d29d80
        size = 0
        nret = 0x0
        __FUNCTION__ = "handle_response"
#2 0x00007f13a76306b5 in receive_helper (cls=0x1d2de00, buf=0x0, available=0, addr=0x0, addrlen=0, errCode=0) at client.c:540
        client = 0x1d2de00
        remaining = {rel_value_us = 30619712}
        receive_handler = 0x7f13a766ec9e <handle_response>
        receive_handler_cls = 0x1d29d80
        __FUNCTION__ = "receive_helper"
#3 0x00007f13a763c6cd in signal_receive_timeout (connection=0x1d2dd30) at connection.c:511
        receiver = 0x7f13a763041d <receive_helper>
        __FUNCTION__ = "signal_receive_timeout"
#4 0x00007f13a763f79a in receive_ready (cls=0x1d2dd30, tc=0x7ffd1e325ad0) at connection.c:1109
        connection = 0x1d2dd30
        buffer = <error reading variable buffer (Cannot access memory at address 0x7ffd1e329000)>
        ret = 30574768
        receiver = 0x7f13a7671a99 <set_overlaps+56>
        __FUNCTION__ = "receive_ready"
#5 0x00007f13a7672a0f in run_ready (rs=0x1d11550, ws=0x1d288b0) at scheduler.c:587
        p = GNUNET_SCHEDULER_PRIORITY_DEFAULT
        pos = 0x1d2d3c0
        tc = {reason = (GNUNET_SCHEDULER_REASON_TIMEOUT | GNUNET_SCHEDULER_REASON_PREREQ_DONE), read_ready = 0x1d11550, write_ready = 0x1d288b0}
        __FUNCTION__ = "run_ready"
#6 0x00007f13a767331f in GNUNET_SCHEDULER_run (task=0x7f13a767fe3d <service_task>, task_cls=0x7ffd1e325e60) at scheduler.c:867
        rs = 0x1d11550
        ws = 0x1d288b0
        timeout = {rel_value_us = 31730}
        ret = 0
        shc_int = 0x1d28b80
        shc_term = 0x1d28c40
        shc_quit = 0x1d28dc0
        shc_hup = 0x1d28e80
        shc_pipe = 0x1d28d00
        last_tr = 9499
        busy_wait_warning = 0
        pr = 0x1d11530
        c = 0 '\000'
        __FUNCTION__ = "GNUNET_SCHEDULER_run"
#7 0x00007f13a7681b89 in GNUNET_SERVICE_run (argc=3, argv=0x7ffd1e3260e8, service_name=0x422ebc "transport", options=GNUNET_SERVICE_OPTION_NONE, task=0x405c07 <run>, task_cls=0x0) at service.c:1503
        err = 0
        ret = 3
        cfg_fn = 0x1d0f700 "~/.config/gnunet.conf"
        opt_cfg_fn = 0x1d0f850 "/home/bart/.config/gnunet.conf"
        loglev = 0x0
        logfile = 0x0
        do_daemonize = 0
        i = 4217863
        skew_offset = 140725110071520
        skew_variance = 4209552
        clock_offset = 1437809766
        sctx = {cfg = 0x1d0f720, server = 0x1d12c50, addrs = 0x0, service_name = 0x422ebc "transport", task = 0x405c07 <run>, task_cls = 0x0, v4_denied = 0x0, v6_denied = 0x0, v4_allowed = 0x1d0f740, v6_allowed = 0x1d27ea0,
          my_handlers = 0x1d12d40, addrlens = 0x0, lsocks = 0x1d114d0, shutdown_task = 0x1d12ce0, timeout = {rel_value_us = 18446744073709551615}, ret = 1, ready_confirm_fd = -1, require_found = 1, match_uid = 0, match_gid = 1,
---Type <return> to continue, or q <return> to quit---
          options = GNUNET_SERVICE_OPTION_NONE}
        cfg = 0x1d0f720
        xdg = 0x0
        service_options = {{shortName = 99 'c', name = 0x7f13a769070d "config", argumentHelp = 0x7f13a7690714 "FILENAME", description = 0x7f13a7690720 "use configuration file FILENAME", require_argument = 1,
            processor = 0x7f13a765fa32 <GNUNET_GETOPT_set_string>, scls = 0x7ffd1e325f18}, {shortName = 100 'd', name = 0x7f13a7690740 "daemonize", argumentHelp = 0x0, description = 0x7f13a7690750 "do daemonize (detach from terminal)",
            require_argument = 0, processor = 0x7f13a765fa05 <GNUNET_GETOPT_set_one>, scls = 0x7ffd1e325f04}, {shortName = 104 'h', name = 0x7f13a7690774 "help", argumentHelp = 0x0, description = 0x7f13a7690779 "print this help",
            require_argument = 0, processor = 0x7f13a765f4d0 <GNUNET_GETOPT_format_help_>, scls = 0x0}, {shortName = 76 'L', name = 0x7f13a7690789 "log", argumentHelp = 0x7f13a769078d "LOGLEVEL",
            description = 0x7f13a7690798 "configure logging to use LOGLEVEL", require_argument = 1, processor = 0x7f13a765fa32 <GNUNET_GETOPT_set_string>, scls = 0x7ffd1e325f10}, {shortName = 108 'l', name = 0x7f13a76907ba "logfile",
            argumentHelp = 0x7f13a76907c2 "LOGFILE", description = 0x7f13a76907d0 "configure logging to write logs to LOGFILE", require_argument = 1, processor = 0x7f13a765fa32 <GNUNET_GETOPT_set_string>, scls = 0x7ffd1e325f08}, {
            shortName = 118 'v', name = 0x7f13a76907fb "version", argumentHelp = 0x0, description = 0x7f13a7690803 "print the version number", require_argument = 0, processor = 0x7f13a765f48a <GNUNET_GETOPT_print_version_>,
            scls = 0x7f13a769081c}, {shortName = 0 '\000', name = 0x0, argumentHelp = 0x0, description = 0x0, require_argument = 0, processor = 0x0, scls = 0x0}}
        __FUNCTION__ = "GNUNET_SERVICE_run"
#8 0x00000000004062e5 in main (argc=3, argv=0x7ffd1e3260e8) at gnunet-service-transport.c:929
No locals.

(gdb) l
473 request->dns_active = NULL;
474
475 if( GNUNET_NO == request->dns_success){
476 LOG (GNUNET_ERROR_TYPE_INFO, "Error resolving host %s\n", request->stun_server);
477 clean(request);
478 request->cb(request->cb_cls, GNUNET_NAT_ERROR_INTERNAL_NETWORK_ERROR);
479 }
480
481 return;
482 }
(gdb)
TagsNo tags attached.

Activities

Bart Polot

2015-07-27 17:26

manager   ~0009487

It's quite reproductible. I have 67 coredumps overnight.

bratao

2015-08-17 04:25

developer   ~0009571

Hopefully I fixed in SVN.

Issue History

Date Modified Username Field Change
2015-07-25 19:00 Bart Polot New Issue
2015-07-25 19:00 Bart Polot Status new => assigned
2015-07-25 19:00 Bart Polot Assigned To => Matthias Wachs
2015-07-27 14:43 Christian Grothoff Assigned To Matthias Wachs => bratao
2015-07-27 14:43 Christian Grothoff Category transport service => NAT traversal library
2015-07-27 17:26 Bart Polot Note Added: 0009487
2015-07-27 17:26 Bart Polot Reproducibility have not tried => sometimes
2015-08-17 04:25 bratao Note Added: 0009571
2015-08-17 04:25 bratao Status assigned => resolved
2015-08-17 04:25 bratao Fixed in Version => Git master
2015-08-17 04:25 bratao Resolution open => fixed
2015-08-21 21:08 Christian Grothoff Fixed in Version Git master => 0.11.0pre66
2018-06-07 00:24 Christian Grothoff Status resolved => closed