Opening extension manager makes Slicer crash on Linux

Operating system: Linux 4.15.0-50-generic #54-Ubuntu SMP Mon May 6 18:46:08 UTC 2019
Slicer version: Slicer-4.10.2-linux-amd64

This problem occurs when I try to open the extension manager by clicking the button “Install Slicer Extensions”

Expected behavior: Be able to browse and install extensions within the extension manager
Actual behavior: Opens a new window named “Extension Manager” loading a bunch of things, then all windows close.

Note: This only happens when connected to internet. When not connected. The window “Extension Manager” shows up written “No internet connection” and remains. No crash.

What I’ve tried: Reinstalling the same version of Slicer. No difference. Tried messing with my connection, but it seems that no matter what I do I cannot have an internet connection and the extension manager open with other than “No internet connection” screen. I’ve looked at this : Nightly Slicer crashes trying to open Extension Manager but haven’t found any file named Slicer.ini in my install.

Stack trace:

soft/Slicer-4.10.2-linux-amd64/Slicer 
Switch to module:  "Welcome"
An OpenGL Core Profile was requested, but it is not supported on the current platform. Falling back to a non-Core profile. Note that this might cause rendering issues.
[0715/111643.154822:WARNING:stack_trace_posix.cc(699)] Failed to open file: /home/apfauwadel/#16654149 (deleted)
  Error: No such file or directory
Received signal 11 SEGV_MAPERR 7fdc00000000
#0 0x7fddee93d52f <unknown>
#1 0x7fdded36eb1d <unknown>
#2 0x7fddee93da3e <unknown>
#3 0x7fdde2949890 <unknown>
#4 0x7fddccee7207 __libc_malloc
#5 0x7fddcd4ec258 operator new()
#6 0x7fddeddcae8e <unknown>
#7 0x7fddf3dec731 QtWebEngineCore::RenderWidgetHostViewQtDelegateWidget::resizeEvent()
#8 0x7fddd897be22 QWidget::event()
#9 0x7fddcc2b7b2b QQuickWidget::event()
#10 0x7fddf3dec946 QtWebEngineCore::RenderWidgetHostViewQtDelegateWidget::event()
#11 0x7fddd893ee2c QApplicationPrivate::notify_helper()
#12 0x7fddd8945f60 QApplication::notify()
#13 0x7fddf65eb9dc qSlicerApplication::notify()
#14 0x7fddd7aef2d8 QCoreApplication::notifyInternal2()
#15 0x7fddd897340e QWidgetPrivate::setGeometry_sys()
#16 0x7fddd89740d0 QWidget::setGeometry()
#17 0x7fddd895df2c QWidgetItem::setGeometry()
#18 0x7fddd8954278 QBoxLayout::setGeometry()
#19 0x7fddd895a48b QLayoutPrivate::doResize()
#20 0x7fddd893edfa QApplicationPrivate::notify_helper()
#21 0x7fddd8945f60 QApplication::notify()
#22 0x7fddf65eb9dc qSlicerApplication::notify()
#23 0x7fddd7aef2d8 QCoreApplication::notifyInternal2()
#24 0x7fddd897340e QWidgetPrivate::setGeometry_sys()
#25 0x7fddd89740d0 QWidget::setGeometry()
#26 0x7fddd895df2c QWidgetItem::setGeometry()
#27 0x7fddd8954278 QBoxLayout::setGeometry()
#28 0x7fddd895a48b QLayoutPrivate::doResize()
#29 0x7fddd895b4a0 QLayout::activate()
#30 0x7fddd893edfa QApplicationPrivate::notify_helper()
#31 0x7fddd8945f60 QApplication::notify()
#32 0x7fddf65eb9dc qSlicerApplication::notify()
#33 0x7fddd7aef2d8 QCoreApplication::notifyInternal2()
#34 0x7fddd7af1ceb QCoreApplicationPrivate::sendPostedEvents()
#35 0x7fddd7b43d93 postEventSourceDispatch()
#36 0x7fddcc726417 g_main_context_dispatch
#37 0x7fddcc726650 <unknown>
#38 0x7fddcc7266dc g_main_context_iteration
#39 0x7fddd7b433ff QEventDispatcherGlib::processEvents()
#40 0x7fddc27c00d1 QPAEventDispatcherGlib::processEvents()
#41 0x7fddd7aedc3a QEventLoop::exec()
#42 0x7fddd8b1bb37 QDialog::exec()
#43 0x7fddf65ec084 qSlicerApplication::openExtensionsManagerDialog()
#44 0x7fddf6680c85 qSlicerApplication::qt_static_metacall()
#45 0x7fddd7b1a189 QMetaObject::activate()
#46 0x7fddd8a233a2 QAbstractButton::clicked()
#47 0x7fddd8a235a4 QAbstractButtonPrivate::emitClicked()
#48 0x7fddd8a2513e QAbstractButtonPrivate::click()
#49 0x7fddd8a25295 QAbstractButton::mouseReleaseEvent()
#50 0x7fddd897b688 QWidget::event()
#51 0x7fddd893ee2c QApplicationPrivate::notify_helper()
#52 0x7fddd8946a13 QApplication::notify()
#53 0x7fddf65eb9dc qSlicerApplication::notify()
#54 0x7fddd7aef2d8 QCoreApplication::notifyInternal2()
#55 0x7fddd894550f QApplicationPrivate::sendMouseEvent()
#56 0x7fddd89951dd QWidgetWindow::handleMouseEvent()
#57 0x7fddd8997ae3 QWidgetWindow::event()
#58 0x7fddd893ee2c QApplicationPrivate::notify_helper()
#59 0x7fddd8945f60 QApplication::notify()
#60 0x7fddf65eb9dc qSlicerApplication::notify()
#61 0x7fddd7aef2d8 QCoreApplication::notifyInternal2()
1 Like

