Ubuntu 20.10 cannot run previously working Slicer version


I have been using 3D Slicer v4.10.2 on Ubuntu 20.04 without issue. After upgrading to Ubuntu 20.10, 3D Slicer fails at the splash screen.

Are there critical libraries that might be missing between Ubuntu versions?

Do the extra installs listed here help? https://slicer.readthedocs.io/en/latest/user_guide/getting_started.html#linux

Hi @pieper,

I ran those dependency installs right after upgrading to 20.10 so it seems they are not the issue.

Make sure xinerama is installed. That seems to be a common issue for recent Ubuntu and Qt versions.

I have tried uninstalling and re-installing xinerama but v4.10.2 still does not load

Please use the latest stable (currently Slicer-4.11.20200930) and let us knw if it works any better.

yes the latest stable is working. I still require v4.10.2 to run as well (previous workflows rely on this backend). I’m not sure what Slicer v4.10.2 is missing between Ubuntu 20.04 and 20.10.

Should I try to build from v4.10.2 source?

I would not recommend spending time with trying to make the old stable version work. Latest stable version contains so many fixes and improvements that even if you could make the old version work, you would need to switch to the new version for various other reasons. Is there anything specific that is missing/does not work in the latest stable?

10 posts were split to a new topic: Updating modules from Slicer-4.10 to Slicer-4.11

If you want to try debugging some more, try Slicer --launch xterm and then look at the output from running SlicerApp-real in that window. You might also try ldd $(which SlicerApp-real) to see what libraries it might be missing. Also strace $(which SlicerApp-real) will give an idea what it was doing when it died (may need to install strace first).

I ran xterm.
running SlicerApp-real returned:

[1]    2227884 abort (core dumped)  ./bin/SlicerApp-real

running ldd $(which SlicerApp-real) did not return any missing libraries.

running strace $(which SlicerApp-real) I wasn’t sure how to interpret the output. The last bit of output returned:

