Opened 8 years ago

Closed 7 years ago

#696 closed defect (fixed)

File/save causing segmentation fault in Linux

Reported by: Tristan Croll Owned by: Greg Couch
Priority: blocker Milestone:
Component: Core Version:
Keywords: Cc: Tom Goddard
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

Doesn't appear related to anything I've done (crashes even in a freshly-opened session).

Fatal Python error: Segmentation fault

Current thread 0x00007f858c29f740 (most recent call first):

File "/home/tic20/apps/chimerax/lib/python3.6/site-packages/chimerax/core/ui/save_dialog.py", line 127 in display
File "/home/tic20/apps/chimerax/lib/python3.6/site-packages/chimerax/core/ui/gui.py", line 416 in file_save_cb
File "/home/tic20/apps/chimerax/lib/python3.6/site-packages/chimerax/core/ui/gui.py", line 635 in <lambda>
File "/home/tic20/apps/chimerax/lib/python3.6/site-packages/chimerax/core/ui/gui.py", line 167 in event_loop
File "/home/tic20/apps/chimerax/lib/python3.6/site-packages/ChimeraX_main.py", line 572 in init
File "/home/tic20/apps/chimerax/lib/python3.6/site-packages/ChimeraX_main.py", line 663 in <module>
File "/home/tic20/apps/chimerax/lib/python3.6/runpy.py", line 85 in _run_code
File "/home/tic20/apps/chimerax/lib/python3.6/runpy.py", line 193 in _run_module_as_main

/home/tic20/bin/ChimeraX: line 7: 1483 Segmentation fault (core dumped) $CHIMERA_HOME/bin/ChimeraX $*

Change History (12)

comment:1 by pett, 8 years ago

Cc: Tom Goddard added
Owner: changed from pett to Greg Couch

comment:2 by Greg Couch, 8 years ago

Status: assignedfeedback

Please run ChimeraX under gdb and send back the C/C++ backtrace to confirm that it is dying in Qt's QLabel. If it's dying in Qt, we may need to wait for Qt and PyQt 5.9 to be available before fixing this. There's also the chance that an update for your system will fix this. On Windows today, so will try to reproduce on Linux tomorrow.

in reply to:  3 ; comment:3 by tic20@…, 8 years ago

This is what I get in gdb on File/save:

[New Thread 0x7fff179be700 (LWP 1306)]
[1182:1182:0601/081040:ERROR:browser_main_loop.cc(261)] Gtk: Invalid 
input string
[1182:1182:0601/081040:ERROR:browser_main_loop.cc(261)] Gtk: Invalid 
input string
[New Thread 0x7fff171bd700 (LWP 1307)]
[New Thread 0x7fff169bc700 (LWP 1308)]

Program received signal SIGSEGV, Segmentation fault.
update_current_folder_get_info_cb (cancellable=0x2555b90 [GCancellable], 
info=0x0, error=0x253c150, user_data=0x12b3680) at 
gtkfilechooserwidget.c:4272
4272	  if (cancellable != priv->update_current_folder_cancellable)


File/open works without issue, fwiw.


On 2017-05-31 21:27, ChimeraX wrote:

in reply to:  4 ; comment:4 by tic20@…, 8 years ago

Ah - just remembered, I've run in to the cause of this before while 
implementing a file I/O dialog for ISOLDE. It is a PyQt bug. In 
chimerax.core.ui.open_save.SaveDialog you have (line 30):

self.setOption(QFileDialog.DontUseNativeDialog)

This breaks horribly for the Gnome desktop - see 
https://riverbankcomputing.com/pipermail/pyqt/2010-September/027628.html. 
Note the date - apparently the problem has been around for quite some 
time, but Googling doesn't turn up any sign that it's been addressed. 
Today's a bit mission-critical (I fly off to give my demo tomorrow) so I 
don't want to install OS updates until I get back. Will try my laptop 
tonight to see if it also crashes there (it's also using Gnome, but in 
Fedora 25 - my workstation is CentOS 7).

