protonscr

Fedora 19: Game overlay causes certain games not to start

steamclosed reviewed
ValveSoftware/steam-for-linux#2612 · opened 2013-06-22 by zerodogg · updated 2019-07-18 · 8 comments · github
Zzerodogg 2013-06-22 github

If the game overlay is enabled then certain games will not start under Fedora 19, 64bit. So far that includes "Thomas was alone" and "Organ trail: directors cut".

It may be some incompatibility with an update in Fedora 19 (which is currently beta, pending release in the coming weeks), since it used to work around three weeks ago.

The issue appears both in the latest beta client (as of today, 22nd of June) and in the latest stable one. It also doesn't cause all games to fail, ie. I tried to launch "The Cave" with the overlay enabled, and it worked fine.

I have attempted to remove the runtime directory to force a reinstall of that,it did not help. Nor did running steam as 'linux32 steam' to ensure it wasn't the new 64bit overlay stuff making it confused.

The problem manifests itself as a hanging game. For instance, when I start "Thomas was alone" it opens up a maximized window, which is black, and then proceeds to just hang there indefinitely - until I kill the process. There's no noteworthy output from the games in a terminal (same output with and without the overlay enabled). I have also attempted to disconnect my gamepad, in case that had anything to do with it (at least Thomas was alone used it), but that didn't have any effect either.

Zzerodogg 2013-06-22 github

In case it is useful, here is the system information:

Processor Information:
Vendor: AuthenticAMD
Speed: 3300 Mhz
6 logical processors
6 physical processors
HyperThreading: Unsupported
FCMOV: Supported
SSE2: Supported
SSE3: Supported
SSSE3: Unsupported
SSE4a: Supported
SSE41: Unsupported
SSE42: Unsupported

Network Information:
Network Speed:

Operating System Version:
"Fedora release 19 (Schrödinger’s Cat)" (64 bit)
Kernel Name: Linux
Kernel Version: 3.9.6-301.fc19.x86_64
X Server Vendor: Fedora Project
X Server Release: 11401000
X Window Manager: GNOME Shell
Steam Runtime Version: steam-runtime-release-i386_2013-05-08

Video Card:
Driver: NVIDIA Corporation GeForce GTX 560 Ti/PCIe/SSE2

