protonscr

[BUG] vrwebhelper doesn't handle X errors

steamvropen bug
ValveSoftware/SteamVR-for-Linux#439 · opened 2021-04-02 by yshui · updated 2021-04-09 · 2 comments · github
Yyshui 2021-04-02 github

Describe the bug
vrwebhelper occasionally crashes

To Reproduce
Steps to reproduce the behavior:

Unknown

Expected behavior
vrwebhelper doesn't crash

System Information (please complete the following information):

  • Distribution: Arch
  • SteamVR version: 1.17.4
  • Steam client version: Mar 31, 2021, at 23:19:07
  • Opted into Steam client beta?: No
  • Graphics driver version: Mesa 21.1.0-devel (git-5e4d31f646) (ACO)
  • Gist for SteamVR System Information:

Additional context
Stack trace:

#0  0x00007f7185790c95 in std::_Rb_tree_rebalance_for_erase(std::_Rb_tree_node_base*, std::_Rb_tree_node_base&) ()
   from /home/shui/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/vrclient.so
[Current thread is 1 (Thread 0x7f7187c8b480 (LWP 280822))]
(gdb) bt
#0  0x00007f7185790c95 in std::_Rb_tree_rebalance_for_erase(std::_Rb_tree_node_base*, std::_Rb_tree_node_base&) ()
   from /home/shui/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/vrclient.so
#1  0x00007f71854e64c3 in std::_Rb_tree<unsigned long, std::pair<unsigned long const, MailboxInfo_t>, std::_Select1st<std::pair<unsigned long const, MailboxInfo_t> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, MailboxInfo_t> > >::erase(unsigned long const&) () from /home/shui/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/vrclient.so
#2  0x00007f71854e5309 in CVRMailboxClient::UnregisterMailbox(unsigned long) ()
   from /home/shui/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/vrclient.so
#3  0x0000000000500ad3 in CVRMailboxBase::Close() ()
#4  0x000000000042ec5b in CVRMailboxBase::~CVRMailboxBase() ()
#5  0x000000000042ebfd in CVRMailbox::~CVRMailbox() ()
#6  0x000000000042eb15 in CVRWebHelperApp::~CVRWebHelperApp() ()
#7  0x000000000042c180 in CVRWebHelperApp::~CVRWebHelperApp() ()
#8  0x00007f718adbb697 in __run_exit_handlers () from /usr/lib/libc.so.6
#9  0x00007f718adbb83e in exit () from /usr/lib/libc.so.6
[#10](/issue/ValveSoftware/SteamVR-for-Linux/10) 0x00007f718b2d8968 in _XDefaultError () from /usr/lib/libX11.so.6
[#11](/issue/ValveSoftware/SteamVR-for-Linux/11) 0x00007f718b2d8aa5 in _XError () from /usr/lib/libX11.so.6
[#12](/issue/ValveSoftware/SteamVR-for-Linux/12) 0x00007f718b2d56f8 in ?? () from /usr/lib/libX11.so.6
[#13](/issue/ValveSoftware/SteamVR-for-Linux/13) 0x00007f718b2d69e9 in _XReply () from /usr/lib/libX11.so.6
[#14](/issue/ValveSoftware/SteamVR-for-Linux/14) 0x00007f718a523361 in XOpenDevice () from /usr/lib/libXi.so.6
[#15](/issue/ValveSoftware/SteamVR-for-Linux/15) 0x00007f7190458c25 in ?? ()
[#16](/issue/ValveSoftware/SteamVR-for-Linux/16) 0x0000000400000004 in ?? ()
[#17](/issue/ValveSoftware/SteamVR-for-Linux/17) 0x0000000400000004 in ?? ()
[#18](/issue/ValveSoftware/SteamVR-for-Linux/18) 0x0000000400000004 in ?? ()
[#19](/issue/ValveSoftware/SteamVR-for-Linux/19) 0x0000000000000000 in ?? ()

Note: Commenters who are also experiencing this issue are encouraged to include the "System Information" section in their replies.

Yyshui 2021-04-02 github

Looks like vrwebhelper is on the way out anyway, even if it didn't crash.

Maybe vrwebhelper should handle the X error?

Yyshui 2021-04-02 github

I made a LD_PRELOAD to override the default error handler, which seems to be working so far.

Nothing extracted yet.