Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Linux Steam version crashes on startup (segfault) #569

Closed
RainOrigami opened this issue Aug 1, 2021 · 6 comments
Closed

Linux Steam version crashes on startup (segfault) #569

RainOrigami opened this issue Aug 1, 2021 · 6 comments
Labels
bug Something isn't working

Comments

@RainOrigami
Copy link

RainOrigami commented Aug 1, 2021

Describe the bug
The Steam version of OpenVR-AdvancedSettings refuses to start. It works fine with the AUR version. The log from Steam when trying:

[INFO] 2021-08-01 14:26:52: Application started (Version 5.3.2)
[INFO] 2021-08-01 14:26:52: Log File: /home/myuser/.local/share/AdvancedSettings-Team/AdvancedSettings.log
[INFO] 2021-08-01 14:26:52: Settings File: /home/myuser/.config/AdvancedSettings-Team/OVR Advanced Settings.ini
[INFO] 2021-08-01 14:26:52: defaultlockXToggle: 'false' | lockYToggle: 'false' | lockZToggle: 'false' | momentumSave: 'false' | turnBindLeft: 'true' | turnBindRight: 'false' | turnBounds: 'false' | moveShortcutLeft: 'true' | moveShortcutRight: 'true' | dragBounds: 'false' | allowExternalEdits: 'false' | oldStyleMotion: 'false' | universeCenteredRotation: 'false' | enableSeatedMotion: 'false' | adjustChaperone: 'true' | showLogMatricesButton: 'false' | simpleRecenter: 'false' | adjustChaperone2: 'false' | disableVersionCheck: 'false' | previousShutdownSafe: 'true' | vsyncDisabled: 'false' | crashRecoveryDisabled: 'false' | enableDebug: 'false' | enableExclusiveInput: 'false' | pttEnabled: 'true' | pttShowNotification: 'true' | micProximitySensorCanMute: 'false' | micReversePtt: 'false' | alarmEnabled: 'false' | alarmIsModal: 'true' | vrcDebug: 'false' | brightnessEnabled: 'false' | isOverlayMethodActive: 'false' | colorOverlayEnabled: 'false' | chaperoneSwitchToBeginnerEnabled: 'false' | chaperoneHapticFeedbackEnabled: 'false' | chaperoneAlarmSoundEnabled: 'false' | chaperoneAlarmSoundLooping: 'true' | chaperoneAlarmSoundAdjustVolume: 'false' | chaperoneShowDashboardEnabled: 'false' | disableChaperone: 'false' | centerMarkerNew: 'false' | autoturnEnabled: 'false' | autoturnUseCornerAngle: 'true' | autoturnVestibularMotionEnabled: 'false' | autoturnViewRatchettingEnabled: 'false' | autoturnShowNotification: 'true' | defaultheightToggleOffset: '-1.000000' | gravityStrength: '9.800000' | flingStrength: '1.000000' | brightnessOpacityValue: '1.000000' | colorOverlayOpacity: '0.000000' | colorRedNew: '1.000000' | colorGreenNew: '1.000000' | colorBlueNew: '1.000000' | chaperoneSwitchToBeginnerDistance: '0.500000' | chaperoneHapticFeedbackDistance: '0.500000' | chaperoneAlarmSoundDistance: '0.500000' | chaperoneShowDashboardDistance: '0.500000' | fadeDistanceRemembered: '0.500000' | activationDistance: '0.400000' | deactivateDistance: '0.150000' | cordDetanglingAngle: '0.261799' | autoturnMinCordTangle: '6.283185' | autoturnVestibularMotionRadius: '22.000000' | autoturnViewRatchettingPercent: '0.050000' | defaultkeyboardOne: '^>m' | keyboardTwo: '^>m' | keyboardThree: '^>m' | keyPressmisc: 'F9' | keyPressSystem: 'F9' | defaultsnapTurnAngle: '4500' | smoothTurnRate: '100' | dragComfortFactor: '0' | turnComfortFactor: '0' | frictionPercent: '0' | debugState: '0' | customTickRateMs: '20' | alarmHour: '0' | alarmMinute: '0' | alarmSecond: '0' | autoturnLinearTurnSpeed: '45000' | autoturnMode: '1' | 
/home/myuser/.local/share/Steam/steamapps/common/OVR_AdvancedSettings/run.sh: line 3: 83943 Segmentation fault      (core dumped) ./OVRAS.AppImage
Game removed: AppID 1009850 "", ProcID 83938 
Uploaded AppInterfaceStats to Steam
Exiting app 1009850

