bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#17753: Cygwin emacs-X11 core dump


From: Markus Hoenicka
Subject: bug#17753: Cygwin emacs-X11 core dump
Date: Mon, 22 Sep 2014 09:14:03 +0200
User-agent: Roundcube Webmail

At 2014-09-17 19:06, Eli Zaretskii was heard to say:
Date: Wed, 17 Sep 2014 11:17:24 -0400
From: Ken Brown <kbrown@cornell.edu>
CC: 17753@debbugs.gnu.org

On 9/17/2014 6:16 AM, Eli Zaretskii wrote:
> Anyway, one thing that strikes me (and is consistent across all your
> reports until now) is that atimer.c functions are run from a separate
> thread, not the main thread (which is Thread 1).  Ken, is this normal
> in the Cygwin-w32 build?

Timer functions in general are run in the main thread.

That's what I'd expect.

I don't think the backtrace of Thread 2 can be trusted.

But if you look at all the backtraces posted in this bug, they all
tell the same story: thread 2 seems to run run_timers.  So before we
decide this is bogus data, I think we should explore the possibility
that GDB really tells the truth here.

You can see the expected timer functions running in the main thread, but I have no idea what's going on in Thread 2. Is run_timers really being
called there, or is that just an artifact of a corrupt stack?

Hard to say.  But note that do_pending_atimers calls block_atimers
before it calls run_timers, and block_atimers calls pthread_sigmask.
Could this do something weird to the threads, like switch to another
thread?

I think I should take this to the Cygwin list, unless you have other
suggestions of things to look at.

Discussing this on the Cygwin list is probably the best place.

Thanks.

Hi again,

please note that I have installed a new test release of Emacs as announced here:

https://cygwin.com/ml/cygwin-announce/2014-09/msg00018.html

This release uses Cygwin's malloc instead of Emacs built-in malloc. I have no idea whether this might affect the kind of bug I have been struggling with for months now. In any case, it crashed again today.

Emacs and package version info:

$ cygcheck -f /usr/bin/emacs-X11
emacs-X11-24.3.93-3

markus.hoenicka@SBHC123 ~
$ emacs -version
GNU Emacs 24.3.93.1


gdb output:

GLib (gthread-posix.c): Unexpected error from C library during 'pthread_mutex_lock': No error. Aborting.

Program received signal SIGABRT, Aborted.
0x000000000042e2a8 in ?? ()
(gdb) info thread
  Id   Target Id         Frame
9 Thread 2900.0x628 0x00000000772712fa in ntdll!ZwWaitForSingleObject ()
   from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
8 Thread 2900.0xa94 0x00000000772712fa in ntdll!ZwWaitForSingleObject ()
   from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
  6    Thread 2900.0xf40 0x00000000772715fa in ntdll!ZwDelayExecution ()
   from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
5 Thread 2900.0xd40 0x00000000772712fa in ntdll!ZwWaitForSingleObject ()
   from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
4 Thread 2900.0xf10 0x000000007727186a in ntdll!ZwWaitForMultipleObjects
    () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
3 Thread 2900.0xe8c 0x000000007727186a in ntdll!ZwWaitForMultipleObjects
    () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
  2    Thread 2900.0xd58 0x000007fefd42940d in RaiseException ()
   from /cygdrive/c/WINDOWS/system32/KERNELBASE.dll
* 1    Thread 2900.0xdac 0x000000000042e2a8 in ?? ()
(gdb) thread apply all bt

Thread 9 (Thread 2900.0x628):
#0  0x00000000772712fa in ntdll!ZwWaitForSingleObject ()
   from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#1  0x000007fefd4210dc in WaitForSingleObjectEx ()
   from /cygdrive/c/WINDOWS/system32/KERNELBASE.dll
#2  0x0000000180045561 in cygthread::stub (
    arg=arg@entry=0x1801d0500 <threads+352>)
    at /usr/src/debug/cygwin-1.7.32-1/winsup/cygwin/cygthread.cc:114
#3  0x000000018004619b in _cygtls::call2 (this=0x443ce00,
func=0x1800454d0 <cygthread::stub(void*)>, arg=0x1801d0500 <threads+352>,
    buf=buf@entry=0x443cd50)
    at /usr/src/debug/cygwin-1.7.32-1/winsup/cygwin/cygtls.cc:100
