Do you receive this error while working in the editor or when trying to compile the editor for use the first time? At what point does the message appear? Do you get the same error if you try compiling the 4.7 branch of the engine?
I’ve logged this bug for further investigation. Since the master branch is constantly being updated you may want to get the latest version and check if you’re still blocked. Keep in mind that the master branch is not as stable of a build since it has not gone through the same testing process as a releases branch. As such it is good for testing upcoming features however we do not encourage development on the master branch.
In general whether or not you encounter this error depends on two factors:
how many shared objects that use static TLS are loaded
what is the value DTV_SURPLUS in your glibc.
Ubuntu 14.10 and later set it to 32, while Ubuntu 14.04 and earlier had 14 - both are known to work. Maybe for some reason on Arch more libraries happen to use static TLS (e.g. a difference in mesa/libGL) or DTV_SURPLUS has a lower value (unlikely).
There’s a backlogged bug to get rid of the need to have a static TLS in UE4’s shared objects to reduce the pressure on number of slots, but this is not a priority given that things work on 14.04 and 15.04.
Thanks for the info but unless the number of slots used by UE4 has increased with 4.8, neither should be a problem because, as I mentioned before, 4.7.x works fine on the same system.
Did the amount of slots used by UE4 increase with 4.8?
Callstack for reference:
[Callstack] 02 0x00007f204b912501 ReportCrash(FLinuxCrashContext const&)
[Callstack] 03 0x000000000042e7fb EngineCrashHandler(FGenericCrashContext const&)
[Callstack] 04 0x00007f204b915d28 PlatformCrashHandler(int, siginfo_t*, void*)
[Callstack] 05 0x00007f204c38c740 /usr/lib/libpthread.so.0(+0x10740) [0x7f204c38c740]
[Callstack] 06 0x00007f204b91fabc FOutputDeviceLinuxError::Serialize(wchar_t const*, ELogVerbosity::Type, FName const&)
[Callstack] 07 0x00007f204b9cf935 FOutputDevice::Logf(wchar_t const*, ...)
[Callstack] 08 0x00007f204b9b3a40 FDebug::AssertFailed(char const*, char const*, int, wchar_t const*, ...)
[Callstack] 09 0x00007f2027be24cf PlatformInitOpenGL()
X Error of failed request: BadWindow (invalid Window parameter)
Major opcode of failed request: 24 (X_ConvertSelection)
Resource id in failed request: 0x0
Serial number of failed request: 229
Current serial number in output stream: 230
[Callstack] 10 0x00007f20463fe78a PlatformCrea
You can readelf --dynamic *.so | grep STATIC_TLS | wc -l on both 4.7 and 4.8 and compare. I don’t know of any reason to increase, but it might have (e.g. someone added a __thread variable somewhere). However since we are still not seeing that on Ubuntu 14.04 this makes it suspicious.
Both give the value 5 for me so it stayed the same across engine versions so it must be something else.
When checking the logs, they are the same up to the crash.
4.7 continues normally and starts initializing OpenGL and outputting the extensions so nothing special there. It still works fine.
Since last time, the error now actually shows text as opposed to ‘?’ and the callstack is now completed properly (previously it would get cut-off (as you can see in my previous post)).
Other than that, nothing seems to have changed and 4.7 works perfectly fine whereas 4.8 still does not.
I’ll keep you posted if I happen to find out anything else.
LinuxNativeDialogs changed in 4.8. Remove all libLND-*.so (in Engine\Binaries\ThirdParty\LinuxNativeDialogs.…) except libLND.so itself and see if it gets you any further.
(I’m not sure if libLND will fail to initialize in that case - if it fails, leave one of libLND-*, e.g. gtk2)
Does the same error occur for you if you’re running on Ubuntu with the same graphics drivers and desktop environment? If so can you list how you setup the system and where the crash occurred exactly (trying to install the editor, when opening a project, etc.)?
I have a similar error in archlinux and it was fixed by recompiling glibc to support 32 DTV_SURPLUS instead of 14.
I have a gut feeling that the problem is with my NVIDIA optimus card – I use Bumblebee / Primusrun to use the graphics switching capabilities and I suspect it has some sort of overhead for static TLS. When I have time I’ll go back to the 14 slots and enable the card without usage of bumblebee / primusrun and report back.
Did you use the 4.10 branch or the Release branch when building the engine? At what point did the editor crash (during compile, opening a project, etc.)?