Full stack trace:

update_current_folder_get_info_cb (cancellable=0x2512cb0 [GCancellable], 
info=0x0, error=0x3dd53b0, user_data=0x24e62c0) at 
gtkfilechooserwidget.c:4272
4272	  if (cancellable != priv->update_current_folder_cancellable)
(gdb) bt
#0  0x00007fff91b17c96 in update_current_folder_get_info_cb 
(cancellable=0x2512cb0 [GCancellable], info=0x0, error=0x3dd53b0, 
user_data=0x24e62c0)
     at gtkfilechooserwidget.c:4272
#1  0x00007fff91b1c55a in query_info_callback (source_object=<optimized 
out>, result=<optimized out>, user_data=0x39fee60) at 
gtkfilesystem.c:419
#2  0x00007fff911d6b7b in g_task_return_now (task=0x2510c80 [GTask]) at 
gtask.c:1077
#3  0x00007fff911d6b99 in complete_in_idle_cb (task=0x2510c80) at 
gtask.c:1086
#4  0x00007fffcfa947aa in g_main_context_dispatch 
(context=0x7fff8c002450) at gmain.c:3109
#5  0x00007fffcfa947aa in g_main_context_dispatch 
(context=context@entry=0x7fff8c002450) at gmain.c:3708
#6  0x00007fffcfa94af8 in g_main_context_iterate 
(context=context@entry=0x7fff8c002450, block=block@entry=1, 
dispatch=dispatch@entry=1, self=<optimized out>)
     at gmain.c:3779
#7  0x00007fffcfa94bac in g_main_context_iteration 
(context=0x7fff8c002450, may_block=1) at gmain.c:3840
#8  0x00007fffd7128cbf in 
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) 
()
     at 
/home/tic20/apps/chimerax/lib/python3.6/site-packages/PyQt5/Qt/lib/libQt5Core.so.5
#9  0x00007fffd70d69ca in 
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
     at 
/home/tic20/apps/chimerax/lib/python3.6/site-packages/PyQt5/Qt/lib/libQt5Core.so.5
#10 0x00007fff9a5c8a07 in QDialog::exec() () at 
/home/tic20/apps/chimerax/lib/python3.6/site-packages/PyQt5/Qt/lib/libQt5Widgets.so.5
#11 0x00007fffdc138265 in meth_QDialog_exec () at 
/home/tic20/apps/chimerax/lib/python3.6/site-packages/PyQt5/QtWidgets.so
#12 0x00007ffff796c629 in _PyCFunction_FastCallDict 
(func_obj=0x7fff1d8d6a20, args=0x3c17478, nargs=<optimized out>, 
kwargs=kwargs@entry=0x0)
     at Objects/methodobject.c:234