#4  0x00000001800462f4 in _cygtls::call (func=<optimized out>,
    arg=<optimized out>)
    at /usr/src/debug/cygwin-1.7.32-1/winsup/cygwin/cygtls.cc:30
#5  0x00000000770159ed in KERNEL32!BaseThreadInitThunk ()
   from /cygdrive/c/WINDOWS/system32/kernel32.dll
#6  0x000000007724c541 in ntdll!RtlUserThreadStart ()
   from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#7  0x0000000000000000 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Thread 8 (Thread 2900.0xa94):
#0  0x00000000772712fa in ntdll!ZwWaitForSingleObject ()
   from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#1  0x000007fefd4210dc in WaitForSingleObjectEx ()
   from /cygdrive/c/WINDOWS/system32/KERNELBASE.dll
#2  0x0000000180045561 in cygthread::stub (
    arg=arg@entry=0x1801d04a8 <threads+264>)
    at /usr/src/debug/cygwin-1.7.32-1/winsup/cygwin/cygthread.cc:114
#3  0x000000018004619b in _cygtls::call2 (this=0x403ce00,
func=0x1800454d0 <cygthread::stub(void*)>, arg=0x1801d04a8 <threads+264>,
    buf=buf@entry=0x403cd50)
    at /usr/src/debug/cygwin-1.7.32-1/winsup/cygwin/cygtls.cc:100
#4  0x00000001800462f4 in _cygtls::call (func=<optimized out>,
    arg=<optimized out>)
    at /usr/src/debug/cygwin-1.7.32-1/winsup/cygwin/cygtls.cc:30
#5  0x00000000770159ed in KERNEL32!BaseThreadInitThunk ()
   from /cygdrive/c/WINDOWS/system32/kernel32.dll
#6  0x000000007724c541 in ntdll!RtlUserThreadStart ()
   from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#7  0x0000000000000000 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Thread 6 (Thread 2900.0xf40):
---Type <return> to continue, or q <return> to quit---
#0  0x00000000772715fa in ntdll!ZwDelayExecution ()
   from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#1  0x000007fefd421203 in SleepEx ()
   from /cygdrive/c/WINDOWS/system32/KERNELBASE.dll
#2  0x000000018010d970 in thread_pipe (arg=0x600061fe0)
    at /usr/src/debug/cygwin-1.7.32-1/winsup/cygwin/select.cc:690
#3  0x0000000180044fc5 in cygthread::callfunc (
    this=this@entry=0x1801d03f8 <threads+88>,
    issimplestub=issimplestub@entry=false)
    at /usr/src/debug/cygwin-1.7.32-1/winsup/cygwin/cygthread.cc:51
#4  0x000000018004552a in cygthread::stub (
    arg=arg@entry=0x1801d03f8 <threads+88>)
    at /usr/src/debug/cygwin-1.7.32-1/winsup/cygwin/cygthread.cc:93
#5  0x000000018004619b in _cygtls::call2 (this=0x343ce00,
func=0x1800454d0 <cygthread::stub(void*)>, arg=0x1801d03f8 <threads+88>,
    buf=buf@entry=0x343cd50)
    at /usr/src/debug/cygwin-1.7.32-1/winsup/cygwin/cygtls.cc:100
#6  0x00000001800462f4 in _cygtls::call (func=<optimized out>,
    arg=<optimized out>)
    at /usr/src/debug/cygwin-1.7.32-1/winsup/cygwin/cygtls.cc:30
#7  0x00000000770159ed in KERNEL32!BaseThreadInitThunk ()
   from /cygdrive/c/WINDOWS/system32/kernel32.dll
#8  0x000000007724c541 in ntdll!RtlUserThreadStart ()
   from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#9  0x0000000000000000 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Thread 5 (Thread 2900.0xd40):
#0  0x00000000772712fa in ntdll!ZwWaitForSingleObject ()
   from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#1  0x000007fefd4210dc in WaitForSingleObjectEx ()
   from /cygdrive/c/WINDOWS/system32/KERNELBASE.dll
#2  0x0000000180045561 in cygthread::stub (
    arg=arg@entry=0x1801d0450 <threads+176>)
    at /usr/src/debug/cygwin-1.7.32-1/winsup/cygwin/cygthread.cc:114
