View Issue Details

IDProjectCategoryView StatusLast Update
0002568GNUnettestbed servicepublic2012-11-05 18:33
ReporterBart Polot Assigned ToSree Harsha Totakura  
PriorityhighSeveritycrashReproducibilityalways
Status closedResolutionfixed 
Product VersionGit master 
Target Version0.9.4Fixed in Version0.9.4 
Summary0002568: Testbed service crashes on peer create
Description[bart@saturn ~/g/src/regex]$ gdb --core core.13512 ../testbed/.libs/gnunet-service-testbed
GNU gdb (GDB) 7.5
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-unknown-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/bart/svn/gnunet/src/testbed/.libs/gnunet-service-testbed...done.

warning: core file may not match specified executable file.
[New LWP 13512]

warning: Could not load shared library symbols for linux-vdso.so.1.
Do you need "set solib-search-path" or "set sysroot"?
Core was generated by `gnunet-service-testbed -c /tmp/testbed-helperP3GIY9/0/config'.
Program terminated with signal 11, Segmentation fault.
#0 0x00007fbcb5b89376 in GNUNET_TESTBED_queue_message_ (controller=0x0, msg=0xf193c0) at testbed_api.c:889
889 GNUNET_CONTAINER_DLL_insert_tail (controller->mq_head, controller->mq_tail,
(gdb) bt
#0 0x00007fbcb5b89376 in GNUNET_TESTBED_queue_message_ (controller=0x0, msg=0xf193c0) at testbed_api.c:889
#1 0x00007fbcb5b89672 in GNUNET_TESTBED_forward_operation_msg_ (controller=0x0, operation_id=2, msg=0x7fff563a9a08,
    cc=0x406617 <peer_create_success_cb>, cc_cls=0xf19330) at testbed_api.c:937
#2 0x000000000040707d in handle_peer_create (cls=0x0, client=0xef13f0, message=0x7fff563a9a08)
    at gnunet-service-testbed.c:1741
#3 0x00007fbcb65ff61b in GNUNET_SERVER_inject (server=0xef1120, sender=0xef13f0, message=0x7fff563a9a08) at server.c:924
#4 0x00007fbcb6600263 in client_message_tokenizer_callback (cls=0xef1120, client=0xef13f0, message=0x7fff563a9a08)
    at server.c:1141
#5 0x00007fbcb6602557 in GNUNET_SERVER_mst_receive (mst=0xef1490, client_identity=0xef13f0,
    buf=0x7fff563a9a08 "\vE", <incomplete sequence \321>, size=2885, purge=0, one_shot=-1) at server_mst.c:265
#6 0x00007fbcb65ffe71 in process_incoming (cls=0xef13f0, buf=0x7fff563a9a08, available=2885, addr=0xef12e0, addrlen=2,
    errCode=0) at server.c:1072
#7 0x00007fbcb65d30ee in receive_ready (cls=0xef1300, tc=0x7fff563b9aa0) at connection.c:1055
#8 0x00007fbcb65fbaa5 in run_ready (rs=0xef0260, ws=0xef02f0) at scheduler.c:602
#9 0x00007fbcb65fc276 in GNUNET_SCHEDULER_run (task=0x7fbcb6608f10 <service_task>, task_cls=0x7fff563b9e50)
    at scheduler.c:790
#10 0x00007fbcb660a94c in GNUNET_SERVICE_run (argc=3, argv=0x7fff563ba0b8, service_name=0x40aa04 "testbed",
    options=GNUNET_SERVICE_OPTION_NONE, task=0x40a6a6 <testbed_run>, task_cls=0x0) at service.c:1804
#11 0x000000000040a7b9 in main (argc=3, argv=0x7fff563ba0b8) at gnunet-service-testbed.c:2793
(gdb)
Additional Information(gdb) bt full
#0 0x00007fbcb5b89376 in GNUNET_TESTBED_queue_message_ (controller=0x0, msg=0xf193c0) at testbed_api.c:889
        mq_entry = 0xf19310
        type = 465
        size = 2885
        __FUNCTION__ = "GNUNET_TESTBED_queue_message_"
#1 0x00007fbcb5b89672 in GNUNET_TESTBED_forward_operation_msg_ (controller=0x0, operation_id=2, msg=0x7fff563a9a08,
    cc=0x406617 <peer_create_success_cb>, cc_cls=0xf19330) at testbed_api.c:937
        opc = 0xf18f30
        data = 0xf190c0
        dup_msg = 0xf193c0
        msize = 2885
        __FUNCTION__ = "GNUNET_TESTBED_forward_operation_msg_"
#2 0x000000000040707d in handle_peer_create (cls=0x0, client=0xef13f0, message=0x7fff563a9a08)
    at gnunet-service-testbed.c:1741
        msg = 0x7fff563a9a08
        reply = 0x464563ff9f5
        cfg = 0x7fff563a97e0
        fo_ctxt = 0xf19330
        route = 0xef7e20
        peer = 0x0
        config = 0x7fbcb65fcffd <GNUNET_SCHEDULER_add_delayed+45> "\311\303UH\211\345H\203\354\020H\211}\370H\211u\360\350\234w\374\377H\213U\360H\213M\370H\211\316H\211\307\350\311\177\374\377\311\303UH\211\345H\203\354\060\211}\354H\211u\340H\211U\330\350ow\374\377H\213M\330H\213U\340I\211\311I\211"
        dest_size = 140448490320278
        ret = 32767
        config_size = 0
        host_id = 1
        peer_id = 0
        msize = 2885
        __FUNCTION__ = "handle_peer_create"
#3 0x00007fbcb65ff61b in GNUNET_SERVER_inject (server=0xef1120, sender=0xef13f0, message=0x7fff563a9a08) at server.c:924
        pos = 0xef1220
        mh = 0x40b160 <message_handlers.12138+96>
        i = 4
        type = 465
        size = 2885
        found = 0
        __FUNCTION__ = "GNUNET_SERVER_inject"
#4 0x00007fbcb6600263 in client_message_tokenizer_callback (cls=0xef1120, client=0xef13f0, message=0x7fff563a9a08)
    at server.c:1141
        server = 0xef1120
        sender = 0xef13f0
        ret = 24
        __FUNCTION__ = "client_message_tokenizer_callback"
#5 0x00007fbcb6602557 in GNUNET_SERVER_mst_receive (mst=0xef1490, client_identity=0xef13f0,
    buf=0x7fff563a9a08 "\vE", <incomplete sequence \321>, size=2885, purge=0, one_shot=-1) at server_mst.c:265
        hdr = 0x7fff563a9a08
        delta = 0
        want = 2885
        ibuf = 0xef1570 "\vD", <incomplete sequence \320>
        need_align = 0
        offset = 140734640069128
        ret = 1
        __FUNCTION__ = "GNUNET_SERVER_mst_receive"
#6 0x00007fbcb65ffe71 in process_incoming (cls=0xef13f0, buf=0x7fff563a9a08, available=2885, addr=0xef12e0, addrlen=2,
    errCode=0) at server.c:1072
        client = 0xef13f0
        server = 0xef1120
        end = {abs_value = 18446744073709551615}
        now = {abs_value = 1348838503165}
        ret = 64
        __FUNCTION__ = "process_incoming"
#7 0x00007fbcb65d30ee in receive_ready (cls=0xef1300, tc=0x7fff563b9aa0) at connection.c:1055
        connection = 0xef1300
        buffer = 0x7fff563a9a08 "\vE", <incomplete sequence \321>
        ret = 2885
        receiver = 0x7fbcb65ffa8d <process_incoming>
        __FUNCTION__ = "receive_ready"
#8 0x00007fbcb65fbaa5 in run_ready (rs=0xef0260, ws=0xef02f0) at scheduler.c:602
        p = GNUNET_SCHEDULER_PRIORITY_DEFAULT
        pos = 0xf03bd0
        tc = {reason = (GNUNET_SCHEDULER_REASON_READ_READY | GNUNET_SCHEDULER_REASON_PREREQ_DONE), read_ready = 0xef0260,
          write_ready = 0xef02f0}
        __FUNCTION__ = "run_ready"
#9 0x00007fbcb65fc276 in GNUNET_SCHEDULER_run (task=0x7fbcb6608f10 <service_task>, task_cls=0x7fff563b9e50)
    at scheduler.c:790
---Type <return> to continue, or q <return> to quit---
        rs = 0xef0260
        ws = 0xef02f0
        timeout = {rel_value = 1}
        ret = 1
        shc_int = 0xef0380
        shc_term = 0xef0430
        shc_quit = 0xef0590
        shc_hup = 0xef0640
        shc_pipe = 0xef04e0
        last_tr = 13
        busy_wait_warning = 0
        pr = 0xef0210
        c = 0 '\000'
        __FUNCTION__ = "GNUNET_SCHEDULER_run"
#10 0x00007fbcb660a94c in GNUNET_SERVICE_run (argc=3, argv=0x7fff563ba0b8, service_name=0x40aa04 "testbed",
    options=GNUNET_SERVICE_OPTION_NONE, task=0x40a6a6 <testbed_run>, task_cls=0x0) at service.c:1804
        err = 0
        ret = 3
        cfg_fn = 0xeee090 "/tmp/testbed-helperP3GIY9/0/config"
        loglev = 0x0
        logfile = 0x0
        do_daemonize = 0
        i = 4236966
        skew_offset = 0
        skew_variance = 140448494801264
        clock_offset = 0
        sctx = {cfg = 0xeedf60, server = 0xef1120, addrs = 0xeefcd0, service_name = 0x40aa04 "testbed",
          task = 0x40a6a6 <testbed_run>, task_cls = 0x0, v4_denied = 0x0, v6_denied = 0x0, v4_allowed = 0xef0220,
          v6_allowed = 0xef9510, my_handlers = 0xef0140, addrlens = 0xef81d0, lsocks = 0x0, shutdown_task = 5, 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 = 0xeedf60
        service_options = {{shortName = 99 'c', name = 0x7fbcb6615845 "config", argumentHelp = 0x7fbcb661584c "FILENAME",
            description = 0x7fbcb6615858 "use configuration file FILENAME", require_argument = 1,
            processor = 0x7fbcb65eb8a7 <GNUNET_GETOPT_set_string>, scls = 0x7fff563b9f10}, {shortName = 100 'd',
            name = 0x7fbcb6615878 "daemonize", argumentHelp = 0x0,
            description = 0x7fbcb6615888 "do daemonize (detach from terminal)", require_argument = 0,
            processor = 0x7fbcb65eb87a <GNUNET_GETOPT_set_one>, scls = 0x7fff563b9efc}, {shortName = 104 'h',
            name = 0x7fbcb66158ac "help", argumentHelp = 0x0, description = 0x7fbcb66158b1 "print this help",
            require_argument = 0, processor = 0x7fbcb65eb33a <GNUNET_GETOPT_format_help_>, scls = 0x0}, {
            shortName = 76 'L', name = 0x7fbcb66158c1 "log", argumentHelp = 0x7fbcb66158c5 "LOGLEVEL",
            description = 0x7fbcb66158d0 "configure logging to use LOGLEVEL", require_argument = 1,
            processor = 0x7fbcb65eb8a7 <GNUNET_GETOPT_set_string>, scls = 0x7fff563b9f08}, {shortName = 108 'l',
            name = 0x7fbcb66158f2 "logfile", argumentHelp = 0x7fbcb66158fa "LOGFILE",
            description = 0x7fbcb6615908 "configure logging to write logs to LOGFILE", require_argument = 1,
            processor = 0x7fbcb65eb8a7 <GNUNET_GETOPT_set_string>, scls = 0x7fff563b9f00}, {shortName = 118 'v',
            name = 0x7fbcb6615933 "version", argumentHelp = 0x0, description = 0x7fbcb661593b "print the version number",
            require_argument = 0, processor = 0x7fbcb65eb2f4 <GNUNET_GETOPT_print_version_>, scls = 0x7fbcb6615954}, {
            shortName = 0 '\000', name = 0x0, argumentHelp = 0x0, description = 0x0, require_argument = 0,
            processor = 0x0, scls = 0x0}}
        __FUNCTION__ = "GNUNET_SERVICE_run"
#11 0x000000000040a7b9 in main (argc=3, argv=0x7fff563ba0b8) at gnunet-service-testbed.c:2793
No locals.
TagsNo tags attached.

Activities

Sree Harsha Totakura

2012-09-29 08:50

updater   ~0006384

This bug happens when peers are started on slave controllers too quickly (without waiting for the GNUNET_TESTBED_controller_link() operation to finish)

I believe this is fixed in SVN 24125 by making the service not accept any requests until the controller_link operation is successful. One downside is that we may lose parallelism here. However, since controller links are established during the beginning of tests in most scenarios, I *hope* this is still okay.

Sree Harsha Totakura

2012-11-05 13:58

updater   ~0006520

marking bug as fixed as Bart didn't experience this again.

Issue History

Date Modified Username Field Change
2012-09-28 15:28 Bart Polot New Issue
2012-09-28 15:28 Bart Polot Status new => assigned
2012-09-28 15:28 Bart Polot Assigned To => Sree Harsha Totakura
2012-09-29 08:50 Sree Harsha Totakura Note Added: 0006384
2012-09-29 08:50 Sree Harsha Totakura Status assigned => feedback
2012-11-04 22:36 Christian Grothoff Target Version => 0.9.4
2012-11-05 13:58 Sree Harsha Totakura Note Added: 0006520
2012-11-05 13:58 Sree Harsha Totakura Status feedback => resolved
2012-11-05 13:58 Sree Harsha Totakura Fixed in Version => 0.9.4
2012-11-05 13:58 Sree Harsha Totakura Resolution open => fixed
2012-11-05 18:33 Christian Grothoff Status resolved => closed