View Issue Details

IDProjectCategoryView StatusLast Update
0005267GNUnetutil librarypublic2024-02-29 22:49
Reporteramz3 Assigned ToChristian Grothoff  
PrioritynormalSeveritycrashReproducibilityalways
Status closedResolutionno change required 
PlatformGNU/LinuxOSUbuntu/GuixOS Version17.10
Product VersionGit master 
Target Version0.11.0pre66Fixed in Version0.10.0 
Summary0005267: gnunet-guile crash when running two schedulers at the same time
DescriptionI 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")
    
TagsNo tags attached.
Attached Files
core.4660.gz (2,812,990 bytes)

Activities

amz3

2018-01-30 20:51

reporter   ~0012841

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.

amz3

2018-01-30 20:55

reporter   ~0012842

#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

Christian Grothoff

2018-01-30 21:11

manager   ~0012843

Ok, simple answer: don't use threads. We've "outlawed" them since 0.10 to eliminate a multitude of data races and deadlock issues.

Christian Grothoff

2018-01-30 21:12

manager   ~0012844

Closing, as not a bug but by design.

Issue History

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