To Reproduce
Steps to reproduce the behavior:

  1. Get Manjaro Linux
  2. Install steam-native
  3. Install ovras through steam
  4. Install required dependencies (from building_for_linux document)
  5. Run SteamVR
  6. Run ovras

Expected behavior
Ovras to start and put the ovras settings button in my SteamVR menu.

Screenshots
See log above.

Software (please complete the following information):

  • OS: Manjaro Linux x86_64 Kernel 5.10.53-1-MANJARO
  • Advanced Settings Version: 5.3.2

Hardware (please complete the following information):

  • CPU: AMD Ryzen 5 3600 (12) @ 3.600GHz
  • Graphics Card: NVIDIA GeForce RTX 2080 SUPER
  • HMD: Valve Index

Additional context
Deleting /home/myuser/.config/AdvancedSettings-Team/OVR Advanced Settings.ini between launches of different versions (AUR/Steam) yielded no different result. Note that initially only the Steam version was installed but since it didn't start and yielded no useful output I installed the AUR version which complained about missing Qt5 packages. After installing them and the AUR version starting I expected the Steam version to work as well since all missing dependencies seemed to be installed now.
The log file /home/myuser/.local/share/AdvancedSettings-Team/AdvancedSettings.log only shows the same lines as the steam log above, excluding the segfault and trailing lines.
I wished I had a clue how AppImage files work and how to get any actual useful information from the crash instead of just segfault. When running the AUR version without the required dependencies it would at least print an error relating to the issue but the AppImage version just crashes.

@RainOrigami RainOrigami added the bug Something isn't working label Aug 1, 2021
@RainOrigami
Copy link
Author

I might have more information that may be useful. I've ran the AppImage using gdb and the output and stack is as follows:

