Package: gnunet-server
Version: 0.9.3-7
Severity: normal

Running a gnunet node against the public gnunet network I noticed that
the connection count would occasionally drop to 0. Upon investigation it
became apparent that gnunet-service-transport was restarted. The reason
for this was it crashing. Armed with gnunet-dbg (thanks!) I ran gdb on
the transport process and captured a traceback.

(gdb) cont
Program received signal SIGABRT, Aborted.
0x00007f74fbfba475 in raise () from /lib/x86_64-linux-gnu/libc.so.6
(gdb) bt full
#0  0x00007f74fbfba475 in raise () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#1  0x00007f74fbfbd6f0 in abort () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#2  0x00007f74fc7ac169 in GNUNET_abort () at common_logging.c:273
No locals.
#3  0x00007f74fcffd66a in get_session_id (sh=sh@entry=0x170c9c0, 
session=session@entry=0x1752930, peer=peer@entry=0x7ffff60cab30) at 
ats_api_scheduling.c:379
        i = <optimized out>
        f = <optimized out>
        __FUNCTION__ = "get_session_id"
#4  0x00007f74fcfffe34 in GNUNET_ATS_address_destroyed (sh=0x170c9c0, 
address=address@entry=0x7ffff60cab30, session=session@entry=0x1752930) at 
ats_api_scheduling.c:1175
        p = 0x17460d0
        m = 0x17460f0
        pm = <optimized out>
        namelen = 4
        msize = <optimized out>
        session_id = <optimized out>
        __FUNCTION__ = "GNUNET_ATS_address_destroyed"
#5  0x000000000040447e in plugin_env_session_end (cls=<optimized out>, 
peer=<optimized out>, session=0x1752930) at gnunet-service-transport.c:361
        transport_name = <optimized out>
        address = {peer = {hashPubKey = {bits = {1792322431, 1378667084, 
310041233, 2464310197, 3523261203, 1036757644, 2541840165, 3043748064, 
1642212703, 1696714426, 3560355177, 
                238043445, 3489910964, 3256697350, 3560918137, 1877718344}}}, 
transport_name = 0x170da90 "tcp", address = 0x0, address_length = 0}
#6  0x00007f74f7dcdaa4 in disconnect_session (session=0x1752930) at 
plugin_transport_tcp.c:975
        pm = <optimized out>
        plugin = 0x173ebf0
        __FUNCTION__ = "disconnect_session"
#7  0x00007f74f7dd0532 in disconnect_notify (cls=0x51ad, client=0x51ad) at 
plugin_transport_tcp.c:2045
        session = 0x1752930
#8  0x00007f74fc7d253a in GNUNET_SERVER_client_disconnect (client=0x1746fe0) at 
server.c:1370
        server = 0x173eb70
        n = 0x173e2f0
        __FUNCTION__ = "GNUNET_SERVER_client_disconnect"
#9  0x00007f74fc7af66d in receive_ready (cls=0x1751d90, tc=<optimized out>) at 
connection.c:1047
        connection = 0x1751d90
        buffer = 0x7ffff60cac00 "\001x"
        ret = <optimized out>
        receiver = <optimized out>
        __FUNCTION__ = "receive_ready"
#10 0x00007f74fc7d042b in run_ready (ws=0x171c730, rs=0x171c6a0) at 
scheduler.c:602
        p = <optimized out>
        pos = 0x1752080
        tc = {reason = 20, read_ready = 0x171c6a0, write_ready = 0x171c730}
#11 GNUNET_SCHEDULER_run (task=task@entry=0x7f74fc7d6a70 <service_task>, 
task_cls=task_cls@entry=0x7ffff60dad70) at scheduler.c:790
        rs = 0x171c6a0
        ws = 0x171c730
        timeout = <optimized out>
        ret = <optimized out>
        shc_int = 0x170c270
        shc_term = 0x170c320
        shc_quit = 0x170c480
        shc_hup = 0x170c530
        shc_pipe = 0x170c3d0
        last_tr = 5893764
        busy_wait_warning = 0
        pr = 0x171c650
        c = 0 '\000'
        __FUNCTION__ = "GNUNET_SCHEDULER_run"
#12 0x00007f74fc7d9418 in GNUNET_SERVICE_run (argc=<optimized out>, 
argv=<optimized out>, service_name=service_name@entry=0x4111c2 "transport", 
    options=options@entry=GNUNET_SERVICE_OPTION_NONE, task=task@entry=0x403f80 
