Re: XWin.exe segmentation fault on Windows 7

2012-08-08 Thread Jon TURNEY
On 08/08/2012 05:51, Chris LeBlanc wrote:
 I'm trying to help a coworker get Cygwin running on her Windows 7
 (64b) machine, but we're seeing a segmentation fault with XWin.exe.
 Previous versions of X11 worked fine on this machine, but recently it
 has been unable to fork processes.  It's been giving the error fork:
 child -1 - forked process died unexpectedly ..., which is why I've
 been trying to upgrade to the most recent version of Cygwin.

Thanks for the detailed bug report.

Given you were getting fork problems before this upgrade, this might well be a
problem with some other software interfering with cygwin's operation. So you
should take a look at [1], and probably try running XWin with CYGWIN including
detect_bloda [2]

 Any advice on how to get more debug info?  How hard is it to build
 XWin from source?  If it's a minor strcpy() issue it could be a pretty
 easy fix.  Any other advice?

Instructions on building the X server from source are in [3], but with the
debug info package installed you have source and symbols, so you should be
able to set a breakpoint on main and step through the code anyhow.

   0 [main] XWin 6164 exception::handle: Exception: STATUS_ACCESS_VIOLATION
 454 [main] XWin 6164 open_stackdumpfile: Dumping stack trace to
 XWin.exe.stackdump
 
 Program received signal SIGSEGV, Segmentation fault.
 strcpy (dst0=0x40010006 Address 0x40010006 out of bounds, src0=0x0)
 at /usr/src/debug/cygwin-1.7.16-1/newlib/libc/string/strcpy.c:86
 86while (!DETECTNULL(*aligned_src))
 (gdb) bt full
 #0  strcpy (dst0=0x40010006 Address 0x40010006 out of bounds, src0=0x0)
 at /usr/src/debug/cygwin-1.7.16-1/newlib/libc/string/strcpy.c:86
 dst = 0x40010006 Address 0x40010006 out of bounds
 src = 0x0
 aligned_dst = 0x40010006
 aligned_src = 0x28a026
 #1  0x751d2ad6 in OutputDebugStringA () from
 /cygdrive/c/Windows/syswow64/KERNELBASE.dll
 No symbol table info available.
 #2  0x40010006 in ?? ()
 No symbol table info available.
 #3  0x in ?? ()
 No symbol table info available.
 (gdb)

This stack trace looks highly suspicious:
- The presence of the invalid address 0x40010006 as src for strcpy and in the
backtrace
- I think cygwin is supposed to notice it is being debugged and give control
to the debugger and not write a stackdump file
- I don't think OutputDebugStringA() should ever end up calling cygwin's 
strcpy()

So all this suggests to me some kind of stack corruption has happened.

 Output from XWin.exe.stackdump:
 Exception: STATUS_ACCESS_VIOLATION at eip=61129F8B
 eax=0028D624 ebx= ecx= edx= esi=0028D624 edi=0028AB5C
 ebp=0028A968 esp=0028A95C program=C:\cygwin\bin\XWin.exe, pid 6164, thread 
 main
 cs=0023 ds=002B es=002B fs=0053 gs=002B ss=002B
 Stack trace:
 Frame Function  Args
 0028A968  61129F8B  (0028D624, , 0028FF14, 771170D5)
 0028AA28  6108E2BA  (0028AA58, 611DF23B, 60FE8510, 0068)
 0028AB78  6108EB57  (60FE000C, 0005, 0028ABC4, 005C2DE9)
 0028AB98  61091F56  (005C2DCE, 005C2DCC, , )
 0028ABF8  610D5F05  (6C34, 0001, 0028FD24, 0002)
 0028AC38  00528F43  (0002, 0028AC60, 800280E8, 8003A441)
 0028ACF8  61007535  (, 0028CD78, 61006B20, )
 End of stack trace

Processing this with awk '/^[0-9]/{print $2}' XWin.exe.stackdump | addr2line
-asf -e /usr/bin/cygwin1.dll, and cleaning up the output by hand a bit, 
gives...

