Blender crashes at startup with LLVM error

Greetings. I’m experiencing a major issue with Blender 2.79 on openSUSE Tumbleweed, which affects both the version installed via system packages as well as the one downloaded from https://blender.org and unpacked locally. Blender refuses to run and crashes on startup after the main window appears. If ran from a command line, I get the following error printed to the console:

[email protected]:~> blender
Read prefs: /home/mircea/.config/blender/2.79/config/userpref.blend
mesa: CommandLine Error: Option 'enable-value-profiling' registered more than once!
LLVM ERROR: inconsistency in registered CommandLine options
[email protected]:~> 

I googled the last two lines, and from what I gathered it has to do with a bug involving multiple LLVM versions. I checked my system packages via YaST, and the only version I now have installed is LLVM 4.0.1. Unfortunately removing LLVM 3.8 and restarting X11 did not affect the problem.

I need to be able to run Blender again quickly. Does anyone know how to fix those problems please? Note that I cannot downgrade my OS system packages nor attempt risky experiments, as this is my Desktop computer and I can’t afford a broken machine. Thank you.

As recommended by someone on IRC, here’s the output of running blender with the ‘strace’ command. I also forgot to mention that the issue started happening after a system package update, either last night or this morning.

[email protected]:~> strace -e open blender
open("/proc/sys/vm/overcommit_memory", O_RDONLY|O_CLOEXEC) = 3
open("/sys/devices/system/node", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
open("/sys/devices/system/cpu", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
open("/sys/devices/system/cpu", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
open("/sys/devices/system/cpu/online", O_RDONLY|O_CLOEXEC) = 3
open("/usr/lib64/audaspace-1.3/plugins", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
open("/etc/mtab", O_RDONLY|O_CLOEXEC)   = 4
open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 4
open("/usr/lib/locale/en_US.UTF-8/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/locale/en_US.utf8/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = 4
open("/usr/lib64/gconv/gconv-modules.cache", O_RDONLY) = 4
open("/usr/lib/locale/en_US.UTF-8/LC_MEASUREMENT", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/locale/en_US.utf8/LC_MEASUREMENT", O_RDONLY|O_CLOEXEC) = 4
open("/usr/lib/locale/en_US.UTF-8/LC_TELEPHONE", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/locale/en_US.utf8/LC_TELEPHONE", O_RDONLY|O_CLOEXEC) = 4
open("/usr/lib/locale/en_US.UTF-8/LC_ADDRESS", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/locale/en_US.utf8/LC_ADDRESS", O_RDONLY|O_CLOEXEC) = 4
open("/usr/lib/locale/en_US.UTF-8/LC_NAME", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/locale/en_US.utf8/LC_NAME", O_RDONLY|O_CLOEXEC) = 4
open("/usr/lib/locale/en_US.UTF-8/LC_PAPER", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/locale/en_US.utf8/LC_PAPER", O_RDONLY|O_CLOEXEC) = 4
open("/usr/lib/locale/en_US.UTF-8/LC_MESSAGES", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/locale/en_US.utf8/LC_MESSAGES", O_RDONLY|O_CLOEXEC) = 4
open("/usr/lib/locale/en_US.utf8/LC_MESSAGES/SYS_LC_MESSAGES", O_RDONLY|O_CLOEXEC) = 4
open("/usr/lib/locale/en_US.UTF-8/LC_MONETARY", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/locale/en_US.utf8/LC_MONETARY", O_RDONLY|O_CLOEXEC) = 4
open("/usr/lib/locale/en_US.UTF-8/LC_COLLATE", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/locale/en_US.utf8/LC_COLLATE", O_RDONLY|O_CLOEXEC) = 4
open("/usr/lib/locale/en_US.UTF-8/LC_TIME", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/locale/en_US.utf8/LC_TIME", O_RDONLY|O_CLOEXEC) = 4
open("/usr/lib/locale/en_US.UTF-8/LC_NUMERIC", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/locale/en_US.utf8/LC_NUMERIC", O_RDONLY|O_CLOEXEC) = 4
open("/usr/lib/locale/en_US.UTF-8/LC_CTYPE", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/locale/en_US.utf8/LC_CTYPE", O_RDONLY|O_CLOEXEC) = 4
open("/etc/pulse/client.conf.d", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 7
open("/dev/shm/", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 6
open("/etc/pulse/client.conf.d", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 12
open("/dev/shm/", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 11
open("/dev/dri", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 15
open("/dev/dri", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 15
open("/dev/dri", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 15
open("/dev/dri", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 16
open("/dev/dri", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 16
open("/usr/lib64/python3.6", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 17
open("/usr/lib64/python3.6/encodings", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 17
open("/usr/lib64/python3.6/site-packages", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 17
open("/usr/lib64/python3.6/lib-dynload", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 18
open("/usr/lib64/python3.6/collections", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 18
open("/usr/lib64/python3.6/importlib", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 18
open("/usr/lib64/python3.6/site-packages", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 18
open("/usr/lib/python3.6/site-packages", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 17
open("/usr/lib/python3.6/site-packages", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 18
open("/usr/lib64/python3.6/site-packages/PIL", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 17
open("/usr/lib64/python3.6/_import_failed", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 17
open("/usr/share/blender/2.79/scripts/modules", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 17
open("/usr/share/blender/2.79/scripts/modules/bpy", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 17
open("/usr/share/blender/2.79/scripts/startup", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 17
open("/usr/share/blender/2.79/scripts/startup", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 17
open("/usr/share/blender/2.79/scripts/startup/bl_operators", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 17
open("/usr/share/blender/2.79/scripts/modules/bpy_extras", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 17
open("/usr/share/blender/2.79/scripts/startup/bl_ui", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 17
open("/home/mircea/.config/blender/2.79/scripts/addons", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 17
open("/usr/share/blender/2.79/scripts/addons", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 17
open("/usr/share/blender/2.79/scripts/addons/cycles", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 17
open("/etc/OpenCL/vendors", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 17
open("/dev/dri", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 19
open("/dev/dri", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 19
open("/dev/dri", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 19
open("/dev/dri", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 19
open("/sys/devices/system/cpu/online", O_RDONLY|O_CLOEXEC) = 19
mesa: CommandLine Error: Option 'enable-value-profiling' registered more than once!
LLVM ERROR: inconsistency in registered CommandLine options
+++ exited with 1 +++
[email protected]:~> 

I have found the problem and its solution! Kudos to this thread for that.

The issue is in fact caused by having multiple OpenCL ICD’s installed at the same time, and will crash every OpenCL application on the system. In my case I had both “libOpenCL1” and “pocl” installed simultaneously, and after removing pocl Blender now runs flawlessly again. pocl was likely recommended by another system package as of last night’s openSUSE Tumbleweed snapshot, which is how it came to be on my system and conflict the existing ICD; If I run ‘zypper dup’ again it wants to reinstall that package, so for the time being I will have to blacklist it to avoid this problem.

This honestly looks like a serious issue, and I hope my report helps bring it to light for a potential solution. This isn’t a Blender problem as I initially thought, but either an openSUSE packaging concern or a bug in MESA. If anyone knows I’d like to hear your feedback.

I’m still wondering how this statement fits together with using Tumbleweed… Isn’t that exactly the price you have to pay for using a rolling release distro: Major bugs appearing out of nowhere in a production system?

Tumbleweed is a stable rolling release distro, consisting only of official releases of every system package in tested snapshots… unlike Factory which packs together untested bundles of the latest experimental versions of every package. It’s really the equivalent of a Windows user updating every program and driver on their system every few days. Funny how people think that “rolling release” automatically means “unstable”, which has rarely been the case with TW.