View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002869 | GNUnet | transport service | public | 2013-04-22 13:30 | 2024-05-03 13:59 |
Reporter | Bart Polot | Assigned To | Christian Grothoff | ||
Priority | normal | Severity | minor | Reproducibility | random |
Status | closed | Resolution | fixed | ||
Product Version | Git master | ||||
Target Version | 0.10.0 | Fixed in Version | 0.10.0 | ||
Summary | 0002869: Transport crashes with testbed. | ||||
Description | Sometimes (at random) there are a lot of transport crashes when running testbed (regex profiler). When it happens it always makes many services crash at once: [bart@saturn ~/g/src/regex/experiments]$ ls core* | wc 39 39 1599 [bart@saturn ~/g/src/regex/experiments]$ gdb --core core.21320.gnunet-service-.11.1366629669 /tmp/bartgnunet/lib/gnunet/libexec/gnunet-service-transport GNU gdb (GDB) 7.5.1 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 /tmp/bartgnunet/lib/gnunet/libexec/gnunet-service-transport...done. warning: core file may not match specified executable file. [New LWP 21320] warning: Could not load shared library symbols for linux-vdso.so.1. Do you need "set solib-search-path" or "set sysroot"? warning: no loadable sections found in added symbol-file system-supplied DSO at 0x7fffaf8c4000 Core was generated by `/tmp/bartgnunet/lib/gnunet/libexec/gnunet-service-transport -c /tmp/testbedW2ip'. Program terminated with signal 11, Segmentation fault. #0 0x00007f3e38312c87 in ?? () (gdb) bt #0 0x00007f3e38312c87 in ?? () #1 0x00007f3e39a0ccd3 in run_ready (rs=0x19872c0, ws=0x1987350) at scheduler.c:597 #2 0x00007f3e39a0d523 in GNUNET_SCHEDULER_run (task=0x7f3e39a1a895 <service_task>, task_cls=0x7fffaf8365d0) at scheduler.c:786 #3 0x00007f3e39a1c3b8 in GNUNET_SERVICE_run (argc=3, argv=0x7fffaf836838, service_name=0x41aa52 "transport", options=GNUNET_SERVICE_OPTION_NONE, task=0x4052ea <run>, task_cls=0x0) at service.c:1816 #4 0x0000000000405508 in main (argc=3, argv=0x7fffaf836838) at gnunet-service-transport.c:775 (gdb) | ||||
Additional Information | (gdb) bt full #0 0x00007f3e38312c87 in ?? () No symbol table info available. #1 0x00007f3e39a0ccd3 in run_ready (rs=0x19872c0, ws=0x1987350) at scheduler.c:597 p = GNUNET_SCHEDULER_PRIORITY_SHUTDOWN pos = 0x198d590 tc = {reason = (GNUNET_SCHEDULER_REASON_SHUTDOWN | GNUNET_SCHEDULER_REASON_TIMEOUT), read_ready = 0x19872c0, write_ready = 0x1987350} __FUNCTION__ = "run_ready" #2 0x00007f3e39a0d523 in GNUNET_SCHEDULER_run (task=0x7f3e39a1a895 <service_task>, task_cls=0x7fffaf8365d0) at scheduler.c:786 rs = 0x19872c0 ws = 0x1987350 timeout = {rel_value = 0} ret = 2 shc_int = 0x1988e50 shc_term = 0x1988f00 shc_quit = 0x1989060 shc_hup = 0x1989110 shc_pipe = 0x1988fb0 last_tr = 3 busy_wait_warning = 0 pr = 0x19872a0 c = 0 '\000' __FUNCTION__ = "GNUNET_SCHEDULER_run" #3 0x00007f3e39a1c3b8 in GNUNET_SERVICE_run (argc=3, argv=0x7fffaf836838, service_name=0x41aa52 "transport", options=GNUNET_SERVICE_OPTION_NONE, task=0x4052ea <run>, task_cls=0x0) at service.c:1816 err = 0 ret = 3 cfg_fn = 0x1983250 "/tmp/testbedW2ipgI/34/config" loglev = 0x0 logfile = 0x0 do_daemonize = 0 i = 4215530 skew_offset = 139905244326544 skew_variance = 0 clock_offset = 3 sctx = {cfg = 0x1983120, server = 0x1989470, addrs = 0x0, service_name = 0x41aa52 "transport", task = 0x4052ea <run>, task_cls = 0x0, v4_denied = 0x0, v6_denied = 0x0, v4_allowed = 0x198b850, v6_allowed = 0x198b5d0, my_handlers = 0x1989560, addrlens = 0x0, lsocks = 0x1998ef0, shutdown_task = 0, timeout = {rel_value = 18446744073709551615}, ret = 1, ready_confirm_fd = -1, require_found = 1, match_uid = 0, match_gid = 1, options = GNUNET_SERVICE_OPTION_NONE} cfg = 0x1983120 service_options = {{shortName = 99 'c', name = 0x7f3e39a27be5 "config", argumentHelp = 0x7f3e39a27bec "FILENAME", description = 0x7f3e39a27bf8 "use configuration file FILENAME", require_argument = 1, processor = 0x7f3e399fdefc <GNUNET_GETOPT_set_string>, scls = 0x7fffaf836688}, {shortName = 100 'd', name = 0x7f3e39a27c18 "daemonize", argumentHelp = 0x0, description = 0x7f3e39a27c28 "do daemonize (detach from terminal)", require_argument = 0, processor = 0x7f3e399fdecf <GNUNET_GETOPT_set_one>, scls = 0x7fffaf836674}, {shortName = 104 'h', name = 0x7f3e39a27c4c "help", argumentHelp = 0x0, description = 0x7f3e39a27c51 "print this help", require_argument = 0, processor = 0x7f3e399fd996 <GNUNET_GETOPT_format_help_>, scls = 0x0}, {shortName = 76 'L', name = 0x7f3e39a27c61 "log", argumentHelp = 0x7f3e39a27c65 "LOGLEVEL", description = 0x7f3e39a27c70 "configure logging to use LOGLEVEL", require_argument = 1, processor = 0x7f3e399fdefc <GNUNET_GETOPT_set_string>, scls = 0x7fffaf836680}, {shortName = 108 'l', name = 0x7f3e39a27c92 "logfile", argumentHelp = 0x7f3e39a27c9a "LOGFILE", description = 0x7f3e39a27ca8 "configure logging to write logs to LOGFILE", require_argument = 1, processor = 0x7f3e399fdefc <GNUNET_GETOPT_set_string>, scls = 0x7fffaf836678}, { shortName = 118 'v', name = 0x7f3e39a27cd3 "version", argumentHelp = 0x0, description = 0x7f3e39a27cdb "print the version number", require_argument = 0, processor = 0x7f3e399fd950 <GNUNET_GETOPT_print_version_>, scls = 0x7f3e39a27cf4}, {shortName = 0 '\000', name = 0x0, argumentHelp = 0x0, description = 0x0, require_argument = 0, processor = 0x0, scls = 0x0}} __FUNCTION__ = "GNUNET_SERVICE_run" #4 0x0000000000405508 in main (argc=3, argv=0x7fffaf836838) at gnunet-service-transport.c:775 No locals. (gdb) | ||||
Tags | No tags attached. | ||||
|
Is this during shutdown? Looks to me like it might be a case of scheduler jumping to code of a plugin that has been unloaded... If so, which transport plugin is being used here? |
|
Yes, it is during shutdown. The only plugin enabled is UNIX. |
|
It is probably caused by a task not being cancelled after unloading the unix plugin. |
|
I found a task that was scheduled (to be run 'immediately') on plugin-load but never cancelled on plugin unload; so a very short-lived transport service (or very busy CPU) might have caused this code to crash. Also, did a bunch of documentation work and some re-ordering of calls that might avoid another case (even though there I could not find a path that would be troublesome). Committed as SVN 27023. |
|
Please let me know if this still happens with SVN HEAD. |
Date Modified | Username | Field | Change |
---|---|---|---|
2013-04-22 13:30 | Bart Polot | New Issue | |
2013-04-22 13:30 | Bart Polot | Status | new => assigned |
2013-04-22 13:30 | Bart Polot | Assigned To | => Matthias Wachs |
2013-04-22 15:30 | Christian Grothoff | Note Added: 0007060 | |
2013-04-22 15:31 | Christian Grothoff | Status | assigned => feedback |
2013-04-22 15:33 | Bart Polot | Note Added: 0007061 | |
2013-04-22 15:33 | Bart Polot | Status | feedback => assigned |
2013-05-03 16:29 | Bart Polot | Note Added: 0007076 | |
2013-05-03 16:29 | Bart Polot | Assigned To | Matthias Wachs => Bart Polot |
2013-05-05 14:02 | Christian Grothoff | Note Added: 0007087 | |
2013-05-05 14:03 | Christian Grothoff | Assigned To | Bart Polot => Christian Grothoff |
2013-05-05 14:03 | Christian Grothoff | Category | transport service => UNIX transport |
2013-05-05 14:03 | Christian Grothoff | Target Version | => 0.10.0 |
2013-05-05 14:03 | Christian Grothoff | Note Added: 0007088 | |
2013-05-05 14:03 | Christian Grothoff | Status | assigned => feedback |
2013-05-10 21:28 | Christian Grothoff | Status | feedback => resolved |
2013-05-10 21:28 | Christian Grothoff | Fixed in Version | => 0.10.0 |
2013-05-10 21:28 | Christian Grothoff | Resolution | open => fixed |
2013-12-24 20:55 | Christian Grothoff | Status | resolved => closed |
2024-05-03 13:59 | Christian Grothoff | Category | UNIX transport => transport service |