From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.lisp.guile.user Subject: Re: guile 2.0.9 build on mingw Date: Sun, 09 Jun 2013 20:10:38 +0300 Message-ID: <83wqq3mcq9.fsf@gnu.org> References: <83sj1hv2ml.fsf@gnu.org> <874ndx9y7h.fsf@pobox.com> <83ip2bt4qk.fsf@gnu.org> <8761xqhyyt.fsf@gnu.org> <83li6mt18y.fsf@gnu.org> Reply-To: Eli Zaretskii NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: QUOTED-PRINTABLE X-Trace: ger.gmane.org 1370797993 10617 80.91.229.3 (9 Jun 2013 17:13:13 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 9 Jun 2013 17:13:13 +0000 (UTC) Cc: guile-user@gnu.org To: ludo@gnu.org Original-X-From: guile-user-bounces+guile-user=m.gmane.org@gnu.org Sun Jun 09 19:13:14 2013 Return-path: Envelope-to: guile-user@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1UljB3-0000Ic-FH for guile-user@m.gmane.org; Sun, 09 Jun 2013 19:13:13 +0200 Original-Received: from localhost ([::1]:33115 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UljB3-0006rd-0O for guile-user@m.gmane.org; Sun, 09 Jun 2013 13:13:13 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:36286) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UljAu-0006rN-Jy for guile-user@gnu.org; Sun, 09 Jun 2013 13:13:06 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UljAs-0003dP-CH for guile-user@gnu.org; Sun, 09 Jun 2013 13:13:04 -0400 Original-Received: from mtaout22.012.net.il ([80.179.55.172]:52209) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ulj8i-0002rI-8O; Sun, 09 Jun 2013 13:10:48 -0400 Original-Received: from conversion-daemon.a-mtaout22.012.net.il by a-mtaout22.012.net.il (HyperSendmail v2007.08) id <0MO400A00Y6B2S00@a-mtaout22.012.net.il>; Sun, 09 Jun 2013 20:10:39 +0300 (IDT) Original-Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout22.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0MO4009MJYDQSK40@a-mtaout22.012.net.il>; Sun, 09 Jun 2013 20:10:39 +0300 (IDT) In-reply-to: <83li6mt18y.fsf@gnu.org> X-012-Sender: halo1@inter.net.il X-detected-operating-system: by eggs.gnu.org: Solaris 10 X-Received-From: 80.179.55.172 X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane.org@gnu.org Original-Sender: guile-user-bounces+guile-user=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.user:10416 Archived-At: > Date: Fri, 07 Jun 2013 17:59:57 +0300 > From: Eli Zaretskii > Cc: guile-user@gnu.org >=20 > > > What's more, after this backtrace is displayed, guile hangs her= e: > > > > > > void > > > scm_i_close_signal_pipe() > > > { > > > /* SIGNAL_DELIVERY_THREAD_MUTEX is only locked while the= signal delivery > > > =09 thread is being launched. The thread that calls this func= tion is > > > =09 already holding the thread admin mutex, so if the delivery= thread hasn't > > > =09 been launched at this point, it never will be before shutd= own. */ > > > >>>>> scm_i_pthread_mutex_lock (&signal_delivery_thread_mutex)= ; > > > > > > #if SCM_USE_PTHREAD_THREADS > > > if (scm_i_signal_delivery_thread !=3D NULL) > > > =09 close (signal_pipe[1]); > > > #endif > > > > > > scm_i_pthread_mutex_unlock (&signal_delivery_thread_mute= x); > > > } > >=20 > > Can you run =E2=80=98thread apply all bt=E2=80=99 in gdb once it= =E2=80=99s hang, and send the > > tip of the C backtraces for all the threads? >=20 > I'll try. There's only one thread at this point, its backtrace is below. Actually, I don't see more than this one thread during the entire run (GDB doesn't announce any thread birth or death, and Process Explorer shows a single thread in the process at all times). Note that we are talking about a child guile process -- it's that one that prints the weird traceback and hangs. The parent just waits for the child to finish. Here's the backtrace with some context info: GNU gdb (GDB) 7.6 Copyright (C) 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute i= t. There is NO WARRANTY, to the extent permitted by law. Type "sho= w copying" and "show warranty" for details. This GDB was configured as "i686-pc-mingw32". For bug reporting instructions, please see: . Attaching to process 5864 [New Thread 5864.0x15cc] [New Thread 5864.0x1dc4] Reading symbols from d:\usr\eli\utils\guile-2.0.9\libguile\.libs= \guile.exe...done. (gdb) info threads Id Target Id Frame * 2 Thread 5864.0x1dc4 0x77c4000d in ntdll!DbgBreakPoint () =09from C:\Windows\SysWOW64\ntdll.dll 1 Thread 5864.0x15cc vm_regular_engine (vm=3D0xf65c80, prog= ram=3D0xfa0f98, =09 argv=3D0x0, nargs=3D0) at vm-i-system.c:779 (gdb) bre break break-range (gdb) break scmsi scmsigs.c scmsigs.x (gdb) break scmsigs.c:662 Breakpoint 1 at 0x43671b: file scmsigs.c, line 662. (gdb) c Continuing. [Thread 5864.0x1dc4 exited with code 0] [Switching to Thread 5864.0x15cc] Breakpoint 1, scm_i_close_signal_pipe () at scmsigs.c:662 662 scm_i_pthread_mutex_lock (&signal_delivery_thread_mute= x); (gdb) bt #0 scm_i_close_signal_pipe () at scmsigs.c:662 #1 0x00431ee9 in on_thread_exit (v=3D0xef0f00) at threads.c:777 #2 0x62481f14 in ptw32_callUserDestroyRoutines () =09from d:\usr\bin\pthreadGC2.dll #3 0x624855a1 in pthread_win32_thread_detach_np () =09from d:\usr\bin\pthreadGC2.dll #4 0x62485a45 in DllMain@12 () from d:\usr\bin\pthreadGC2.dll #5 0x624810ed in DllMainCRTStartup@12 () from d:\usr\bin\pthrea= dGC2.dll #6 0x77c69950 in ntdll!RtlQueryEnvironmentVariable () =09from C:\Windows\SysWOW64\ntdll.dll #7 0x62480000 in ?? () #8 0x77c7d6b2 in ntdll!LdrShutdownProcess () =09from C:\Windows\SysWOW64\ntdll.dll #9 0x624810c0 in __dll_exit () from d:\usr\bin\pthreadGC2.dll #10 0x77c7d554 in ntdll!RtlExitUserProcess () =09from C:\Windows\SysWOW64\ntdll.dll #11 0x75e97a0d in KERNEL32!ExitProcess () =09from C:\Windows\syswow64\kernel32.dll #12 0x00000000 in ?? () (gdb) info threads Id Target Id Frame * 1 Thread 5864.0x15cc scm_i_close_signal_pipe () at scmsigs.= c:662