(can’t find the edit button anymore)

I’ve tried with Slicer 4.11.0-2019-07-13-linux-amd64 as well, with no success.

Interesting - thanks for the report. I suspect this is some kind of Qt/Linux interaction. On my linux machine I get the same warning about the Core Profile not supported and the same stack_trace_posix warning, but then I do not get the crash (the Extension Manager window and everything else works as expected).

I tested both 4.10.2 and today’s nightly on ubuntu 18.04.

1 Like

Slicer.ini is in your profile folder. You can get your Slicer.ini path by running:

./Slicer --settings-path

We had to enable compatibility profile for Windows by default. Maybe we would need to enable it for Linux, too. Could you please try if things improve if you enable compatibility profile by setting SLICER_OPENGL_PROFILE environment variable to compatibility before launching Slicer? Does the warning still appear? Does the web browser still crash?

If all else fails, you can download extensions and install them manually (with internet disconnected) as described here.

Editing of forum posts is limited to a certain time limit to avoid spammers to inject malicious URLs into their posts after discussion is no longer active.

1 Like

Thank you for your replies.

After deleting the Slicer.ini file, I get pretty much the same error again :

~/soft/Slicer-4.10.2-linux-amd64$ ./Slicer
Switch to module:  "Welcome"
An OpenGL Core Profile was requested, but it is not supported on the current platform. Falling back to a non-Core profile. Note that this might cause rendering issues.
[0715/171141.426489:WARNING:stack_trace_posix.cc(699)] Failed to open file: /home/apfauwadel/#16654229 (deleted)
  Error: No such file or directory