#13 0x00007ffff796c8d7 in _PyCFunction_FastCallKeywords 
(func=func@entry=0x7fff1d8d6a20, stack=stack@entry=0x3c17478, 
nargs=<optimized out>, kwnames=kwnames@entry=0x0) at 
Objects/methodobject.c:295
#14 0x00007ffff7a045c3 in call_function 
(pp_stack=pp_stack@entry=0x7fffffffb300, oparg=<optimized out>, 
kwnames=kwnames@entry=0x0) at Python/ceval.c:4798
#15 0x00007ffff7a09e2a in _PyEval_EvalFrameDefault (f=0x3c172c8, 
throwflag=<optimized out>) at Python/ceval.c:3284
#16 0x00007ffff7a03890 in _PyFunction_FastCall (co=<optimized out>, 
args=<optimized out>, nargs=3, globals=<optimized out>) at 
Python/ceval.c:4880
#17 0x00007ffff7a0479d in call_function (kwnames=0x0, nargs=<optimized 
out>, stack=<optimized out>, func=0x7fffaeddbea0) at Python/ceval.c:4915
#18 0x00007ffff7a0479d in call_function 
(pp_stack=pp_stack@entry=0x7fffffffb4d0, oparg=<optimized out>, 
kwnames=kwnames@entry=0x0) at Python/ceval.c:4819
#19 0x00007ffff7a09e2a in _PyEval_EvalFrameDefault (f=0x7fff1d8e13c8, 
throwflag=<optimized out>) at Python/ceval.c:3284
#20 0x00007ffff7a03890 in _PyFunction_FastCall (co=<optimized out>, 
args=<optimized out>, nargs=2, globals=<optimized out>) at 
Python/ceval.c:4880
#21 0x00007ffff7a0479d in call_function (kwnames=0x0, nargs=<optimized 
out>, stack=<optimized out>, func=0x7fffdbe4e840) at Python/ceval.c:4915
#22 0x00007ffff7a0479d in call_function 
(pp_stack=pp_stack@entry=0x7fffffffb6a0, oparg=<optimized out>, 
kwnames=kwnames@entry=0x0) at Python/ceval.c:4819
#23 0x00007ffff7a09e2a in _PyEval_EvalFrameDefault (f=0x7fff1d8e1208, 
throwflag=<optimized out>) at Python/ceval.c:3284
#24 0x00007ffff7a0423a in _PyEval_EvalCodeWithName (_co=0x2512cb0, 
globals=0x0, locals=0x3dd53b0,
     locals@entry=0x0, args=0x7fff1d8bfca0, argcount=0, kwnames=0x18,
     kwnames@entry=0x0, kwargs=0x8, kwcount=0, kwstep=2, 
defs=0x7fffb1652c20, defcount=2, kwdefs=0x0, closure=0x0, name=0x0, 
qualname=0x0) at Python/ceval.c:4128



On 2017-06-01 08:17, Tristan Croll wrote:

in reply to:  5 ; comment:5 by tic20@…, 8 years ago

Hmm... works fine on my laptop (Fedora 24 with Gnome desktop). So very 
distro-specific.

On 2017-06-01 11:15, ChimeraX wrote:

comment:6 by Greg Couch, 8 years ago

Status: feedbackaccepted

Hi Tristan,

Can you tell us more about the system where it fails? Specifically, run

more /etc/*release* > release-info.txt

And send us the contents of release-info.txt.

Thanks,

Greg

in reply to:  7 ; comment:7 by tic20@…, 8 years ago

Not until the 13th, I'm afraid. It's my office machine, and I fly off early tomorrow morning. It's a quite vanilla CentOS 7 installation, for what it's worth.

 
 
Tristan Croll
Research Fellow
Cambridge Institute for Medical Research
University of Cambridge CB2 0XY
 

 

in reply to:  8 ; comment:8 by tic20@…, 8 years ago

::::::::::::::
/etc/centos-release
::::::::::::::
CentOS Linux release 7.2.1511 (Core)
::::::::::::::
/etc/centos-release-upstream
::::::::::::::
Derived from Red Hat Enterprise Linux 7.2 (Source)
::::::::::::::
/etc/os-release
::::::::::::::
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

::::::::::::::
/etc/redhat-release
::::::::::::::
CentOS Linux release 7.2.1511 (Core)
::::::::::::::
/etc/system-release
::::::::::::::
CentOS Linux release 7.2.1511 (Core)
::::::::::::::
/etc/system-release-cpe
::::::::::::::
cpe:/o:centos:centos:7

On 2017-06-01 19:22, ChimeraX wrote:

comment:9 by Greg Couch, 8 years ago

Can you check if this is still a problem? ChimeraX is has been updated to PyQt 5.9 and Qt 5.9.1. And presumably, you've updated to CentOS 7.3. Thanks, Greg

comment:10 by Greg Couch, 8 years ago

Status: acceptedfeedback

in reply to:  11 ; comment:11 by tic20@…, 8 years ago

Still broken, I'm afraid.

On 2017-09-01 02:50, ChimeraX wrote:

comment:12 by Tristan Croll, 7 years ago

Resolution: fixed
Status: feedbackclosed

Just checked in the latest 0.7 build. No more crash.

Note: See TracTickets for help on using tickets.