Opened 15 years ago

Closed 14 years ago

Last modified 14 years ago

#5499 closed defect (fixed)

Recursive repaint SEGV

Reported by: rjudson@… Owned by: poenitz
Priority: normal Milestone:
Component: painter Version: 1.6.0
Severity: critical Keywords: crash
Cc: Juergen Spitzmueller, kmailuk@…, volker@…, lorenz@…, imjustmatthew@…, gmatht, maresr12temp@…

Description (last modified by Juergen Spitzmueller)

QPaintEngine::setSystemClip: Should not be changed while engine is active
QPaintEngine::setSystemClip: Should not be changed while engine is active
QWidgetPrivate::beginSharedPainter: Painter is already active

C:/Documents and Settings/rjudson/My Documents/508.lyx.emergency

QWidget::repaint: Recursive repaint detected

lyx: SIGSEGV signal caught
Sorry, you have found a bug in LyX. Please read the bug-reporting instructions
in Help->Introduction and send us a bug report, if necessary. Thanks !
Bye.

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
Completed

Attachments (3)

lyxbug2.txt (158.7 KB ) - added by dropbox314@… 15 years ago.
Output of valgrind -v
lyxbug2.rar (11.4 KB ) - added by dropbox314@… 15 years ago.
Output of valgrind -v
1263291678.GDB (5.2 KB ) - added by gmatht 14 years ago.
backtrace of assertion.

Download all attachments as: .zip

Change History (38)

comment:1 by Juergen Spitzmueller, 15 years ago

Severity: normalcritical

we need more detailed information. Is it reproducible? How?

comment:2 by rjudson@…, 15 years ago

I was moving a toolbar from one position to another when this occurred.

comment:3 by Juergen Spitzmueller, 15 years ago

can you reproduce it regularly with this recipe?

comment:4 by Uwe Stöhr, 15 years ago

I don't see this on Windows XP.

comment:5 by Juergen Spitzmueller, 15 years ago

Cc: lorenz@… added

comment:6 by Juergen Spitzmueller, 15 years ago

* #5564 has been marked as a duplicate of this bug. *

comment:7 by ps@…, 15 years ago

maybe #5557 also duplicate

comment:8 by Uwe Stöhr, 15 years ago

blocked: 5557

comment:9 by Uwe Stöhr, 15 years ago

Keywords: crash added

I cannot reproduce this bug, neither by using Ctrl+W, moving toolbars, outliner
actions, etc.

comment:10 by Uwe Stöhr, 15 years ago

Cc: kmailuk@… added

comment:11 by Uwe Stöhr, 15 years ago

* #5516 has been marked as a duplicate of this bug. *

comment:12 by Uwe Stöhr, 15 years ago

blocked: 5557, volker@badziong.de

comment:13 by Uwe Stöhr, 15 years ago

* #5557 has been marked as a duplicate of this bug. *

comment:14 by Uwe Stöhr, 15 years ago

I cannot reproduce this bug, neither by using Ctrl+W, moving toolbars, outliner
actions, split screen, full screen, etc.

comment:15 by Uwe Stöhr, 15 years ago

LyX 1.6.1 comes out around December 13, please test out if this crash occurs
also in LyX 1.6.1.

comment:16 by dropbox314@…, 15 years ago

I can reliably reproduce this bug running both Alt-Installer-1.6.1 under Windows
XP and 1.6.0 compiled from source in Ubuntu.

For illustrations of step 1-4, see: http://tensorial.com/special/lyxcrash.png

Step 1: Create a new document with two lines. First line is "x" in math mode,
second line is "x" in regular text. It's essential to get the height correct.

Step 2: Hold down the left mouse button over the math mode "x". The math
toolbar should pop up, obscuring part/most of the math box.

Step 3: Slowly move the mouse downward

Step 4: Move the mouse beyond the point of scrolling down, but not beyond the
point of the math toolbar hiding.

Step 5: The mouse should still be over the math toolbar. Release the left mouse
button.

The result of these actions in XP causes:

QPaintEngine::setSystemClip: Should not be changed while engine is active
QPaintEngine::setSystemClip: Should not be changed while engine is active
QWidgetPrivate::beginSharedPainter: Painter is already active

C:/Documents and Settings/Ben/newfile1.lyx.emergency

QWidget::repaint: Recursive repaint detected

lyx: SIGSEGV signal caught

and in Ubuntu (1.6.0 compiled from source):

QPaintEngine::setSystemClip: Should not be changed while engine is active
QPaintEngine::setSystemClip: Should not be changed while engine is active
QWidgetPrivate::beginSharedPainter: Painter is already active
QWidgetPrivate::endSharedPainter: Attempting to end a null painter

[no crash--LyX continues to function]

This all probably seems very contrived, but it's not. I'll spend most of my
time typing at the bottom of the screen. After moving the mouse around enough,
I'll invariably retrigger this crash every few hours.

Hope this helps!

comment:17 by Juergen Spitzmueller, 15 years ago

Cc: j.spitzmueller@… added

On Linux, can you try to generate a backtrace?
http://wiki.lyx.org/FAQ/FurtherHelp#toc4

