X server crash when running texworks

Ken Brown kbrown@cornell.edu
Mon Apr 2 21:14:00 GMT 2012


On 4/2/2012 8:04 AM, Ken Brown wrote:
> On 3/31/2012 11:26 AM, Ken Brown wrote:
>> On 3/31/2012 6:28 AM, Jon TURNEY wrote:
>>> On 30/03/2012 12:36, Jon TURNEY wrote:
>>>> On 29/03/2012 20:59, Ken Brown wrote:
>>>>> On 3/29/2012 8:14 AM, Jon TURNEY wrote:
>>>>>>
>>>>>> Not so good :-(. Thanks for testing it, anyway.
>>>>>>
>>>>>> I found a rather bad crash bug I'd introduced and fixed that, so
>>>>>> you might
>>>>>> want to try today's snapshot [1], but I'm not confident that I
>>>>>> fixed the
>>>>>> problem you saw, so a backtrace would be helpful if you still get
>>>>>> crashes.
>>>>>
>>>>> OK, I'm running it now and have attached gdb to it. The good news is
>>>>> that
>>>>> I've been running it for a couple hours with no crash, and I've used
>>>>> texworks
>>>>> and have opened many tex files and pdf files in it without a
>>>>> problem. The bad
>>>>> news is that texworks becomes unresponsive and has to be killed
>>>>> whenever I try
>>>>> to compile a tex file. I have no idea whether this is due to an X
>>>>> server
>>>>> problem or something completely different. Anyway, I'll post a
>>>>> backtrace if
>>>>> the server crashes.
>>>>>
>>>>> In case you want to try to reproduce the current problem, start
>>>>> texworks, open
>>>>> a tex file (such as the file test1.tex whose contents I listed at the
>>>>> beginning of this thread), and click on the icon at the left end of
>>>>> the
>>>>> toolbar (brown triangle on a green background). This is supposed to
>>>>> cause
>>>>> test1.tex to get compiled, but for me it just causes texworks to
>>>>> become
>>>>> unresponsive. This was working properly with the previous version of
>>>>> the X
>>>>> server (until the server crashed).
>>>>
>>>> Thanks for testing this X server snapshot.
>>>>
>>>> For me, the problem of texworks hanging only occurs very
>>>> intermittently. It
>>>> seems to be blocked deep in QtCore, waiting for the spawned process to
>>>> terminate (which has already happened).
>>>
>>> Attaching to the texworks process, I get a backtrace like this:
>>>
>>> (gdb) bt
>>> #0 0x7c90e514 in ntdll!LdrAccessResource () from
>>> /cygdrive/c/WINDOWS/system32/ntdll.dll
>>> #1 0x7c90df4a in ntdll!ZwWaitForMultipleObjects () from
>>> /cygdrive/c/WINDOWS/system32/ntdll.dll
>>> #2 0x7c809590 in KERNEL32!CreateFileMappingA () from
>>> /cygdrive/c/WINDOWS/system32/kernel32.dll
>>> #3 0x7c80a115 in WaitForMultipleObjects () from
>>> /cygdrive/c/WINDOWS/system32/kernel32.dll
>>> #4 0x610ce614 in select_stuff::wait(_types_fd_set*, _types_fd_set*,
>>> _types_fd_set*, unsigned long) ()
>>> from /usr/bin/cygwin1.dll
>>> #5 0x610cf02b in cygwin_select () from /usr/bin/cygwin1.dll
>>> #6 0x610d33d5 in _sigfe () from /usr/bin/cygwin1.dll
>>> #7 0x0022b87c in ?? ()
>>> #8 0x6d445820 in cygQtCore-4!_ZN15QProcessManager11qt_metacastEPKc ()
>>> from
>>> /usr/bin/cygQtCore-4.dll
>>> #9 0x6d446e97 in cygQtCore-4!_ZN15QProcessPrivate15waitForFinishedEi
>>> () from
>>> /usr/bin/cygQtCore-4.dll
>>> #10 0x6d40fb85 in cygQtCore-4!_ZN8QProcess15waitForFinishedEi () from
>>> /usr/bin/cygQtCore-4.dll
>>> #11 0x6d41286c in
>>> cygQtCore-4!_ZN8QProcess7executeERK7QStringRK11QStringList
>>> () from /usr/bin/cygQtCore-4.dll
>>> #12 0x0043a350 in ?? ()
>>> #13 0x0047b8c5 in ?? ()
>>> #14 0x6d46e733 in
>>> cygQtCore-4!_ZN11QMetaObject8activateEP7QObjectPKS_iPPv ()
>>> from /usr/bin/cygQtCore-4.dll
>>> #15 0x6bc8b99b in cygQtGui-4!_ZN7QAction9triggeredEb () from
>>> /usr/bin/cygQtGui-4.dll
>>> #16 0x6bc8bb9a in cygQtGui-4!_ZN7QAction8activateENS_11ActionEventE ()
>>> from
>>> /usr/bin/cygQtGui-4.dll
>>> #17 0x6c08dd06 in cygQtGui-4!_ZN11QToolButton14nextCheckStateEv () from
>>> /usr/bin/cygQtGui-4.dll
>>> #18 0x6bfe0185 in cygQtGui-4!_ZN22QAbstractButtonPrivate5clickEv () from
>>> /usr/bin/cygQtGui-4.dll
>>> #19 0x6bfe0426 in
>>> cygQtGui-4!_ZN15QAbstractButton17mouseReleaseEventEP11QMouseEvent ()
>>> from
>>> /usr/bin/cygQtGui-4.dll
>>> #20 0x6c08ddac in
>>> cygQtGui-4!_ZN11QToolButton17mouseReleaseEventEP11QMouseEvent () from
>>> /usr/bin/cygQtGui-4.dll
>>> #21 0x6bcd8769 in cygQtGui-4!_ZN7QWidget5eventEP6QEvent () from
>>> /usr/bin/cygQtGui-4.dll
>>> #22 0x6bc90fec in
>>> cygQtGui-4!_ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent
>>> () from
>>> /usr/bin/cygQtGui-4.dll
>>> #23 0x6bc95e45 in
>>> cygQtGui-4!_ZN12QApplication6notifyEP7QObjectP6QEvent ()
>>> from /usr/bin/cygQtGui-4.dll
>>> #24 0x6d45cefd in
>>> cygQtCore-4!_ZN16QCoreApplication14notifyInternalEP7QObjectP6QEvent ()
>>> from
>>> /usr/bin/cygQtCore-4.dll
>>> #25 0x6bc91d98 in
>>> cygQtGui-4!_ZN19QApplicationPrivate14sendMouseEventEP7QWidgetP11QMouseEventS1_S1_PS1_R8QPointerIS0_Eb
>>>
>>>
>>> () from /usr/bin/cygQtGui-4.dll
>>> #26 0x6bd007ed in
>>> cygQtGui-4!_ZN9QETWidget19translateMouseEventEPK7_XEvent ()
>>> from /usr/bin/cygQtGui-4.dll
>>> #27 0x6bcff421 in
>>> cygQtGui-4!_ZN12QApplication15x11ProcessEventEP7_XEvent ()
>>> from /usr/bin/cygQtGui-4.dll
>>> #28 0x6bd21f82 in cygQtGui-4!_ZN23QGuiEventDispatcherGlibC2EP7QObject
>>> () from
>>> /usr/bin/cygQtGui-4.dll
>>> #29 0x5efecb08 in g_main_context_dispatch () from
>>> /usr/bin/cygglib-2.0-0.dll
>>> #30 0x5efed208 in g_main_context_dispatch () from
>>> /usr/bin/cygglib-2.0-0.dll
>>> #31 0x5efed3cf in g_main_context_iteration () from
>>> /usr/bin/cygglib-2.0-0.dll
>>> #32 0x6d480671 in
>>> cygQtCore-4!_ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE
>>>
>>>
>>> ()
>>> from /usr/bin/cygQtCore-4.dll
>>> #33 0x6bd21cb7 in
>>> cygQtGui-4!_ZN23QGuiEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE
>>>
>>>
>>> ()
>>> from /usr/bin/cygQtGui-4.dll
>>> #34 0x6d45c587 in
>>> cygQtCore-4!_ZN10QEventLoop13processEventsE6QFlagsINS_17ProcessEventsFlagEE
>>>
>>> ()
>>> from /usr/bin/cygQtCore-4.dll
>>> #35 0x6d45c7f7 in
>>> cygQtCore-4!_ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE ()
>>> from
>>> /usr/bin/cygQtCore-4.dll
>>> #36 0x6d4605d6 in cygQtCore-4!_ZN16QCoreApplication4execEv () from
>>> /usr/bin/cygQtCore-4.dll
>>> #37 0x00402bbe in ?? ()
>>> #38 0x61006d68 in _cygwin_exit_return () from /usr/bin/cygwin1.dll
>>> #39 0x00000001 in ?? ()
>>> #40 0x20010100 in ?? ()
>>> #41 0x00000000 in ?? ()
>>>
>>> I'm guessing this is waiting for the pdftex process to terminate, but
>>> ps shows
>>> it as '(defunct)' already...
> Here's one further detail: When texworks hangs and leaves a defunct
> pdftex process, pdftex hasn't actually completed its work successfully.
> It's supposed to produce a pdf file, but that doesn't happen. I wonder
> if there could be a race condition in which texworks is watching for a
> pdf file to appear while pdftex is trying to create that file.

Much earlier in the thread I mentioned a warning "QFileSystemWatcher: 
failed to add paths: /home/kbrown".  I've looked at the QtCore sources, 
and that warning is generated by the function 
QFileSystemWatcher::addPaths, in corelib/io/qfilesystemwatcher.cpp.  If 
I'm understanding the code correctly, that function tries to use a 
"native" (system-specific) FileSystemWatcherEngine if possible.  The 
function QFileSystemWatcherPrivate::createNativeEngine in the same file 
creates native engines on Windows, Linux, FreeBSD, Mac OS, and Symbian, 
but not on Cygwin.

I don't know if it's worth pursuing this, but the failure of 
FileSystemWatcher could conceivably be the problem here.  Do you know 
enough about Qt to have any ideas about how to proceed?  Or Yaakov?

Ken


--
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/



More information about the Cygwin-xfree mailing list