View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0005267 | GNUnet | util library | public | 2018-01-30 20:41 | 2024-02-29 22:49 |
Reporter | amz3 | Assigned To | Christian Grothoff | ||
Priority | normal | Severity | crash | Reproducibility | always |
Status | closed | Resolution | no change required | ||
Platform | GNU/Linux | OS | Ubuntu/Guix | OS Version | 17.10 |
Product Version | Git master | ||||
Target Version | 0.11.0pre66 | Fixed in Version | 0.10.0 | ||
Summary | 0005267: gnunet-guile crash when running two schedulers at the same time | ||||
Description | I start two scheduler in different threads at the same time using gnunet-guile bindings and the program crash. I can't get the debug symbols loaded, but the crash happens in GNUNET_SCHEDULER_run_with_driver: (gdb) bt #0 0x00007ffff5f382c4 in raise () from /gnu/store/3h31zsqxjjg52da5gp3qmhkh4x8klhah-glibc-2.25/lib/libc.so.6 #1 0x00007ffff5f3972a in abort () from /gnu/store/3h31zsqxjjg52da5gp3qmhkh4x8klhah-glibc-2.25/lib/libc.so.6 #2 0x00007fffef59416c in GNUNET_abort_ () from /gnu/store/1w659bm7fd6dsgqi5yida9vhnzyw285q-gnunet-git-0.10.1-2.a882bcf/lib/libgnunetutil.so.13 #3 0x00007fffef5d41cc in GNUNET_SCHEDULER_run_with_driver () from /gnu/store/1w659bm7fd6dsgqi5yida9vhnzyw285q-gnunet-git-0.10.1-2.a882bcf/lib/libgnunetutil.so.13 #4 0x00007fffef5cf1fb in GNUNET_SCHEDULER_run () from /gnu/store/1w659bm7fd6dsgqi5yida9vhnzyw285q-gnunet-git-0.10.1-2.a882bcf/lib/libgnunetutil.so.13 #5 0x00007ffff741b0c0 in ffi_call_unix64 () from /gnu/store/kvi64k387hqdrn59gsgd09brxh65jxjj-libffi-3.2.1/lib/libffi.so.6 #6 0x00007ffff7419ee1 in ffi_call () from /gnu/store/kvi64k387hqdrn59gsgd09brxh65jxjj-libffi-3.2.1/lib/libffi.so.6 #7 0x00007ffff7b0523d in scm_i_foreign_call () from /gnu/store/gwspk20b7fbrs4l5rzgaadf8896h12bq-guile-2.2.3/lib/libguile-2.2.so.1 Mind the a882bcf in libgnunetutil.so filepath, which means I am using gnunet git @ a882bcf1635612a5d65d7a2fd402acd0bf9355ff. | ||||
Steps To Reproduce | 1) git clone git@gnunet.org:gnunet-guile2.git gnunet-guile 2) cd gnunet-guile 3) guix package -f guix.scm 4) guix package -i guile@2.2.3 5) ./bootstrap && ./configure && make 6) gdb guile 7) in Guile REPL type: (load "test-two-scheduler.scm") | ||||
Tags | No tags attached. | ||||
Attached Files | |||||
|
I got the debug symbols now. It crash at the very beginning of GNUNET_SCHEDULER_run_with_driver: /* general set-up */ GNUNET_assert (NULL == active_task); GNUNET_assert (NULL == shutdown_pipe_handle); The last line is the line of the crash. |
|
#0 0x00007ffff5f382c4 in raise () from /gnu/store/3h31zsqxjjg52da5gp3qmhkh4x8klhah-glibc-2.25/lib/libc.so.6 No symbol table info available. #1 0x00007ffff5f3972a in abort () from /gnu/store/3h31zsqxjjg52da5gp3qmhkh4x8klhah-glibc-2.25/lib/libc.so.6 No symbol table info available. #2 0x00007fffef59416c in GNUNET_abort_ () at common_logging.c:284 No locals. #3 0x00007fffef5d3e96 in GNUNET_SCHEDULER_run_with_driver (driver=0x7fffd800cd00, task=0x7ffff7e07128, task_cls=0x0) at scheduler.c:2095 ret = 0 shc_int = 0x0 shc_term = 0x7fffd800cd00 shc_quit = 0x7ffff7a7ca00 <GC_collecting> shc_hup = 0x7fffd8000980 shc_pipe = 0x54 tsk = {next = 0x7ffff741b6ac, prev = 0x7ffff5f80124 <malloc+84>, callback = 0xec9b83d0, callback_cls = 0xb15030, fds = 0x7fffec9b83c0, fdx = { fd = 0x7fffef593489 <GNUNET_xmalloc_unchecked_+70>, fh = 0x1000, et = GNUNET_SCHEDULER_ET_IN, sock = 2385}, fds_len = 4015945408, own_handles = 32767, timeout = {abs_value_us = 40}, reason = (unknown: 4015927104), priority = 32767, read_fd = -671036160, write_fd = 32767, lifeness = -325352416, on_shutdown = 32767, in_ready_list = -279368192} pr = 0x7fffec9b8440 __FUNCTION__ = "GNUNET_SCHEDULER_run_with_driver" #4 0x00007fffef5cf1fb in GNUNET_SCHEDULER_run (task=0x7ffff7e07128, task_cls=0x0) at scheduler.c:688 driver = 0x7fffd800cd00 context = {scheduled_head = 0x0, scheduled_tail = 0x0, timeout = { abs_value_us = 18446744073709551615}} #5 0x00007ffff741b0c0 in ffi_call_unix64 () from /gnu/store/kvi64k387hqdrn59gsgd09brxh65jxjj-libffi-3.2.1/lib/libffi.so.6 No symbol table info available. #6 0x00007ffff7419ee1 in ffi_call () from /gnu/store/kvi64k387hqdrn59gsgd09brxh65jxjj-libffi-3.2.1/lib/libffi.so.6 No symbol table info available. #7 0x00007ffff7b0523d in scm_i_foreign_call () from /gnu/store/gwspk20b7fbrs4l5rzgaadf8896h12bq-guile-2.2.3/lib/libguile-2.2.so.1 No symbol table info available. #8 0x00007ffff7b6867f in vm_debug_engine () from /gnu/store/gwspk20b7fbrs4l5rzgaadf8896h12bq-guile-2.2.3/lib/libguile-2.2.so.1 No symbol table info available. #9 0x00007ffff7b757ba in scm_call_n () from /gnu/store/gwspk20b7fbrs4l5rzgaadf8896h12bq-guile-2.2.3/lib/libguile-2.2.so.1 No symbol table info available. #10 0x00007ffff7ae9f08 in scm_call_with_unblocked_asyncs () from /gnu/store/gwspk20b7fbrs4l5rzgaadf8896h12bq-guile-2.2.3/lib/libguile-2.2.so.1 |
|
Ok, simple answer: don't use threads. We've "outlawed" them since 0.10 to eliminate a multitude of data races and deadlock issues. |
|
Closing, as not a bug but by design. |
Date Modified | Username | Field | Change |
---|---|---|---|
2018-01-30 20:41 | amz3 | New Issue | |
2018-01-30 20:41 | amz3 | File Added: core.4660.gz | |
2018-01-30 20:41 | amz3 | Tag Attached: guile | |
2018-01-30 20:51 | amz3 | Note Added: 0012841 | |
2018-01-30 20:55 | amz3 | Note Added: 0012842 | |
2018-01-30 21:11 | Christian Grothoff | Note Added: 0012843 | |
2018-01-30 21:12 | Christian Grothoff | Assigned To | => Christian Grothoff |
2018-01-30 21:12 | Christian Grothoff | Status | new => closed |
2018-01-30 21:12 | Christian Grothoff | Resolution | open => no change required |
2018-01-30 21:12 | Christian Grothoff | Fixed in Version | => 0.10.0 |
2018-01-30 21:12 | Christian Grothoff | Target Version | => 0.11.0pre66 |
2018-01-30 21:12 | Christian Grothoff | Steps to Reproduce Updated | |
2018-01-30 21:12 | Christian Grothoff | Note Added: 0012844 | |
2024-02-29 22:49 | Christian Grothoff | Tag Detached: guile |