This is the mail archive of the cygwin-xfree mailing list for the Cygwin XFree86 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]

Re: X server crash when running texworks

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

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
toolbar (brown triangle on a green background). This is supposed to
test1.tex to get compiled, but for me it just causes texworks to
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
#1 0x7c90df4a in ntdll!ZwWaitForMultipleObjects () from
#2 0x7c809590 in KERNEL32!CreateFileMappingA () from
#3 0x7c80a115 in WaitForMultipleObjects () from
#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 ()
#9 0x6d446e97 in cygQtCore-4!_ZN15QProcessPrivate15waitForFinishedEi
() from
#10 0x6d40fb85 in cygQtCore-4!_ZN8QProcess15waitForFinishedEi () from
#11 0x6d41286c in
() 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
#16 0x6bc8bb9a in cygQtGui-4!_ZN7QAction8activateENS_11ActionEventE ()
#17 0x6c08dd06 in cygQtGui-4!_ZN11QToolButton14nextCheckStateEv () from
#18 0x6bfe0185 in cygQtGui-4!_ZN22QAbstractButtonPrivate5clickEv () from
#19 0x6bfe0426 in
cygQtGui-4!_ZN15QAbstractButton17mouseReleaseEventEP11QMouseEvent ()
#20 0x6c08ddac in
cygQtGui-4!_ZN11QToolButton17mouseReleaseEventEP11QMouseEvent () from
#21 0x6bcd8769 in cygQtGui-4!_ZN7QWidget5eventEP6QEvent () from
#22 0x6bc90fec in
() from
#23 0x6bc95e45 in
cygQtGui-4!_ZN12QApplication6notifyEP7QObjectP6QEvent ()
from /usr/bin/cygQtGui-4.dll
#24 0x6d45cefd in
cygQtCore-4!_ZN16QCoreApplication14notifyInternalEP7QObjectP6QEvent ()
#25 0x6bc91d98 in

() 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 ()
#36 0x6d4605d6 in cygQtCore-4!_ZN16QCoreApplication4execEv () from
#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?


-- Unsubscribe info: Problem reports: Documentation: FAQ:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]