<run>, task_cls=task_cls@entry=0x0) at service.c:1780
        err = 0
        cfg_fn = 0x170bf40 "/etc/gnunet.conf"
        loglev = 0x0
        logfile = 0x0
        do_daemonize = 0
        i = <optimized out>
        skew_offset = 140140439722003
        skew_variance = 0
        clock_offset = <optimized out>
        sctx = {cfg = 0x170bf60, server = 0x170c6a0, addrs = 0x0, service_name 
= 0x4111c2 "transport", task = 0x403f80 <run>, task_cls = 0x0, v4_denied = 0x0, 
v6_denied = 0x0, 
          v4_allowed = 0x171c660, v6_allowed = 0x1715aa0, my_handlers = 
0x171c7c0, addrlens = 0x0, lsocks = 0x171c600, shutdown_task = 4, timeout = 
{rel_value = 18446744073709551615}, 
          ret = 1, ready_confirm_fd = -1, require_found = 1, match_uid = 1, 
match_gid = 1, options = GNUNET_SERVICE_OPTION_NONE}
        cfg = 0x170bf60
        service_options = {{shortName = 99 'c', name = 0x7f74fc7dfb67 "config", 
argumentHelp = 0x7f74fc7dfb6e "FILENAME", 
            description = 0x7f74fc7dfc18 "use configuration file FILENAME", 
require_argument = 1, processor = 0x7f74fc7c30b0 <GNUNET_GETOPT_set_string>, 
scls = 0x7ffff60dad40}, {
            shortName = 100 'd', name = 0x7f74fc7e09e0 "daemonize", 
argumentHelp = 0x0, description = 0x7f74fc7e0d90 "do daemonize (detach from 
terminal)", require_argument = 0, 
            processor = 0x7f74fc7c30a0 <GNUNET_GETOPT_set_one>, scls = 
0x7ffff60dad2c}, {shortName = 104 'h', name = 0x7f74fc7dfb82 "help", 
argumentHelp = 0x0, 
            description = 0x7f74fc7dfb77 "print this help", require_argument = 
0, processor = 0x7f74fc7c2d30 <GNUNET_GETOPT_format_help_>, scls = 0x0}, 
{shortName = 76 'L', 
            name = 0x7f74fc7dfb87 "log", argumentHelp = 0x7f74fc7dfb8b 
"LOGLEVEL", description = 0x7f74fc7dfc38 "configure logging to use LOGLEVEL", 
require_argument = 1, 
            processor = 0x7f74fc7c30b0 <GNUNET_GETOPT_set_string>, scls = 
0x7ffff60dad48}, {shortName = 108 'l', name = 0x7f74fc7dfb94 "logfile", 
            argumentHelp = 0x7f74fc7dd25e "LOGFILE", description = 
0x7f74fc7dfc60 "configure logging to write logs to LOGFILE", require_argument = 
1, 
            processor = 0x7f74fc7c30b0 <GNUNET_GETOPT_set_string>, scls = 
0x7ffff60dad50}, {shortName = 118 'v', name = 0x7f74fc7dfb9c "version", 
argumentHelp = 0x0, 
            description = 0x7f74fc7dfba4 "print the version number", 
require_argument = 0, processor = 0x7f74fc7c2d00 
<GNUNET_GETOPT_print_version_>, scls = 0x7f74fc7dfbbd}, {
            shortName = 0 '\000', name = 0x0, argumentHelp = 0x0, description = 
0x0, require_argument = 0, processor = 0, scls = 0x0}}
        __FUNCTION__ = "GNUNET_SERVICE_run"
#13 0x0000000000403319 in main (argc=<optimized out>, argv=<optimized out>) at 
gnunet-service-transport.c:646
No locals.
(gdb) detach
Detaching from program: /usr/bin/gnunet-service-transport, process 20909

The relevant transport configuration is:

[transport]
PLUGINS=tcp udp http
[transport-udp]
BROADCAST=no
[nat]
BEHIND_NAT = NO
DISABLEV6 = YES
ENABLE_ICMP_CLIENT = YES

To check whether your system might be affected by this bug, run gnunet
for some time (a day or more) and check the process start time of
gnunet-service-arm versus the one of gnunet-service-transport. Only if
they differ significantly, this issue applies.

Given that upstream has pushed out a number of bug fix releases, the
issue might just disappear with 0.9.5a. Even 0.9.4 fixes a number of
crashes in the transport service:
https://gnunet.org/bugs/view.php?id=2433
https://gnunet.org/bugs/view.php?id=2462
https://gnunet.org/bugs/view.php?id=2463

Helmut


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to