Reading symbols from ./OVRAS.AppImage...
(No debugging symbols found in ./OVRAS.AppImage)
(gdb) run
Starting program: /home/myuser/.local/share/Steam/steamapps/common/OVR_AdvancedSettings/OVRAS.AppImage 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[Detaching after fork from child process 183415]
process 183411 is executing new program: /tmp/.mount_OVRAS.i0TIB6/usr/bin/AdvancedSettings
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[INFO] 2021-08-01 15:00:00: Application started (Version 5.3.2)
[INFO] 2021-08-01 15:00:00: Log File: /home/myuser/.local/share/AdvancedSettings-Team/AdvancedSettings.log
[INFO] 2021-08-01 15:00:00: Settings File: /home/myuser/.config/AdvancedSettings-Team/OVR Advanced Settings.ini
[INFO] 2021-08-01 15:00:00: defaultlockXToggle: 'false' | lockYToggle: 'false' | lockZToggle: 'false' | momentumSave: 'false' | turnBindLeft: 'true' | turnBindRight: 'false' | turnBounds: 'false' | moveShortcutLeft: 'true' | moveShortcutRight: 'true' | dragBounds: 'false' | allowExternalEdits: 'false' | oldStyleMotion: 'false' | universeCenteredRotation: 'false' | enableSeatedMotion: 'false' | adjustChaperone: 'true' | showLogMatricesButton: 'false' | simpleRecenter: 'false' | adjustChaperone2: 'false' | disableVersionCheck: 'false' | previousShutdownSafe: 'false' | vsyncDisabled: 'false' | crashRecoveryDisabled: 'false' | enableDebug: 'false' | enableExclusiveInput: 'false' | pttEnabled: 'true' | pttShowNotification: 'true' | micProximitySensorCanMute: 'false' | micReversePtt: 'false' | alarmEnabled: 'false' | alarmIsModal: 'true' | vrcDebug: 'false' | brightnessEnabled: 'false' | isOverlayMethodActive: 'false' | colorOverlayEnabled: 'false' | chaperoneSwitchToBeginnerEnabled: 'false' | chaperoneHapticFeedbackEnabled: 'false' | chaperoneAlarmSoundEnabled: 'false' | chaperoneAlarmSoundLooping: 'true' | chaperoneAlarmSoundAdjustVolume: 'false' | chaperoneShowDashboardEnabled: 'false' | disableChaperone: 'false' | centerMarkerNew: 'false' | autoturnEnabled: 'false' | autoturnUseCornerAngle: 'true' | autoturnVestibularMotionEnabled: 'false' | autoturnViewRatchettingEnabled: 'false' | autoturnShowNotification: 'true' | defaultheightToggleOffset: '-1.000000' | gravityStrength: '9.800000' | flingStrength: '1.000000' | brightnessOpacityValue: '1.000000' | colorOverlayOpacity: '0.000000' | colorRedNew: '1.000000' | colorGreenNew: '1.000000' | colorBlueNew: '1.000000' | chaperoneSwitchToBeginnerDistance: '0.500000' | chaperoneHapticFeedbackDistance: '0.500000' | chaperoneAlarmSoundDistance: '0.500000' | chaperoneShowDashboardDistance: '0.500000' | fadeDistanceRemembered: '0.500000' | activationDistance: '0.400000' | deactivateDistance: '0.150000' | cordDetanglingAngle: '0.261799' | autoturnMinCordTangle: '6.283185' | autoturnVestibularMotionRadius: '22.000000' | autoturnViewRatchettingPercent: '0.050000' | defaultkeyboardOne: '^>m' | keyboardTwo: '^>m' | keyboardThree: '^>m' | keyPressmisc: 'F9' | keyPressSystem: 'F9' | defaultsnapTurnAngle: '4500' | smoothTurnRate: '100' | dragComfortFactor: '0' | turnComfortFactor: '0' | frictionPercent: '0' | debugState: '0' | customTickRateMs: '20' | alarmHour: '0' | alarmMinute: '0' | alarmSecond: '0' | autoturnLinearTurnSpeed: '45000' | autoturnMode: '1' | 
[New Thread 0x7fffee0c9640 (LWP 183428)]

Thread 1 "AppRun" received signal SIGSEGV, Segmentation fault.
0x00007fffee6914c3 in ?? () from /usr/lib/libxkbcommon-x11.so.0
(gdb) info stack
#0  0x00007fffee6914c3 in ?? () from /usr/lib/libxkbcommon-x11.so.0
#1  0x00007fffee691d4f in xkb_x11_keymap_new_from_device () from /usr/lib/libxkbcommon-x11.so.0
#2  0x00007ffff02b859a in ?? () from /tmp/.mount_OVRAS.i0TIB6/usr/plugins/platforms/../../lib/libQt5XcbQpa.so.5
#3  0x00007ffff02b88f8 in ?? () from /tmp/.mount_OVRAS.i0TIB6/usr/plugins/platforms/../../lib/libQt5XcbQpa.so.5
#4  0x00007ffff02b00a8 in QXcbConnection::QXcbConnection(QXcbNativeInterface*, bool, unsigned int, char const*) () from /tmp/.mount_OVRAS.i0TIB6/usr/plugins/platforms/../../lib/libQt5XcbQpa.so.5
#5  0x00007ffff02b446c in QXcbIntegration::QXcbIntegration(QStringList const&, int&, char**) () from /tmp/.mount_OVRAS.i0TIB6/usr/plugins/platforms/../../lib/libQt5XcbQpa.so.5
#6  0x00007ffff59fa6ed in ?? () from /tmp/.mount_OVRAS.i0TIB6/usr/plugins/platforms/libqxcb.so
#7  0x00007ffff67c0c9b in QPlatformIntegrationFactory::create(QString const&, QStringList const&, int&, char**, QString const&) () from /tmp/.mount_OVRAS.i0TIB6/usr/bin/../lib/libQt5Gui.so.5
#8  0x00007ffff67cec57 in QGuiApplicationPrivate::createPlatformIntegration() () from /tmp/.mount_OVRAS.i0TIB6/usr/bin/../lib/libQt5Gui.so.5
#9  0x00007ffff67cfd5d in QGuiApplicationPrivate::createEventDispatcher() () from /tmp/.mount_OVRAS.i0TIB6/usr/bin/../lib/libQt5Gui.so.5
#10 0x00007ffff5c89d6f in QCoreApplicationPrivate::init() () from /tmp/.mount_OVRAS.i0TIB6/usr/bin/../lib/libQt5Core.so.5
#11 0x00007ffff67d193e in QGuiApplicationPrivate::init() () from /tmp/.mount_OVRAS.i0TIB6/usr/bin/../lib/libQt5Gui.so.5
#12 0x00007ffff6e4e439 in QApplicationPrivate::init() () from /tmp/.mount_OVRAS.i0TIB6/usr/bin/../lib/libQt5Widgets.so.5
#13 0x000000000040c0d7 in main ()

