gnunet-developers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [GNUnet-developers] Deadlock due to `pthread_mutex_lock'.


From: Christian Grothoff
Subject: Re: [GNUnet-developers] Deadlock due to `pthread_mutex_lock'.
Date: Sun, 31 Aug 2008 11:26:36 -0600
User-agent: KMail/1.9.9

Yep, I have an idea. Nobody ever tried to run the code without specifying 
bandwidth limits explicitly (which causes a non-recursive mutex to be 
acquired twice by the same thread => deadlock).  I'm fixing this in SVN, as a 
workaround, specify the UP/DOWN bandwidth limits for gnunetd.

Christian

On Sunday 31 August 2008 10:58:43 am Ludovic Courtès wrote:
> Hello,
>
> When running `gnunetd' (0.8.0b), I get the following error:
>
>   # gnunetd -d --config gnunetd.conf -L DEBUG
>   Aug 31 18:53:23 INFO: Loading transports `udp tcp http nat'
>   Aug 31 18:53:23 INFO: Loaded transport `udp'
>   Aug 31 18:53:23 INFO: Loaded transport `tcp'
>   Aug 31 18:53:23 INFO: Loaded transport `http'
>   Aug 31 18:53:23 INFO: Loaded transport `nat'
>   Aug 31 18:53:23 FATAL: Deadlock due to `pthread_mutex_lock'.
>   Aug 31 18:53:23 FATAL: Internal error: assertion failed at
> statuscalls.c:402. Aborted (core dumped)
>
> Here's a back-trace of each of the 4 threads:
>
>   (gdb) bt
>   #0  0xffffe424 in __kernel_vsyscall ()
>   #1  0xb7c1ec37 in raise () from
> /nix/store/b2gmgy8y6nidjj7n34jx4sanrjdaxrw3-glibc-2.7/lib/libc.so.6 #2 
> 0xb7c20671 in abort () from
> /nix/store/b2gmgy8y6nidjj7n34jx4sanrjdaxrw3-glibc-2.7/lib/libc.so.6 #3 
> 0xb7f41fa5 in GNUNET_mutex_lock_at_file_line_ () from
> /nix/store/8gn0z686l3ajgb60zgngs2w1ip7nqvws-gnunet-0.8.0b/lib/libgnunetutil
>.so.3 #4  0xb7f3f919 in resetStatusCalls () from
> /nix/store/8gn0z686l3ajgb60zgngs2w1ip7nqvws-gnunet-0.8.0b/lib/libgnunetutil
>.so.3 #5  0xb7f23a5a in GNUNET_GC_set_configuration_value_string () from
> /nix/store/8gn0z686l3ajgb60zgngs2w1ip7nqvws-gnunet-0.8.0b/lib/libgnunetutil
>.so.3 #6  0xb7f241b2 in GNUNET_GC_set_configuration_value_number () from
> /nix/store/8gn0z686l3ajgb60zgngs2w1ip7nqvws-gnunet-0.8.0b/lib/libgnunetutil
>.so.3 #7  0xb7f2435d in GNUNET_GC_get_configuration_value_number () from
> /nix/store/8gn0z686l3ajgb60zgngs2w1ip7nqvws-gnunet-0.8.0b/lib/libgnunetutil
>.so.3 #8  0xb7f3fbd0 in resetStatusCalls () from
> /nix/store/8gn0z686l3ajgb60zgngs2w1ip7nqvws-gnunet-0.8.0b/lib/libgnunetutil
>.so.3 #9  0xb7f23a5a in GNUNET_GC_set_configuration_value_string () from
> /nix/store/8gn0z686l3ajgb60zgngs2w1ip7nqvws-gnunet-0.8.0b/lib/libgnunetutil
>.so.3 #10 0xb7f23dfc in GNUNET_GC_get_configuration_value_string () from
> /nix/store/8gn0z686l3ajgb60zgngs2w1ip7nqvws-gnunet-0.8.0b/lib/libgnunetutil
>.so.3 #11 0xb7f3f8db in resetStatusCalls () from
> /nix/store/8gn0z686l3ajgb60zgngs2w1ip7nqvws-gnunet-0.8.0b/lib/libgnunetutil
>.so.3 #12 0xb7f23a5a in GNUNET_GC_set_configuration_value_string () from
> /nix/store/8gn0z686l3ajgb60zgngs2w1ip7nqvws-gnunet-0.8.0b/lib/libgnunetutil
>.so.3 #13 0xb7f241b2 in GNUNET_GC_set_configuration_value_number () from
> /nix/store/8gn0z686l3ajgb60zgngs2w1ip7nqvws-gnunet-0.8.0b/lib/libgnunetutil
>.so.3 #14 0xb7f2435d in GNUNET_GC_get_configuration_value_number () from
> /nix/store/8gn0z686l3ajgb60zgngs2w1ip7nqvws-gnunet-resetStatusCalls () 
fro0.8.0b/lib/libgnunetutil
>.so.3 #15 0xb7f5099e in connectionConfigChangeCallback () from
> /nix/store/8gn0z686l3ajgb60zgngs2w1ip7nqvws-gnunet-0.8.0b/lib/libgnunetcore
>.so.0 #16 0xb7f50d28 in GNUNET_CORE_connection_init () from
> /nix/store/8gn0z686l3ajgb60zgngs2w1ip7nqvws-gnunet-0.8.0b/lib/libgnunetcore
>.so.0 #17 0x0804967f in gnunet_main ()
>   #18 0x08049ae0 in main ()
>   (gdb) info threads
>     4 process 3476  0xffffe424 in __kernel_vsyscall ()
>     3 process 3477  0xffffe424 in __kernel_vsyscall ()
>     2 process 3478  0xffffe424 in __kernel_vsyscall ()
>   * 1 process 3475  0xffffe424 in __kernel_vsyscall ()
>   (gdb) thread 2
>   [Switching to thread 2 (process 3478)]#0  0xffffe424 in __kernel_vsyscall
> () (gdb) bt
>   #0  0xffffe424 in __kernel_vsyscall ()
>   #1  0xb7d3ebb8 in recv () from
> /nix/store/b2gmgy8y6nidjj7n34jx4sanrjdaxrw3-glibc-2.7/lib/libpthread.so.0
> #2  0xb71a650f in gaim_upnp_discover () from
> /nix/store/8gn0z686l3ajgb60zgngs2w1ip7nqvws-gnunet-0.8.0b/lib/GNUnet/libgnu
>netmodule_upnp.so #3  0xb71a4dd4 in discover_thread () from
> /nix/store/8gn0z686l3ajgb60zgngs2w1ip7nqvws-gnunet-0.8.0b/lib/GNUnet/libgnu
>netmodule_upnp.so #4  0xb7d3717b in start_thread () from
> /nix/store/b2gmgy8y6nidjj7n34jx4sanrjdaxrw3-glibc-2.7/lib/libpthread.so.0
> #5  0xb7cbbcfe in clone () from
> /nix/store/b2gmgy8y6nidjj7n34jx4sanrjdaxrw3-glibc-2.7/lib/libc.so.6 (gdb)
> thread 3
>   [Switching to thread 3 (process 3477)]#0  0xffffe424 in __kernel_vsyscall
> () (gdb) bt
>   #0  0xffffe424 in __kernel_vsyscall ()
>   #1  0xb7d3f096 in nanosleep () from
> /nix/store/b2gmgy8y6nidjj7n34jx4sanrjdaxrw3-glibc-2.7/lib/libpthread.so.0
> #2  0xb7f425a1 in GNUNET_thread_sleep () from
> /nix/store/8gn0z686l3ajgb60zgngs2w1ip7nqvws-gnunet-0.8.0b/lib/libgnunetutil
>.so.3 #3  0xb7f27943 in cron_main_method () from
> /nix/store/8gn0z686l3ajgb60zgngs2w1ip7nqvws-gnunet-0.8.0b/lib/libgnunetutil
>.so.3 #4  0xb7d3717b in start_thread () from
> /nix/store/b2gmgy8y6nidjj7n34jx4sanrjdaxrw3-glibc-2.7/lib/libpthread.so.0
> #5  0xb7cbbcfe in clone () from
> /nix/store/b2gmgy8y6nidjj7n34jx4sanrjdaxrw3-glibc-2.7/lib/libc.so.6 (gdb)
> thread 4
>   [Switching to thread 4 (process 3476)]#0  0xffffe424 in __kernel_vsyscall
> () (gdb) bt
>   #0  0xffffe424 in __kernel_vsyscall ()
>   #1  0xb7cb4fd1 in select () from
> /nix/store/b2gmgy8y6nidjj7n34jx4sanrjdaxrw3-glibc-2.7/lib/libc.so.6 #2 
> 0xb7f38cda in selectThread () from
> /nix/store/8gn0z686l3ajgb60zgngs2w1ip7nqvws-gnunet-0.8.0b/lib/libgnunetutil
>.so.3 #3  0xb7d3717b in start_thread () from
> /nix/store/b2gmgy8y6nidjj7n34jx4sanrjdaxrw3-glibc-2.7/lib/libpthread.so.0
> #4  0xb7cbbcfe in clone () from
> /nix/store/b2gmgy8y6nidjj7n34jx4sanrjdaxrw3-glibc-2.7/lib/libc.so.6
>
> The `gnunetd.conf' file reads this:
>
>   [PATHS]
>   GNUNETD_HOME = /var/lib/gnunet
>
>   [GNUNETD]
>   APPLICATIONS = advertising getoption fs stats traffic
>   TRANSPORTS = udp tcp http nat
>
> And `/var/lib/gnunet' is empty.
>
> Any idea what's wrong?
>
> Thanks in advance,
> Ludo'.
>
>
>
> _______________________________________________
> GNUnet-developers mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/gnunet-developers






reply via email to

[Prev in Thread] Current Thread [Next in Thread]