Driver Version:  4.3.0 NVIDIA 319.23
Desktop Color Depth: 24 bits per pixel
Monitor Refresh Rate: 60 Hz
VendorID:  0x10de
DeviceID:  0x1200
Number of Monitors:  1
Number of Logical Video Cards:  1
Primary Display Resolution:  1600 x 900
Desktop Resolution: 1600 x 900
Primary Display Size: 17,44" x 9,80"  (20,00" diag)
                                        44,3cm x 24,9cm  (50,8cm diag)
Primary Bus: PCI Express 16x
Primary VRAM: 1024 MB
Supported MSAA Modes:  2x 4x 8x 16x 

Sound card:
Audio device: Realtek ALC892

Memory:
RAM: 16048 Mb

Miscellaneous:
UI Language: English
LANG: nn_NO.utf8
Microphone: Not set
Total Hard Disk Space Available: 2816555 Mb
Largest Free Hard Disk Block: 1983698 Mb

Installed software:

Recent Failure Reports:

Ggdrewb-valve maintainer 2013-06-24 github

I didn't see any problems with either of these games on Ubuntu 12.04 64-bit.

Ccopiga 2013-07-02 github

I also get the same issue, seemingly on all valve games on openSUSE 12.3 64 bit

in case it is useful:

Processor Information:
Vendor: AuthenticAMD
Speed: 3624 Mhz
8 logical processors
8 physical processors
HyperThreading: Unsupported
FCMOV: Supported
SSE2: Supported
SSE3: Supported
SSSE3: Supported
SSE4a: Supported
SSE41: Supported
SSE42: Supported

Network Information:
Network Speed:

Operating System Version:
"openSUSE 12.3 (x86_64)" (64 bit)
Kernel Name: Linux
Kernel Version: 3.7.10-1.16-desktop
X Server Vendor: The X.Org Foundation
X Server Release: 11302000
X Window Manager: KWin
Steam Runtime Version: steam-runtime-release-i386_2013-06-28

Video Card:
Driver: NVIDIA Corporation GeForce GTX 560/PCIe/SSE2

Driver Version:  4.3.0 NVIDIA 319.17
Desktop Color Depth: 24 bits per pixel
Monitor Refresh Rate: 59 Hz
VendorID:  0x10de
DeviceID:  0x1201
Number of Monitors:  1
Number of Video Cards Not Detected
Primary Display Resolution:  1680 x 1050
Desktop Resolution: 1680 x 1050
Primary Display Size: 17.09" x 10.63"  (20.12" diag)
                                        43.4cm x 27.0cm  (51.1cm diag)
Primary Bus: PCI Express 16x
Primary VRAM: 1024 MB
Supported MSAA Modes:  2x 4x 8x 16x 

Sound card:
Audio device: Realtek ALC887-VD

Memory:
RAM: 16062 Mb

Zzerodogg 2013-07-13 github

I've done a bit more digging to see if I could track it down.

First I installed Ubuntu 12.04, where obviously things work like they should. Then I used schroot in fedora to run steam, which essentially runs Steam with the Ubuntu 12.04 environment (libs) under the Fedora 19 instance, where the same problem occurs, which to me sounds like it at least is not some library incompatibility and leads me towards thinking there's either something kernel-level it isn't liking, or something with how it talks to X.

I then used 'strace -f -y' on the process when starting it to see where it is hanging. The full trace is 8MB (which I can make available if needed), what follows are the last lines in the output for the processes:

7753  mmap2(NULL, 8392704, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0xffffffffeeefa000                                                                        
7753  mprotect(0xeeefa000, 4096, PROT_NONE) = 0                                                                                                                                                    
7753  clone(child_stack=0xef6fa424, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0xef6faba8, tls=0xef6faba8, child_tidptr=0xffab2720) = 7767                                                                                                                                                         
7753  sched_getparam(7767, { 0 })       = 0                                                                                                                                                        
7753  sched_getscheduler(7767)          = 0 (SCHED_OTHER)                                                                                                                                          
7753  sched_get_priority_min(SCHED_OTHER) = 0                                                                                                                                                      
7753  sched_get_priority_max(SCHED_OTHER) = 0                                                                                                                                                      
7753  sched_setscheduler(7767, SCHED_OTHER, { 0 }) = 0                                                                                                                                             
7753  brk(0)                            = 0xa460000                                                                                                                                                
7753  brk(0xa481000)                    = 0xa481000                                                                                                                                                
7753  uname({sys="Linux", node="browncoats", ...}) = 0                                                                                                                                             
7753  pipe([44, 45])                    = 0                                                                                                                                                        
7753  clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0) = 7768                                                                                           
7753  close(45<pipe:[90629]>)           = 0                                                                                                                                                        
7753  read(44<pipe:[90629]>,  <unfinished ...>                                                                                                                                                     

7786  mremap(0x7fd953a41000, 348160, 356352, MREMAP_MAYMOVE) = 0x7fd953a41000                                                                                                                      
7786  brk(0xb3e000)                     = 0xb3e000                                                                                                                                                 
7786  munmap(0x7fd953a41000, 356352)    = 0                                                                                                                                                        
7786  open("/home/zerodogg/.nv/nvidia-application-profile-globals-rc", O_RDONLY) = -1 ENOENT (No such file or directory)                                                                           
7786  clock_gettime(CLOCK_MONOTONIC, {4250, 221279758}) = 0                                                                                                                                        
7786  clock_gettime(CLOCK_MONOTONIC, {4250, 221318265}) = 0                                                                                                                                        
7786  brk(0xb7d000)                     = 0xb7d000                                                                                                                                                 
7786  statfs("/sys/fs/selinux", {f_type=0xf97cff8c, f_bsize=4096, f_blocks=0, f_bfree=0, f_bavail=0, f_files=0, f_ffree=0, f_fsid={0, 0}, f_namelen=255, f_frsize=4096}) = 0                       
7786  statfs("/sys/fs/selinux", {f_type=0xf97cff8c, f_bsize=4096, f_blocks=0, f_bfree=0, f_bavail=0, f_files=0, f_ffree=0, f_fsid={0, 0}, f_namelen=255, f_frsize=4096}) = 0                       
7786  stat("/sys/fs/selinux", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0                                                                                                                          
7786  futex(0x322e2205cc, FUTEX_WAKE_PRIVATE, 2147483647) = 0                                                                                                                                      

7754  <... nanosleep resumed> NULL)     = 0                                                                                                                                                        
7754  time(NULL)                        = 1373694210                                                                                                                                               
7754  semop(294921, {{3, -1, SEM_UNDO}}, 1) = 0                                                                                                                                                    
7754  semop(294921, {{2, -1, SEM_UNDO}}, 1) = 0                                                                                                                                                    
7754  semop(294921, {{2, 1, SEM_UNDO}}, 1) = 0                                                                                                                                                     
7754  semop(294921, {{3, 1, SEM_UNDO}}, 1) = 0                                                                                                                                                     
7754  waitpid(7753, 0xf6c91228, WNOHANG) = -1 ECHILD (No child processes)                                                                                                                          
7754  nanosleep({10, 0}, NULL)          = 0                                                                                                                                                        
7754  time(NULL)                        = 1373694220                                                                                                                                               
7754  semop(294921, {{3, -1, SEM_UNDO}}, 1) = 0                                                                                                                                                    
7754  semop(294921, {{2, -1, SEM_UNDO}}, 1) = 0                                                                                                                                                    
7754  semop(294921, {{2, 1, SEM_UNDO}}, 1) = 0                                                                                                                                                     
7754  semop(294921, {{3, 1, SEM_UNDO}}, 1) = 0                                                                                                                                                     
7754  waitpid(7753, 0xf6c91228, WNOHANG) = -1 ECHILD (No child processes)                                                                                                                          
7754  nanosleep({10, 0},                                                                                                                                                                           

So it looks like one process is looping waiting for another that it thinks is its child while actually it is its parent(?). While the other one just sits there reading from a pipe that never returns anything. At this point I'm at a loss for what to try next, but hopefully this may be of help to you.

Zzerodogg 2013-07-26 github

Upon further investigation, the problem appears to be related to selinux. As sort of indicated by the strace reading from /sys/fs/selinux. If I chmod 750 /sys/fs before starting a game (essentially making /sys/fs unreadable for anyone but root, so it can't check for /sys/fs/selinux) it works, games launch just fine. I've tried this with "Thomas was alone", "Kairo" and "Organ trail: director's cut", they all fail when /sys/fs is readable (hanging like mentioned in the first post), but when it isn't they start up just fine (and the overlay works).

Ggdrewb-valve maintainer 2013-07-26 github

Interesting, thanks for investigating. Steam isn't doing anything explicit that I know of that would be involved here, but clearly something is being triggered indirectly. We don't have a Fedora setup here so I don't know when we'll get any farther on this.

Uurbenlegend 2013-11-03 github

I have this issue as well with FORCED, Serious Sam, and Rochard. Disabling the Steam Overlay seems to work around the issue, but it isn't optimal. I am also running Fedora 19 64-bit.

Kkisak-valve maintainer 2017-05-16 github

Closing as upstream support for Fedora 19 has been discontinued. Additionally, the steam overlay on Fedora 25 does not have this issue with Thomas Was Alone.

Nothing extracted yet.