@username223
Copy link
Member

Thanks for the excellent issue report.

I believe this is related to issue #455.

Could you ensure that the libxkbcommon-x11.so.0 file has been removed from the AppImage?

And if it has been, could you try removing all libx*.so files from the AppImage and running it again?

@RainOrigami
Copy link
Author

I have extracted the AppImage and found the following matches:

./usr/lib/libxkbcommon.so.0
./usr/share/doc/libxkbcommon0
./usr/share/doc/libxkbcommon0/copyright

No occurence of libxkbcommon-x11.so.0.
There are also no specific libx*.so files but I found a bunch that may match?

./usr/lib/libxcb-xfixes.so.0
./usr/lib/libxcb-glx.so.0
./usr/lib/libxcb-icccm.so.4
./usr/lib/libxcb-sync.so.1
./usr/lib/libxshmfence.so.1
./usr/lib/libxcb-util.so.1
./usr/lib/libxcb-image.so.0
./usr/lib/libxkbcommon.so.0
./usr/lib/libxcb-render-util.so.0
./usr/lib/libxcb-present.so.0
./usr/lib/libxcb-shm.so.0
./usr/lib/libxcb-render.so.0
./usr/lib/libxcb-xkb.so.1
./usr/lib/libxcb-xinerama.so.0
./usr/lib/libxcb-shape.so.0
./usr/lib/libxcb-keysyms.so.1

Removing those files and re-packing the AppImage has indeed worked. Replacing the original AppImage with the patched one works for running it through Steam and it now also autostarts with SteamVR as intended.

Full log of process: https://pastebin.com/9YnFX2i1

Thanks for your help!

@username223
Copy link
Member

Yes, libx*.so was intended to be understood as a wildcard for all files that started with libx and ended with .so. :)

Be aware that this "fix" will only last until Steam updates or redownloads the original files. The root cause is not really solvable from our side since it has to do with the specific files packaged in the AppImage vs installed locally, of which there are thousands of possibilities.

It might make more sense to use the AUR version if that also works since it is also officially supported and doesn't run afoul of random dependency version issues.

@RainOrigami
Copy link
Author

RainOrigami commented Aug 2, 2021

It might make more sense to use the AUR version if that also works since it is also officially supported and doesn't run afoul of random dependency version issues.

Any idea how I would need to setup SteamVR to make it automatically start and exit the AUR version like you can with the Steam version (eg. in SteamVR settings autostart or as startup parameter)? Sorry if this is offtopic for this issue but that is the only reason why I wouldn't want to use the AUR version over the Steam version.

@username223
Copy link
Member

I wouldn't know, sorry. I was actually under the impression that autostart was generally just broken on Linux.

The easiest thing to do would probably just be to create a script to extract the AppImage, delete the files and then reassemble.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants