This is the mail archive of the cygwin mailing list for the Cygwin project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
Hi,
I've been experiencing intermittent crashes on my Windows XP laptop with
the past few DLL versions (from 1.5.16 to the latest snapshot). These are
extremely hard to reproduce, and happen seemingly at random, with various
applications (most often bash, but I've seen it happen with xargs, man,
etc). The only correlation I noticed was that these seem to happen while
spawning child processes, and they occur more often with higher memory
usage. I've only noticed the crashes of Cygwin applications --
everything else seems to run smoothly.
I know this isn't much of a bug report, but the details of what I've tried
are below (warning: long).
I was able to get a crash under the latest snapshot (CYGWIN_NT-5.1
1.5.18s(0.132/4/2) 20050624 09:33:10), with error_start set to gdb.
Here's part of the debugging session:
Attaching to program `/usr/bin/bash.exe', process 6140
[Switching to thread 6140.0x5bc]
(gdb) info threads
* 4 thread 6140.0x5bc 0x77f75a59 in ?? ()
from /cygdrive/c/WINDOWS/System32/ntdll.dll
3 thread 6140.0xf4c 0x7ffe0304 in ?? ()
2 thread 6140.0x10f0 0x7ffe0304 in ?? ()
1 thread 6140.0x398 0x610469d1 in fork ()
at /netrel/src/cygwin-snapshot-20050624-1/winsup/cygwin/pinfo.h:178
Current language: auto; currently c++
(gdb) thread 1
[Switching to thread 1 (thread 6140.0x398)]#0 0x610469d1 in fork ()
at /netrel/src/cygwin-snapshot-20050624-1/winsup/cygwin/pinfo.h:178
178 /netrel/src/cygwin-snapshot-20050624-1/winsup/cygwin/pinfo.h: No such file or directory.
in /netrel/src/cygwin-snapshot-20050624-1/winsup/cygwin/pinfo.h
(gdb) where
#0 0x610469d1 in fork ()
at /netrel/src/cygwin-snapshot-20050624-1/winsup/cygwin/pinfo.h:178
#1 0x6108439f in _sigfe ()
at /netrel/src/cygwin-snapshot-20050624-1/winsup/cygwin/cygserver.h:82
#2 0x0022e334 in ?? ()
#3 0x00435d27 in fhandler_pipe::get_guard ()
#4 0x0000000f in ?? ()
#5 0x00080000 in ?? ()
#6 0x00080002 in ?? ()
#7 0xffffffff in ?? ()
#8 0x004e9e90 in ?? ()
#9 0x00000000 in ?? () from
(gdb) quit
Frames 2-9 look totally bogus, FWIW. Here's a full stack dump produced by
(another invocation of) bash:
Exception: STATUS_ACCESS_VIOLATION at eip=610469D1
eax=42C36DE2 ebx=00000000 ecx=60030000 edx=00000000 esi=00000000 edi=00000000
ebp=0022E9D8 esp=0022E760 program=C:\cygwin\bin\bash.exe, pid 3112, thread main
cs=001B ds=0023 es=0023 fs=0038 gs=0000 ss=0023
Stack trace:
Frame Function Args
0022E9D8 610469D1 (000000FF, 0022E9F8, 0022E9F4, 00435D27)
0022EA08 6108439F (004E6000, 00000000, 0022EA48, 00437F88)
0022EA58 00411344 (004EC9B8, 004EB088, 004E6480, FFFFFFFF)
0022EAC8 00410423 (004E9590, FFFFFFFF, FFFFFFFF, 00000000)
0022EB08 0040D8FF (004E9578, 00000000, FFFFFFFF, FFFFFFFF)
0022EB38 0040D425 (004E9578, 00000001, 0022EB88, 0040DB05)
0022EB48 0040FB5B (004E9560, 00000001, 00000001, 00000000)
0022EB88 0040DB05 (004E9548, 00000000, FFFFFFFF, FFFFFFFF)
0022EBB8 0040EA7E (004E74B8, 00000000, FFFFFFFF, FFFFFFFF)
0022EBF8 0040DB42 (004E74B8, 00000000, FFFFFFFF, FFFFFFFF)
0022EC28 0040D425 (004E74B8, 004E5150, 0022EF88, 77E9B2E5)
0022EC58 0040EA48 (004E7488, 00000000, FFFFFFFF, FFFFFFFF)
0022EC98 0040DB42 (004E7488, 00000000, FFFFFFFF, FFFFFFFF)
0022ECD8 0040DBBB (004E7470, 00000000, FFFFFFFF, FFFFFFFF)
0022ED08 00410D4F (004E9690, 004E81F8, 00000008, 004E8318)
0022ED38 004111D9 (004E81F8, 00000000, 004E9690, 00000000)
End of stack trace (more stack frames may be present)
BTW, for some reason addr2line only decodes the first address:
$ awk '/^[0-9]/{print $2}' bash.exe.stackdump | addr2line -e /bin/cygwin1.dll
/netrel/src/cygwin-snapshot-20050624-1/winsup/cygwin/pinfo.h:178
??:0
??:0
...
though it seems that
0022EA08 6108439F (004E6000, 00000000, 0022EA48, 00437F88)
should be decoded as well. The relevant line of pinfo.h is
_pinfo *operator -> () const {return procinfo;}
and, looking at the arguments, the pinfo object pointer seems to be
corrupted.
Unfortunately, I was unable to reproduce this under strace.
Since these crashes are very intermittent, any suggestions on further
debugging them? I could compile a debugging version of the cygwin DLL
with extra information printed, but it'd help to know what information
would be useful. Slightly obfuscated output of "cygcheck -svr" is
attached.
Igor
--
http://cs.nyu.edu/~pechtcha/
|\ _,,,---,,_ pechtcha@cs.nyu.edu
ZZZzz /,`.-'`' -. ;-;;,_ igor@watson.ibm.com
|,4- ) )-,_. ,\ ( `'-' Igor Pechtchanski, Ph.D.
'---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow!
"The Sun will pass between the Earth and the Moon tonight for a total
Lunar eclipse..." -- WCBS Radio Newsbrief, Oct 27 2004, 12:01 pm EDTAttachment:
cygcheck-20050630.out
Description: Text document
-- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |