#2837 closed defect (fixed)
Crash displaying ISOLDE ramachandran plot
Reported by: | Owned by: | Tristan Croll | |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | Third Party | Version: | |
Keywords: | Cc: | Tom Goddard, Greg Couch | |
Blocked By: | Blocking: | ||
Notify when closed: | Platform: | all | |
Project: | ChimeraX |
Description
The following bug report has been submitted: Platform: Windows-10-10.0.18362 ChimeraX Version: 0.92 (2020-02-03) Description I'm using ISOLDE and chimeraX crashes when I try to display the ISOLDE ramachandran plot. Log: Startup Messages --- warning | 'clip' is a prefix of an existing command 'clipper' > ui mousemode rightMode zoom > lighting soft > graphics silhouettes true > hide atoms > show cartoons > lighting depthCue false UCSF ChimeraX version: 0.92 (2020-02-03) © 2016-2020 Regents of the University of California. All rights reserved. How to cite UCSF ChimeraX OpenGL version: 3.3.0 NVIDIA 432.13 OpenGL renderer: GeForce GTX 1050 Ti with Max-Q Design/PCIe/SSE2 OpenGL vendor: NVIDIA Corporation
Attachments (1)
Change History (12)
comment:1 by , 6 years ago
Component: | Unassigned → Third Party |
---|---|
Owner: | set to |
Platform: | → all |
Project: | → ChimeraX |
Status: | new → assigned |
Summary: | ChimeraX bug report submission → Crash displaying ISOLDE ramachandran plot |
comment:2 by , 6 years ago
Sorry for the slow reply on this - I've been away travelling, and I'm just getting caught up now. Could you provide any more information? Is this for a specific model, or any model, or does it happen even if you open the Ramachandran plot without a model open? Would it be possible to provide the crash log file? Finally, does it still happen if you update your ChimeraX installation?
comment:3 by , 5 years ago
Cc: | added |
---|
Just received the below message from Rado Danev. Seems to pretty squarely place this as a Qt bug... will see if I can reproduce it on my Windows machine.
Hi Tristan, Hope you are doing well. You may remember that I tried ISOLDE on my laptop at the PDB validation meeting in January and it was closing unexpectedly when I tried to open the Ramachandran plot. I think I found what's causing the issue. On my laptop, as well as on my work desktop I use Windows on 4K monitors. To make the text readable, I set the Widnows text size to 150% in the Display settings. This seems to be the source of the problem. Setting the text size to 100% resolves the unexpected ISOLDE/ChimeraX crash on Widnows. Best wishes, Rado
follow-up: 4 comment:4 by , 5 years ago
Yep, can reproduce. Qt's doing *something* nasty, that's for sure. I get one of the following two crashes: Exception thrown at 0x00007FF8ECBED99F (Qt5Widgets.dll) in ChimeraX.exe: 0xC0000005: Access violation writing location 0x0000000000000028. Unhandled exception at 0x00007FF9566CDB8E (ucrtbase.dll) in ChimeraX.exe: Fatal program exit requested. While trying to find the right Qt debugging symbols, I noticed a discrepancy. In the ChimeraX shell: from PyQt5.Qt import QT_VERSION_STR QT_VERSION_STR Out[2]: '5.12.4' ... but when I attach Visual Studio 2015 to ChimeraX and catch the crash, it reports the version as 5.12.8. On 2020-05-11 13:09, ChimeraX wrote:
follow-up: 5 comment:5 by , 5 years ago
Tracked down the debugging symbols. The crash happens at line 5655 of qwidget.cpp: restoreRedirected(); if (!sharedPainter) paintEngine->d_func()->systemRect = QRect(); // crash happens here, trying to write to systemRect else paintEngine->d_func()->currentClipDevice = 0; Will see if I can trace back to figure out if I can work around it, but meanwhile I suppose it would be a good idea to file a bug report with them. On 2020-05-11 14:57, ChimeraX wrote:
follow-up: 7 comment:7 by , 5 years ago
Just to be completely clear, this is the Windows display setting I'm referring to. Heaven knows why the 150% scale triggers the problem - mine was auto-set to 125% without me even knowing, and has been perfectly fine. On 2020-05-11 15:10, ChimeraX wrote:
comment:8 by , 5 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Fixed. Turns out this was being triggered by calling MatPlotLib
's FigureCanvas.draw()
twice in the one graphics iteration, on first draw of the plot and again on any resize events. The rationale behind this was that the first draw just updates the contour plots, which are saved as an image for fast subsequent redraws, and the second draw adds the actual scatter plot. In every other environment this was well-behaved (although it turns out to have been the reason for the annoying "recursive repaint detected" warning in the log on first opening the Ramachandran widget) - but in this particular scenario it looks like it left Qt still trying to write to the first plot after it had been garbage-collected. Anyway, delaying the second draw to the next "new frame" trigger solves the problem.
comment:9 by , 5 years ago
Great, thanks so much Tristan and all! Looking forward to using it again. Best, Matt Matt J. Jaremko, Ph.D. Joshua-Tor Lab Cold Spring Harbor Laboratory One Bungtown Road Cold Spring Harbor, NY 11724-2209 Cell: (808) 741-6277 -----Original Message----- From: ChimeraX [mailto:ChimeraX-bugs-admin@cgl.ucsf.edu] Sent: Monday, May 11, 2020 11:19 AM Cc: goddard@cgl.ucsf.edu; gregc@cgl.ucsf.edu; Jaremko, Matt <jaremko@cshl.edu>; tic20@cam.ac.uk Subject: Re: [ChimeraX] #2837: Crash displaying ISOLDE ramachandran plot #2837: Crash displaying ISOLDE ramachandran plot ----------------------------------+--------------------------- Reporter: jaremko@… | Owner: Tristan Croll Type: defect | Status: closed Priority: normal | Milestone: Component: Third Party | Version: Resolution: fixed | Keywords: Blocked By: | Blocking: Notify when closed: | Platform: all Project: ChimeraX | ----------------------------------+--------------------------- Changes (by Tristan Croll): * status: assigned => closed * resolution: => fixed Comment: Fixed. Turns out this was being triggered by calling `MatPlotLib`'s `FigureCanvas.draw()` twice in the one graphics iteration, on first draw of the plot and again on any resize events. The rationale behind this was that the first draw just updates the contour plots, which are saved as an image for fast subsequent redraws, and the second draw adds the actual scatter plot. In every other environment this was well-behaved (although it turns out to have been the reason for the annoying "recursive repaint detected" warning in the log on first opening the Ramachandran widget) - but in this particular scenario it looks like it left Qt still trying to write to the first plot after it had been garbage-collected. Anyway, delaying the second draw to the next "new frame" trigger solves the problem. -- Ticket URL: <https://urldefense.proofpoint.com/v2/url?u=https-3A__plato.cgl.ucsf.edu_trac_ChimeraX_ticket_2837-23comment-3A8&d=DwIGaQ&c=mkpgQs82XaCKIwNV8b32dmVOmERqJe4bBOtF0CetP9Y&r=hXpNoqNcgGzlmQlyhaTJdA&m=o6xI9Q69HUz4S4oSp2R2DGF-wOZgIjucrn8yewbYqEk&s=jZ8wSniAXSZyXvWdI8oSbypBzdYdOKleMa2IYIvWhU8&e= > ChimeraX <https://urldefense.proofpoint.com/v2/url?u=http-3A__www.rbvi.ucsf.edu_chimerax_&d=DwIGaQ&c=mkpgQs82XaCKIwNV8b32dmVOmERqJe4bBOtF0CetP9Y&r=hXpNoqNcgGzlmQlyhaTJdA&m=o6xI9Q69HUz4S4oSp2R2DGF-wOZgIjucrn8yewbYqEk&s=QZ531evVKsMGWSH75Wl0W1mqf7DMvXABKiPb7Aku5Fo&e= > ChimeraX Issue Tracker
follow-up: 9 comment:10 by , 5 years ago
If you’re looking for an immediate work-around, simply setting the display magnification down to 125% should do it. At least, I’ve never encountered this crash on my machine with that setting.
follow-up: 10 comment:11 by , 5 years ago
FYI, the Chimerax release candidate is using PyQt 5.12.3 with Qt 5.12.8. The fact that PyQt5 says that the version to 5.12.4 is an artifact of how PyQt5 is built.
Reported by Matt Jaremko