comment:18 by dropbox314@…, 15 years ago

No luck. I can't seem to get a backtrace under Linux because it doesn't
segfault, and the error isn't fatal. (See my previous description of Windows vs
Linux.)

As an alternative, I just compiled 1.6.1 from source with the "--enable-debug"
option as the Wiki suggests, but I don't know how to get the corresponding debug
info. I did run lyx -dbg painting/scrolling. I don't know what the output
means, but nothing caught my attention.

comment:19 by Juergen Spitzmueller, 15 years ago

I see. Maybe running under valgrind on Linux reveals something usable.
(unfortunately, I fail to reproduce the problem following your recipe).

comment:20 by ps@…, 15 years ago

i wonder how is it possible that you are able to reproduce in two different OS
while we can't even in one. isn't there something specific wrt your settings of
lyx? for example math toolbars visibility or so. isn't there something missing
in the recpipy? also what qt version in linux do you use?

comment:21 by dropbox314@…, 15 years ago

I can reproduce it on 3 different OSes. Add my Vista computer, which behaves
identically to my XP computer.

I just got home for Xmas and installed LyX-1.6.1-1-Installer.exe on Mom's
computer. I was unable to reproduce the bug!!! :(

I'm racking my brain to figure out what I did differently. So bizarre! I'll
try some more experiments to see if I can figure it out.

Pavel--On Linux I compiled with Qt 4.4.1.

Jurgen--I'm not familiar with valgrind. I'd be willing to try something if you
could give me some guidance.

comment:22 by Juergen Spitzmueller, 15 years ago

Subject: Re: Recursive repaint SEGV

Jurgen--I'm not familiar with valgrind.  I'd be willing to try something if
you could give me some guidance.

Just run "valgrind lyx" and see if it outputs something useful on the console
after LyX has been closed. I'm not sure it actually does -- but who knows?

by dropbox314@…, 15 years ago

Attachment: lyxbug2.txt added

Output of valgrind -v

by dropbox314@…, 15 years ago

Attachment: lyxbug2.rar added

Output of valgrind -v

comment:23 by dropbox314@…, 15 years ago

Please disregard my Comment #20 and refer only to Comment #19. I got an
"Internal Server Error" when I first submitted the attachment to bugzilla, so I
figured it didn't post. For #20 I rar'ed it and resubmitted, but forgot to
change the MIME type.

If anyone has the authority to delete comments, please delete #20 and this
(#21), as well as the attachment of 4:42:06. Thanks!

comment:24 by ps@…, 15 years ago

Cc: imjustmatthew@… added

comment:25 by ps@…, 15 years ago

* #5714 has been marked as a duplicate of this bug. *

comment:26 by Vincent van Ravesteijn, 15 years ago

I created two new bugs with recipes which are related to this. These are bug
5820 and #5821.

comment:27 by Juergen Spitzmueller, 15 years ago

The observations on #5820 indicate that this is a Qt bug that is fixed in the
qt-copy packages that come with KDE on linux and that will be fixed upstream in
forthcoming Qt 4.5 (and probably 4.4.4).

Unless these are released, there is probably less we can do.

comment:28 by ps@…, 15 years ago

you can try whether qt 4.5 solved it.

comment:29 by ps, 15 years ago

Priority: highnormal

comment:30 by Juergen Spitzmueller, 15 years ago

Cc: Juergen Spitzmueller added; j.spitzmueller@… removed
Description: modified (diff)

does the crash still occur with Qt 4.5.2 (which is also used for this windows installer: ftp://ftp.lyx.org/pub/lyx/bin/1.6.3/LyX-1.6.3-2-Installer.exe)?

comment:31 by Vincent van Ravesteijn, 15 years ago

Yes, I think we can close this one. I've never been able to reproduce the recipe that is described here. And I have checked that the very much related bugs #5820 and #5821 were solved by qt4.5.

comment:32 by Juergen Spitzmueller, 15 years ago

Resolution: fixed
Status: newclosed

OK. Closing. Please reopen if you can reproduce the bug with Qt 4.5 or the installer mentioned in comment:30, respectively.

comment:33 by gmatht, 14 years ago

Resolution: fixed
Status: closedreopened

Well, this keeps popping up in keytest, giving "lassert.cpp(21): ASSERTION text_.size() <= 2 VIOLATED IN GuiKeySymbol.cpp:673" see:

http://gmatht.homelinux.net/xp/out/4/html/1263291678.html

I have not been able to *manually* reproduce, but I will reopen as this was with Qt 4.5.2. Feel free to close again if the new information is not useful.

by gmatht, 14 years ago

Attachment: 1263291678.GDB added

backtrace of assertion.

comment:34 by Vincent van Ravesteijn, 14 years ago

Cc: gmatht added
Resolution: fixed
Status: reopenedclosed

Sorry, I don't see a relation between your keycodes (ctrl-w), the assertion (text_.size() < 2, and this bug.

Please open a new bug.

comment:35 by Ben M., 14 years ago

Cc: maresr12temp@… added

I (dropbox314=benm) haven't triggered this crash for several months. Whatever the cause, looks "fixed" to me.

Note: See TracTickets for help on using tickets.