0x61129f8b  strcpy  strcpy.c:86
0x6108e2ba  fillout_mntent  mount.cc:1636
0x6108eb57  cygdrive_getmntent  mount.cc:1720
0x61091f56  getmntent   mount.cc:1900
0x610d5f05  ??  ??:0
0x00528f43  mainmain.c:145
0x61007535  _Z10dll_crt0_1Pvdcrt0.cc:982

... which looks a bit more reasonable, and suggests something in the cygwin
DLL is exploding when XWin uses getmntent() in winCheckMount() to check for
FAT and textmode mounts.

[1] http://cygwin.com/faq/faq.using.html#faq.using.bloda
[2] http://cygwin.com/ml/cygwin/2012-02/msg00797.html
[2] http://x.cygwin.com/docs/cg/

-- 
Jon TURNEY
Volunteer Cygwin/X X Server maintainer

--
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple
Problem reports:   http://cygwin.com/problems.html
Documentation: http://x.cygwin.com/docs/
FAQ:   http://x.cygwin.com/docs/faq/



Re: XWin.exe segmentation fault on Windows 7

2012-08-08 Thread Chris LeBlanc
Hi Jon,

Thanks for the excellent response.

 Given you were getting fork problems before this upgrade, this might well be a
 problem with some other software interfering with cygwin's operation. So you
 should take a look at [1], and probably try running XWin with CYGWIN including
 detect_bloda [2]

The only software I found on her computer that is also on that list
was the McAfee virus scanner.  We disabled this and still saw the
problem (though I noticed the process was still running, and
re-launched itself if you killed it!).  I also tried uninstalling some
other software that might have been interfering; such as DVD burning
software, etc. but still saw the problem (even after a reboot and
rebaseall).

I then set the environment variable CYGWIN=detect_bloda  and launched
a bash instance but didn't see any messages about BLODA detected.
This is a nice feature, I'll be sure to use it if I find any more
forking issues in the future.

Our IT staff is pretty good at quick reinstalls, so I've asked them to
reinstall Windows 7 on this machine.  I'm hopeful this will solve the
problem, but if not I'll continue with debugging XWin.

Thanks,
Chris

--
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple
Problem reports:   http://cygwin.com/problems.html
Documentation: http://x.cygwin.com/docs/
FAQ:   http://x.cygwin.com/docs/faq/



Re: XWin.exe segmentation fault on Windows 7

2012-08-08 Thread Mark Geisert
 The only software I found on her computer that is also on that list
 was the McAfee virus scanner.  We disabled this and still saw the
 problem (though I noticed the process was still running, and
 re-launched itself if you killed it!).

As Jon's reference [1] explains, merely disabling the BLODA might not be
sufficient.  You may have to completely uninstall it to be rid of its effects. 

*Especially* if it has processes that re-launch themselves on kill; I mean, how
can you know whether you've ruled this particular BLODA out as an explanation
for the issue unless you've completely uninstalled it?
HTH,

..mark



--
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple
Problem reports:   http://cygwin.com/problems.html
Documentation: http://x.cygwin.com/docs/
FAQ:   http://x.cygwin.com/docs/faq/



Re: XWin.exe segmentation fault on Windows 7

2012-08-08 Thread Chris LeBlanc
Hi Mark,

 As Jon's reference [1] explains, merely disabling the BLODA might not be
 sufficient.  You may have to completely uninstall it to be rid of its effects.

 *Especially* if it has processes that re-launch themselves on kill; I mean, 
 how
 can you know whether you've ruled this particular BLODA out as an explanation
 for the issue unless you've completely uninstalled it?
 HTH,

I agree completely.  My preference was to try a reinstall and go from
there since we know Cygwin works fine on a clean Windows 7 install.
Unfortunately our sysadmins don't want to reinstall the OS.

Being a corporate environment there's no chance of running this
machine without the approved virus scanner running.  I'll talk to the
them again and see if they will temporarily uninstall McAfee so we can
see if it's the cause of the problem.

Cheers,
Chris

--
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple
Problem reports:   http://cygwin.com/problems.html
Documentation: http://x.cygwin.com/docs/
FAQ:   http://x.cygwin.com/docs/faq/