openat(AT_FDCWD, "/proc/self/status", O_RDONLY) = 42
fstat(42, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
read(42, "Name:\tSlicerApp-real\nUmask:\t0002"..., 1024) = 1024
read(42, "t:\t0-7\nMems_allowed:\t00000000,00"..., 1024) = 393
read(42, "", 1024)                      = 0
close(42)                               = 0
statfs("/selinux", 0x7ffed2edbb10)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/proc/mounts", O_RDONLY) = 42
fstat(42, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
read(42, "sysfs /sys sysfs rw,nosuid,nodev"..., 1024) = 1024
read(42, "f rw,nosuid,nodev,noexec,relatim"..., 1024) = 1024
read(42, "=0,minproto=5,maxproto=5,direct,"..., 1024) = 1024
read(42, "nn-vulkan/86 squashfs ro,nodev,r"..., 1024) = 1024
read(42, "/1880 squashfs ro,nodev,relatime"..., 1024) = 1024
read(42, "uid,nodev,relatime,user_id=1000,"..., 1024) = 1024
read(42, "ypt_aux_mnt1 fuse.veracrypt rw,n"..., 1024) = 226
read(42, "", 1024)                      = 0
close(42)                               = 0
rt_sigprocmask(SIG_UNBLOCK, [ABRT], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, ~[RTMIN RT_1], [], 8) = 0
getpid()                                = 2229838
gettid()                                = 2229838
tgkill(2229838, 2229838, SIGABRT)       = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
--- SIGABRT {si_signo=SIGABRT, si_code=SI_TKILL, si_pid=2229838, si_uid=1000} ---
+++ killed by SIGABRT (core dumped) +++
[1]    2229835 abort (core dumped)  strace $(which SlicerApp-real)

2 posts were merged into an existing topic: Updating modules from Slicer-4.10 to Slicer-4.11

I’m having similar troubles with the latest (stable) version of Slicer. I’m on PopOS 20.10.

Tried running xterm and strace as mentioned earlier on this post with similar-looking output. I can however run Slicer normally if I disable python. I do need python on my Slicer install so I’m wondering if you managed to find a fix for the issue you had.

I’m not familiar enough with the slicer build to debug this python-related issue better. Any guidance on that front would be much appreciated as well

SlicerApp-real must be run using the ./Slicer launcher, which sets up the runtime environment (similarly to other virtual Python environments) before it starts the application.

All other tools must be run using ./Slicer --launch ....

Could you get the stack trace (backtrace) of the crash? (strace prints a list of system calls, which is not that useful for investigating crashes)

Thanks for the super quick response! I have indeed been running Slicer as you’ve pointed out. Here is a snippet of the backtrace I obtained by running -
./Slicer --launch gdb ./bin/SlicerApp-real as mentioned in debug instructions.

Fatal Python error: init_import_size: Failed to import the site module
Python runtime state: initialized
Traceback (most recent call last):
  File "/home/suraj/Repositories/tools/Slicer-4.11.20200930-linux-amd64/bin/../lib/Python/lib/python3.6/site.py", line 553, in <module>
  File "/home/suraj/Repositories/tools/Slicer-4.11.20200930-linux-amd64/bin/../lib/Python/lib/python3.6/site.py", line 539, in main
    known_paths = addusersitepackages(known_paths)
  File "/home/suraj/Repositories/tools/Slicer-4.11.20200930-linux-amd64/bin/../lib/Python/lib/python3.6/site.py", line 282, in addusersitepackages
    user_site = getusersitepackages()
  File "/home/suraj/Repositories/tools/Slicer-4.11.20200930-linux-amd64/bin/../lib/Python/lib/python3.6/site.py", line 258, in getusersitepackages
    user_base = getuserbase() # this will also set USER_BASE
  File "/home/suraj/Repositories/tools/Slicer-4.11.20200930-linux-amd64/bin/../lib/Python/lib/python3.6/site.py", line 248, in getuserbase
    USER_BASE = get_config_var('userbase')
  File "/home/suraj/Repositories/tools/Slicer-4.11.20200930-linux-amd64/lib/Python/lib/python3.6/sysconfig.py", line 601, in get_config_var
    return get_config_vars().get(name)
  File "/home/suraj/Repositories/tools/Slicer-4.11.20200930-linux-amd64/lib/Python/lib/python3.6/sysconfig.py", line 550, in get_config_vars
  File "/home/suraj/Repositories/tools/Slicer-4.11.20200930-linux-amd64/lib/Python/lib/python3.6/sysconfig.py", line 421, in _init_posix
    _temp = __import__(name, globals(), locals(), ['build_time_vars'], 0)
ModuleNotFoundError: No module named '_sysconfigdata__linux_x86_64-linux-gnu'

Tried checking out a bit on this but it seems to be a bit of a dead search (with my knowledge)

We’ve seen this error a couple of times.

Do you have anaconda installed? (see here and here and error reports at many other places)

@Greydon_Gilmore have a look at this post https://discourse.slicer.org/t/cant-start-latest-stable-on-ubuntu-20-04/14029/19

Common causes for Slicer crashing on linux are:

  • Mismatch between the OS OpenSSL version and 3D Slicer version. Check that OpenSSL 1.1.1g is available in the CMake options when you build it (it was added at some point, but not sure it was at 4.10.2)
  • Incompatibility with libffi (see indicated post).

I hope it helps. But as @lassoan mentioned, building old releases of Slicer in new OSs can be challenging. You would be better off migrating to recent OS and Slicer versions.

I did check for a conda environment issue but the issue still persisted. ( Removed conda set environment variables and tried as well. PythonSlicer works perfectly.)

Ended up spending a considerable amount of time, followed by giving up and reverting to PopOS! 20.04

Works without an issue now. (Incase it helps someone in my exact position)

Thanks for your help @lassoan