Opened 6 years ago

Closed 5 years ago

Last modified 5 years ago

#2837 closed defect (fixed)

Crash displaying ISOLDE ramachandran plot

Reported by: jaremko@… 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)

display_scale.PNG (8.3 KB ) - added by Tristan Croll 5 years ago.
Added by email2trac

Download all attachments as: .zip

Change History (12)

comment:1 by pett, 6 years ago

Component: UnassignedThird Party
Owner: set to Tristan Croll
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionCrash displaying ISOLDE ramachandran plot

Reported by Matt Jaremko

comment:2 by Tristan Croll, 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 Tristan Croll, 5 years ago

Cc: Tom Goddard 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

in reply to:  4 ; comment:4 by Tristan Croll, 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:

in reply to:  5 ; comment:5 by Tristan Croll, 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:

comment:6 by Tristan Croll, 5 years ago

Cc: Greg Couch added

If I recall correctly, this is more of a Greg question.

in reply to:  7 ; comment:7 by Tristan Croll, 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:

display_scale.PNG

by Tristan Croll, 5 years ago

Attachment: display_scale.PNG added

Added by email2trac

comment:8 by Tristan Croll, 5 years ago

Resolution: fixed
Status: assignedclosed

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.

in reply to:  10 comment:9 by jaremko@…, 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

in reply to:  11 ; comment:10 by Tristan Croll, 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.
 

 


comment:11 by Greg Couch, 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.

Note: See TracTickets for help on using tickets.