#3  0x000000018004619b in _cygtls::call2 (this=0x383ce00,
func=0x1800454d0 <cygthread::stub(void*)>, arg=0x1801d0450 <threads+176>,
    buf=buf@entry=0x383cd50)
    at /usr/src/debug/cygwin-1.7.32-1/winsup/cygwin/cygtls.cc:100
#4  0x00000001800462f4 in _cygtls::call (func=<optimized out>,
    arg=<optimized out>)
    at /usr/src/debug/cygwin-1.7.32-1/winsup/cygwin/cygtls.cc:30
#5  0x00000000770159ed in KERNEL32!BaseThreadInitThunk ()
   from /cygdrive/c/WINDOWS/system32/kernel32.dll
#6  0x000000007724c541 in ntdll!RtlUserThreadStart ()
   from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#7  0x0000000000000000 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Thread 4 (Thread 2900.0xf10):
#0  0x000000007727186a in ntdll!ZwWaitForMultipleObjects ()
   from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#1  0x000007fefd421430 in KERNELBASE!GetCurrentProcess ()
   from /cygdrive/c/WINDOWS/system32/KERNELBASE.dll
#2  0x0000000000000000 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Thread 3 (Thread 2900.0xe8c):
#0  0x000000007727186a in ntdll!ZwWaitForMultipleObjects ()
   from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#1  0x000000007723b037 in ntdll!TpIsTimerSet ()
   from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#2  0x00000000770159ed in KERNEL32!BaseThreadInitThunk ()
   from /cygdrive/c/WINDOWS/system32/kernel32.dll
#3  0x000000007724c541 in ntdll!RtlUserThreadStart ()
   from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#4  0x0000000000000000 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Thread 2 (Thread 2900.0xd58):
#0  0x000007fefd42940d in RaiseException ()
   from /cygdrive/c/WINDOWS/system32/KERNELBASE.dll
#1  0x000007fefd43aa0d in OutputDebugStringA ()
   from /cygdrive/c/WINDOWS/system32/KERNELBASE.dll
#2 0x000000018007119e in _cygtls::signal_debugger (this=this@entry=0x42ce00, si=...) at /usr/src/debug/cygwin-1.7.32-1/winsup/cygwin/exceptions.cc:1505
#3  0x000000018007132e in sigpacket::process (
    this=this@entry=0x1801e3260 <sigq+1056>)
    at /usr/src/debug/cygwin-1.7.32-1/winsup/cygwin/exceptions.cc:1364
#4  0x0000000180119952 in wait_sig ()
    at /usr/src/debug/cygwin-1.7.32-1/winsup/cygwin/sigproc.cc:1320
#5  0x0000000180044fc5 in cygthread::callfunc (
    this=this@entry=0x1801d03a0 <threads>,
    issimplestub=issimplestub@entry=false)
    at /usr/src/debug/cygwin-1.7.32-1/winsup/cygwin/cygthread.cc:51
#6 0x000000018004552a in cygthread::stub (arg=arg@entry=0x1801d03a0 <threads>)
    at /usr/src/debug/cygwin-1.7.32-1/winsup/cygwin/cygthread.cc:93
#7  0x000000018004619b in _cygtls::call2 (this=0x21bce00,
func=0x1800454d0 <cygthread::stub(void*)>, arg=0x1801d03a0 <threads>,
    buf=buf@entry=0x21bcd50)
    at /usr/src/debug/cygwin-1.7.32-1/winsup/cygwin/cygtls.cc:100
#8  0x00000001800462f4 in _cygtls::call (func=<optimized out>,
    arg=<optimized out>)
    at /usr/src/debug/cygwin-1.7.32-1/winsup/cygwin/cygtls.cc:30
#9  0x00000000770159ed in KERNEL32!BaseThreadInitThunk ()
   from /cygdrive/c/WINDOWS/system32/kernel32.dll
#10 0x000000007724c541 in ntdll!RtlUserThreadStart ()
   from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#11 0x0000000000000000 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Thread 1 (Thread 2900.0xdac):
#0  0x000000000042e2a8 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)


regards,
Markus



--
Markus Hoenicka
http://www.mhoenicka.de
AQ score 38






reply via email to

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