nouveau: kernel rejected pushbuf: No such file or directory
nouveau: ch8: krec 0 pushes 0 bufs 1 relocs 0
nouveau: ch8: buf 00000000 00000002 00000004 00000004 00000000
SlicerApp-real: ../nouveau/pushbuf.c:723: nouveau_pushbuf_data: Assertion `kref' failed.
Received signal 6
#0 0x7f341476952f <unknown>
#1 0x7f341319ab1d <unknown>
#2 0x7f3414769a3e <unknown>
#3 0x7f3408775890 <unknown>
#4 0x7f33f2cbae97 gsignal
#5 0x7f33f2cbc801 abort
#6 0x7f33f2cac39a <unknown>
#7 0x7f33f2cac412 __assert_fail
#8 0x7f33e4fdb9ad nouveau_pushbuf_data
#9 0x7f33e4fdb966 nouveau_pushbuf_data
#10 0x7f33e4fdba3f <unknown>
#11 0x7f33e4fdbeaf <unknown>
#12 0x7f33e4fdca40 nouveau_pushbuf_kick
#13 0x7f33e5a85186 <unknown>
#14 0x7f33e568bb8b <unknown>
#15 0x7f33e585020a <unknown>
#16 0x7f33e7422d88 <unknown>
#17 0x7f33e7874db2 QGLXContext::swapBuffers()
#18 0x7f33fdf83b3c QOpenGLContext::swapBuffers()
#19 0x7f33fe1eebeb QPlatformBackingStore::composeAndFlush()
#20 0x7f33e856fd0f QXcbBackingStore::composeAndFlush()
#21 0x7f33fe776faa QWidgetBackingStore::qt_flush()
#22 0x7f33fe7783c1 QWidgetBackingStore::flush()
#23 0x7f33fe77a0d0 QWidgetBackingStore::doSync()
#24 0x7f33fe77a300 QWidgetBackingStore::sync()
#25 0x7f33fe7908df QWidgetPrivate::syncBackingStore()
#26 0x7f33fe7a7790 QWidget::event()
#27 0x7f33fe76ae2c QApplicationPrivate::notify_helper()
#28 0x7f33fe771f60 QApplication::notify()
#29 0x7f341c4179dc qSlicerApplication::notify()
#30 0x7f33fd91b2d8 QCoreApplication::notifyInternal2()
#31 0x7f33fe77aa5d QWidgetBackin

This seems to be a crash in Nouveau display driver (see for example here, but there are many other similar reports). Could you try to switch graphic driver (e.g., to one provided by nVidia)?

Does setting of SLICER_OPENGL_PROFILE to compatibility make any difference?

Setting of SLICER_OPENGL_PROFILE to compatibility does not seem to make any difference. Actually, the last stack trace I’ve provided is with SLICER_OPENGL_PROFILE set to compatibility, and without Slicer.ini as well. I’ve tried just setting the variable to compatibility without deleting Slicer.ini, it didn’t change anything either.

I’m working on the display driver switch.

Same problem here (Arch linux)

@pieper Does setting SLICER_OPENGL_PROFILE to compatibility make the core profile warning disappear for you?

Do you mean that you have OpenGL core profile warning on application startup, or extension manager crash (potentially due to incompatible display driver)?

No difference. I also tried the no and core options but always get the same result. (Something else is odd today with those Operation canceled messages, but they also appear on mac so probably unrelated to this issue). The extension manager operates normally for me in spite of these messages.

$ SLICER_OPENGL_PROFILE=compatibility ./Slicer-4.10.2-linux-amd64/Slicer 
Switch to module:  "Welcome"
Loading Slicer RC file [/home/pieper/.slicerrc.py]
Segmentation nodes will be stored uncompressed by default
An OpenGL Core Profile was requested, but it is not supported on the current platform. Falling back to a non-Core profile. Note that this might cause rendering issues.
[0716/091617.790781:WARNING:stack_trace_posix.cc(699)] Failed to open file: /home/pieper/#29148638 (deleted)
  Error: No such file or directory

DevTools listening on ws://127.0.0.1:1337/devtools/browser/2271ba07-bbe5-4039-83e1-d0ea424e8e40
Remote debugging server started successfully. Try pointing a Chromium-based browser to http://127.0.0.1:1337
"{6bb547eb-0a4f-4952-bd43-c66ca0631563}: 5: Operation canceled"
"{9c2f679b-863d-425f-ba5d-a3c9aaf41bac}: 5: Operation canceled"
"{1f692201-84bc-420d-b312-1bb68b2b24bd}: 5: Operation canceled"
"{5f96d5e8-fc98-40d3-8d23-8d64541ce9c9}: 5: Operation canceled"
"{12ddc7e1-0382-495c-89ff-389a21e866d8}: 5: Operation canceled"
"{eac26abb-1e9f-4d82-90cd-a3f8ef1419a0}: 5: Operation canceled"
[1843:2193:0716/091756.735071:ERROR:nss_ocsp.cc(614)] No URLRequestContext for NSS HTTP handler. host: ocsp.digicert.com
[1843:2193:0716/091756.735092:ERROR:nss_ocsp.cc(614)] No URLRequestContext for NSS HTTP handler. host: ocsp.digicert.com
[1843:2193:0716/091756.735108:ERROR:nss_ocsp.cc(614)] No URLRequestContext for NSS HTTP handler. host: crl4.digicert.com
[1843:2193:0716/091756.736059:ERROR:nss_ocsp.cc(614)] No URLRequestContext for NSS HTTP handler. host: ocsp.digicert.com
[1843:2193:0716/091756.736068:ERROR:nss_ocsp.cc(614)] No URLRequestContext for NSS HTTP handler. host: ocsp.digicert.com
[1843:2193:0716/091756.736081:ERROR:nss_ocsp.cc(614)] No URLRequestContext for NSS HTTP handler. host: crl4.digicert.com

Selection of profile was introduced after 4.10.2. Could you try with a recent nightly?

I often get those on Windows, too, especially on my desktop where I have many extensions installed. I suspect that it indicates the querying of available updates for installed extensions is timing out.

Same result with the current nightly, the environment variable has no effect.

Oddly my local (debug) build on the same linux system doesn’t have the error message. Extension manager dialog works for all combinations.

Is the reported profile changing in the application log? There should be a log line like this:

Qt configuration .........: version 5.10.1, with SSL, requested OpenGL 3.2 (compatibility profile)

If it is not changing then maybe the environment variable is not checked correctly (I’ve only tested it on Windows).

Yes, the log shows the environment variable worked.

[DEBUG][Qt] 16.07.2019 16:15:19 [] (unknown:0) - Qt configuration .........: version 5.11.2, with SSL, requested OpenGL 3.2 (compatibility profile)

For this log entry, we check value in QSurfaceFormat::defaultFormat(), so it really is the surface format that Slicer uses. Maybe the log entry is generated by the webengine process. What Qt version do you use in your local build that does not generate the error?

This error seems to be very common on linux systems. Upgrading from Qt 5.10 to 5.12 fixed this linux crash for some projects https://github.com/CBICA/CaPTk/issues/277).

My local build is 5.8.0. Maybe too old for the problem.

I have the same issue with Slicer-4.10.2-linux-amd64. When I try to launch the ExtensionManager, Slicer crashes:

$ ./Slicer
Switch to module:  "Welcome"
An OpenGL Core Profile was requested, but it is not supported on the current platform. Falling back to a non-Core profile. Note that this might cause rendering issues.
[0722/172516.028558:WARNING:stack_trace_posix.cc(699)] Failed to open file: /tmp/ffiAUn5xo (deleted)
  Error: No such file or directory
[16503:17205:0722/172516.706419:ERROR:gl_surface_glx_qt.cpp(186)] glXCreatePbuffer failed.
Received signal 11 SEGV_MAPERR 000000000000
#0 0x7f4a25c7b52f <unknown>
#1 0x7f4a246acb1d <unknown>
#2 0x7f4a25c7ba3e <unknown>
#3 0x7f4a19c876d0 <unknown>
#4 0x7f4a2470e34d <unknown>
#5 0x7f4a246f9ae8 <unknown>
#6 0x7f4a267b769d <unknown>
#7 0x7f4a249fd6d1 <unknown>
#8 0x7f4a249feec5 <unknown>
#9 0x7f4a26c6da67 <unknown>
#10 0x7f4a28487605 <unknown>
#11 0x7f4a25ce3ee5 <unknown>
#12 0x7f4a25cdf280 <unknown>
#13 0x7f4a19c7fe25 start_thread
#14 0x7f4a04cbcbad __clone

In case it is helpful, I have the following OpenGL configuration:

$ glxinfo | grep version
server glx version string: 1.4 Mesa 18.1.1
client glx version string: 1.4 Mesa 18.1.1
GLX version: 1.4
OpenGL core profile version string: 3.3 (Core Profile) Mesa 18.1.1
OpenGL core profile shading language version string: 3.30
OpenGL version string: 3.1 Mesa 18.1.1
OpenGL shading language version string: 1.40
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 18.1.1
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00

Like @pieper, falling back to other profiles didn’t help either.

Question, is there a way to install extensions without using Extension Manager on the GUI?
@lassoan @pieper

Obviously building Slicer is an option, but not the most preferred one on ERIS cluster nodes with no sudo access.

Yes, as a workaround you can download and open the archive outside Slicer, then just set the paths so the modules are discovered (either via the settings or with --additional-module-paths on the command line)

https://www.slicer.org/wiki/Documentation/Nightly/SlicerApplication/ExtensionsManager#How_to_manually_install_an_extension_package.3F

This is a good suggestion, except http://slicer.kitware.com/midas3/slicerappstore is taking forever to load. Is the link active?