unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: ludo@gnu.org
Cc: guile-user@gnu.org
Subject: Re: guile 2.0.9 build on mingw
Date: Sun, 09 Jun 2013 20:10:38 +0300	[thread overview]
Message-ID: <83wqq3mcq9.fsf@gnu.org> (raw)
In-Reply-To: <83li6mt18y.fsf@gnu.org>

> Date: Fri, 07 Jun 2013 17:59:57 +0300
> From: Eli Zaretskii <eliz@gnu.org>
> Cc: guile-user@gnu.org
> 
> > > What's more, after this backtrace is displayed, guile hangs here:
> > >
> > >      void
> > >      scm_i_close_signal_pipe()
> > >      {
> > >        /* SIGNAL_DELIVERY_THREAD_MUTEX is only locked while the signal delivery
> > > 	  thread is being launched.  The thread that calls this function is
> > > 	  already holding the thread admin mutex, so if the delivery thread hasn't
> > > 	  been launched at this point, it never will be before shutdown.  */
> > >  >>>>> scm_i_pthread_mutex_lock (&signal_delivery_thread_mutex);
> > >
> > >      #if SCM_USE_PTHREAD_THREADS
> > >        if (scm_i_signal_delivery_thread != NULL)
> > > 	 close (signal_pipe[1]);
> > >      #endif
> > >
> > >        scm_i_pthread_mutex_unlock (&signal_delivery_thread_mutex);
> > >      }
> > 
> > Can you run ‘thread apply all bt’ in gdb once it’s hang, and send the
> > tip of the C backtraces for all the threads?
> 
> 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 <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 "i686-pc-mingw32".
     For bug reporting instructions, please see:
     <http://www.gnu.org/software/gdb/bugs/>.
     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 ()
	from C:\Windows\SysWOW64\ntdll.dll
       1    Thread 5864.0x15cc vm_regular_engine (vm=0xf65c80, program=0xfa0f98,
	 argv=0x0, nargs=0) 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_mutex);
     (gdb) bt
     #0  scm_i_close_signal_pipe () at scmsigs.c:662
     #1  0x00431ee9 in on_thread_exit (v=0xef0f00) at threads.c:777
     #2  0x62481f14 in ptw32_callUserDestroyRoutines ()
	from d:\usr\bin\pthreadGC2.dll
     #3  0x624855a1 in pthread_win32_thread_detach_np ()
	from 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\pthreadGC2.dll
     #6  0x77c69950 in ntdll!RtlQueryEnvironmentVariable ()
	from C:\Windows\SysWOW64\ntdll.dll
     #7  0x62480000 in ?? ()
     #8  0x77c7d6b2 in ntdll!LdrShutdownProcess ()
	from C:\Windows\SysWOW64\ntdll.dll
     #9  0x624810c0 in __dll_exit () from d:\usr\bin\pthreadGC2.dll
     #10 0x77c7d554 in ntdll!RtlExitUserProcess ()
	from C:\Windows\SysWOW64\ntdll.dll
     #11 0x75e97a0d in KERNEL32!ExitProcess ()
	from 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




  reply	other threads:[~2013-06-09 17:10 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-20 19:46 guile 2.0.9 build on mingw Panicz Maciej Godek
2013-05-20 20:05 ` Eli Zaretskii
2013-05-20 20:46   ` Andy Wingo
2013-05-20 21:09     ` objc
2013-05-21  2:43       ` Eli Zaretskii
2013-05-22 15:26     ` Eli Zaretskii
2013-06-07  8:37       ` Eli Zaretskii
2013-06-07 12:44       ` Ludovic Courtès
2013-06-07 14:59         ` Eli Zaretskii
2013-06-09 17:10           ` Eli Zaretskii [this message]
2013-06-09 20:33             ` Ludovic Courtès
2013-06-09 21:16               ` Andy Wingo
2013-06-09 21:35                 ` Ludovic Courtès
2013-06-10 16:18                   ` Eli Zaretskii
2013-06-10 16:18                 ` Eli Zaretskii
2013-06-10 16:23               ` Eli Zaretskii
2013-06-10 19:09                 ` Mark H Weaver
2013-06-10 19:49                   ` Eli Zaretskii
2013-06-10 20:54                     ` Mark H Weaver
2013-06-11 16:53                       ` Eli Zaretskii
2013-06-11 22:11                         ` Ludovic Courtès
2013-06-12 17:46                           ` Eli Zaretskii
2013-06-18 21:51                             ` Why launch the Guile signal delivery thread on exit? (was Re: guile 2.0.9 build on mingw) Mark H Weaver
2013-06-19 15:51                               ` Eli Zaretskii
2013-06-19 16:06                               ` Julian Graham
2013-06-19 19:20                               ` Ludovic Courtès
2013-06-12 17:57                         ` guile 2.0.9 build on mingw Eli Zaretskii
2013-06-13 13:26                           ` Eli Zaretskii
2013-06-16 14:19                             ` Ludovic Courtès
2013-06-13 13:33                           ` Eli Zaretskii
2013-06-16 14:36                             ` Ludovic Courtès
2013-06-16 15:40                               ` Eli Zaretskii
2013-06-16 14:55                             ` Ludovic Courtès
2013-06-16 15:47                               ` Eli Zaretskii
2013-06-16 18:59                                 ` Ludovic Courtès
2013-06-13 13:40                           ` Eli Zaretskii
2013-06-16 14:59                             ` Ludovic Courtès
2013-06-17 15:41                               ` Eli Zaretskii
2013-06-18 20:45                                 ` Ludovic Courtès
2013-06-18 22:28                                   ` Mark H Weaver
2013-06-19  3:03                                     ` Eli Zaretskii
2013-06-19 19:26                                     ` Ludovic Courtès
2013-06-19 20:02                                       ` Eli Zaretskii
2013-06-19  2:59                                   ` Eli Zaretskii
2013-06-19 15:56                                   ` Eli Zaretskii
2013-06-19 19:38                                     ` Ludovic Courtès
2013-06-13 13:41                           ` Eli Zaretskii
2013-06-16 15:04                             ` Ludovic Courtès
2013-06-16 15:48                               ` Eli Zaretskii
2013-06-16 14:44                           ` Ludovic Courtès
2013-06-16 15:41                             ` Eli Zaretskii
2013-06-12 17:59                         ` Eli Zaretskii
2013-06-16 14:46                           ` Ludovic Courtès
2013-06-12 18:02                         ` Eli Zaretskii
2013-06-16 19:50                           ` Ludovic Courtès
2013-06-16 20:22                             ` Eli Zaretskii
2013-06-17 15:45                           ` Mark H Weaver
2013-06-18 17:17                             ` Eli Zaretskii
2013-06-18 19:31                               ` Eli Zaretskii
2013-06-18 20:19                                 ` Ludovic Courtès
2013-06-19  2:53                                   ` Eli Zaretskii
2013-06-19 19:28                                     ` Ludovic Courtès
2013-06-19 19:56                                       ` Eli Zaretskii
2013-05-26 20:41     ` Panicz Maciej Godek

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=83wqq3mcq9.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=guile-user@gnu.org \
    --cc=ludo@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).