You are not logged in.

#1 2016-02-18 00:29:43

nstgc
Member
Registered: 2014-03-17
Posts: 393

[solved] Libc segfault for several games on load

Solution: It seems as if the new nvidia drivers (364.16) resolved this issue.


I have a few games that are experiancing segmentation faults when they are loaded. To copy what I posted on Steam's forums already:

I tried launching Borderlands 2 on my Laptop from within Big Picture mode, but it failed to load. I then tried again on my Desktop. I then tried again, launching it this time from the desktop client (instead of BPM), but it still failed. I then checked dmesg and saw

Borderlands2[9819]: segfault at 0 ip 00000000f70ca99a sp 00000000ffe84fe0 error 4 in libc-2.22.so[f7052000+1b3000]

i checked Google, and the only fix I've seen is to uninstall and reinstall. Given that it happened to both of my installations at the same time, this seems like an unlikely fix. I did verify the cache integrity, and all files checked out. I then copied the game directory from a 7 day old back up. Didn't work. I then copied the game directory from a several month old back up. Nothing. Lastly, I moved the game directory, "deleted" the game, moved it back, then "reinstalled". No luck.

On both computers I'm running 64b Arch Linux with the proprietary nVidia drivers 361.28. There are some ongoing issues with that driver, but they involve libgl, not libc.

I have also found that Saints Row IV has this issue as well. Unlike Borderlands 2, Saints Row IV gives a nice error report and a core dump.

System Information:
OS Version:
	Linux Distribution:	Arch Linux
	Kernel Version:		4.4.1-2-ARCH #1 SMP PREEMPT Wed Feb 3 13:12:33 UTC 2016

Hardware Info:
	Machine Type		System manufacturer System Product Name System Version
	CPU Type		GenuineIntel x86_64
	CPU Info		       Intel(R) Core(TM) i7-4930K CPU @ 3.40GHz
	CPU Speed		3900 MHz
	CPU Physical Cores	6
	CPU Logical Cores	12
	Physical Memory		16376788 KiB
	Virtual Memory		0 KiB

Crash Dump:
44512eb0-3873-ef8e-162e0f70-6619a8e1.dmp (100488 bytes)

Application Log:
[thread ffffffff][I][0]: Log system initialised
[thread ffffffff][I][0]: Default allowed number of simultaneously open files in the system is 2448.
[thread ffffffff][I][0]: Current memlock limit is 4294967295.
[thread ffffffff][I][13]: setup_teb_register() - using LDT entry 13
[thread 00000001][I][13]: Linux kernel version: 4.4.1-2-ARCH
[thread 00000001][I][13]: Linux glibc version: 2.22
[thread 00000001][I][63]: Forcing OpenGL Core context usage
[thread 00000001][I][127]: ===enforcing log flush===

I tried debugging this with gdb

gdb saintsrow4 44bcab19-12d5-b9dc-3c73ad05-71632712.dmp

after moving the dump file into the game directory. However, I am rewarded with the following.

"/btrfs/raid0/games/native/steam/common/Saints Row IV/saintsrow4": not in executable format: File format not recognized
Illegal process-id: 44bcab19-12d5-b9dc-3c73ad05-71632712.dmp.
"/btrfs/raid0/games/native/steam/common/Saints Row IV/44bcab19-12d5-b9dc-3c73ad05-71632712.dmp" is not a core dump: File format not recognized

Assuming that I was using the wrong file as the executable, I took a second guess and tried running "./Saintsrow4.i386". The game loaded up just fine. Trying again I get

Reading symbols from SaintsRow4.i386...(no debugging symbols found)...done.
Illegal process-id: 44bcab19-12d5-b9dc-3c73ad05-71632712.dmp.
"/btrfs/raid0/games/native/steam/common/Saints Row IV/44bcab19-12d5-b9dc-3c73ad05-71632712.dmp" is not a core dump: File format not recognized

So it's still not working as I'd like.

Also, I found that the Borderlands 2 executable can't be launched from a terminal. It complains about needing Steam.

So, I guess my question is: Where do I go from here? I feel like I'm just wasting my time and posting a bunch of useless crap. I have no clue what I'm doing, I'm just trying to emulate what other people have done for other games that give this sort of error.

edit: I'm an idiot. the file "saintsrow4" is script that Steam uses to launch the game. I saw it has that GL thread optimization thing. Setting it to "0" allows the game to load.

edit2: This does not seem to be the same thing as with Borderlands 2. I still don't know what's up with that. No core dump is created, and there isn't a script that I can "fix".

edit3: Borderlands 2 exists normally when run in gdb due to Steam DRM.

edit4: Trying to work around the DRM issue, instead gdb I tried "run steam steam://run/49520", but all I get back is that I specified a non-executable.

Last edited by nstgc (2016-04-21 22:28:18)

Offline

#2 2016-02-18 01:51:32

Ziusudra
Member
Registered: 2014-04-19
Posts: 120

Re: [solved] Libc segfault for several games on load

nstgc wrote:

Also, I found that the Borderlands 2 executable can't be launched from a terminal. It complains about needing Steam.

Was Steam running at the time? You should be able to run the game from a terminal if the Steam client is running.

Offline

#3 2016-02-18 03:01:24

nstgc
Member
Registered: 2014-03-17
Posts: 393

Re: [solved] Libc segfault for several games on load

Ziusudra wrote:
nstgc wrote:

Also, I found that the Borderlands 2 executable can't be launched from a terminal. It complains about needing Steam.

Was Steam running at the time? You should be able to run the game from a terminal if the Steam client is running.

Yes, steam was running.

Offline

#4 2016-02-18 15:11:48

GosuSan
Member
Registered: 2014-08-19
Posts: 32

Re: [solved] Libc segfault for several games on load

I have the exact same problem, for me it is Borderlands: The Pre-Sequel. I tried to investigate the problem, reinstalled glibc and lib32-glibc.
I think this error occured on the last update of these binaries, wich was at 2016-02-17 05:30 UTC (yesterday).
All of the stuff nstgc mentioned did not work for me either (cache integrity, reinstall etc)

dmesg says something like:

BorderlandsPreS[13135]: segfault at 0 ip 00000000f709488a sp 00000000ffa466f0 error 4 in libc-2.22.so[f701c000+1b3000]

Some other games like Civilization V work perfectly.

Any way to fix this? Or, if not, how do I (we) submit a proper bugreport, so other, smarter people can fix it?
Or is this not a Bug in glibc? I did not change any major parts of my system besides updating.

EDIT: actually I found a workaround for this a few minutes after this post (this happens all the time to me >.<)

Start your game like this:

__GL_THREADED_OPTIMIZATIONS=0 steam steam://run/261640

or add this code to your start-parameters of the game (in the steam client):

__GL_THREADED_OPTIMIZATIONS=0 %command%

(you will have to sustitute 261640 with your game ID)

so the culprit seems to be the thread-optimization of GL. (right?)
Great ... I have no clue what that actually means :>

Last edited by GosuSan (2016-02-18 15:42:37)

Offline

#5 2016-02-18 15:36:18

WorMzy
Forum Moderator
From: Scotland
Registered: 2010-06-16
Posts: 11,845
Website

Re: [solved] Libc segfault for several games on load

	CPU Info		       Intel(R) Core(TM) i7-4930K CPU @ 3.40GHz

Are you applying the microcode updates at boot? Post the output of 'cat /proc/cmdline'.


Sakura:-
Mobo: MSI MAG X570S TORPEDO MAX // Processor: AMD Ryzen 9 5950X @4.9GHz // GFX: AMD Radeon RX 5700 XT // RAM: 32GB (4x 8GB) Corsair DDR4 (@ 3000MHz) // Storage: 1x 3TB HDD, 6x 1TB SSD, 2x 120GB SSD, 1x 275GB M2 SSD

Making lemonade from lemons since 2015.

Offline

#6 2016-02-18 15:42:59

Scimmia
Fellow
Registered: 2012-09-01
Posts: 11,544

Re: [solved] Libc segfault for several games on load

Ivy Bridge shouldn't have the TSX instruction; so microcode updates, while a good idea, are unlikely to fix this.

Offline

#7 2016-02-18 16:07:24

GosuSan
Member
Registered: 2014-08-19
Posts: 32

Re: [solved] Libc segfault for several games on load

Scimmia wrote:

Ivy Bridge shouldn't have the TSX instruction; so microcode updates, while a good idea, are unlikely to fix this.

Addition to this: I am using an AMD CPU and have/had the same problems, and the wiki entry states that these microcode updates are applied automatically for AMD CPU's.

Offline

#8 2016-02-18 16:32:29

nstgc
Member
Registered: 2014-03-17
Posts: 393

Re: [solved] Libc segfault for several games on load

WorMzy wrote:
	CPU Info		       Intel(R) Core(TM) i7-4930K CPU @ 3.40GHz

Are you applying the microcode updates at boot? Post the output of 'cat /proc/cmdline'.

Yes, I have the microcode installed.

$ cat /proc/cmdline
BOOT_IMAGE=/arch/boot/vmlinuz-linux root=UUID=3873d8ba-9472-4d92-ab0d-e94574bd0eae rw rootflags=subvol=arch quiet
$ dmesg | grep microcode
[    0.000000] microcode: CPU0 microcode updated early to revision 0x428, date = 2014-05-29
[    0.298005] microcode: CPU1 microcode updated early to revision 0x428, date = 2014-05-29
[    0.311646] microcode: CPU2 microcode updated early to revision 0x428, date = 2014-05-29
[    0.325125] microcode: CPU3 microcode updated early to revision 0x428, date = 2014-05-29
[    0.338590] microcode: CPU4 microcode updated early to revision 0x428, date = 2014-05-29
[    0.352043] microcode: CPU5 microcode updated early to revision 0x428, date = 2014-05-29
[    1.017525] microcode: CPU0 sig=0x306e4, pf=0x4, revision=0x428
[    1.017564] microcode: CPU1 sig=0x306e4, pf=0x4, revision=0x428
[    1.017581] microcode: CPU2 sig=0x306e4, pf=0x4, revision=0x428
[    1.017596] microcode: CPU3 sig=0x306e4, pf=0x4, revision=0x428
[    1.017642] microcode: CPU4 sig=0x306e4, pf=0x4, revision=0x428
[    1.017685] microcode: CPU5 sig=0x306e4, pf=0x4, revision=0x428
[    1.017701] microcode: CPU6 sig=0x306e4, pf=0x4, revision=0x428
[    1.017718] microcode: CPU7 sig=0x306e4, pf=0x4, revision=0x428
[    1.017731] microcode: CPU8 sig=0x306e4, pf=0x4, revision=0x428
[    1.017743] microcode: CPU9 sig=0x306e4, pf=0x4, revision=0x428
[    1.017756] microcode: CPU10 sig=0x306e4, pf=0x4, revision=0x428
[    1.017769] microcode: CPU11 sig=0x306e4, pf=0x4, revision=0x428
[    1.017829] microcode: Microcode Update Driver: v2.01 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
GosuSan wrote:

EDIT: actually I found a workaround for this a few minutes after this post (this happens all the time to me >.<)

Start your game like this:

__GL_THREADED_OPTIMIZATIONS=0 steam steam://run/261640

or add this code to your start-parameters of the game (in the steam client):

__GL_THREADED_OPTIMIZATIONS=0 %command%

(you will have to sustitute 261640 with your game ID)

so the culprit seems to be the thread-optimization of GL. (right?)
Great ... I have no clue what that actually means :>

That doesn't work with Borderlands 2. I'm still getting a segfault.

I suppose I could try downgrading libc, but I assume a lot of stuff is built on it. I'd rather not have massive system failures.

Last edited by nstgc (2016-02-18 16:40:10)

Offline

#9 2016-03-11 02:13:22

Conker
Member
Registered: 2010-06-22
Posts: 4

Re: [solved] Libc segfault for several games on load

__GLVND_DISALLOW_PATCHING=1 %command%

Last edited by Conker (2016-03-11 02:14:12)

Offline

#10 2016-03-12 17:49:00

nstgc
Member
Registered: 2014-03-17
Posts: 393

Re: [solved] Libc segfault for several games on load

Conker wrote:
__GLVND_DISALLOW_PATCHING=1 %command%

Thank might work, however I can't launch BL2 from terminal. Even with Steam running, it won't work.

I've tried "__GLVND_DISALLOW_PATCHING=1 ./Borderlands2" in which case I'm told that I need need.

I've tried

$ __GLVND_DISALLOW_PATCHING=1 steam steam://run/49520
/home/nstgc5/.local/share/Steam/steam.sh: line 161: VERSION_ID: unbound variable
/home/nstgc5/.local/share/Steam/steam.sh: line 161: VERSION_ID: unbound variable
Running Steam on arch  64-bit
/home/nstgc5/.local/share/Steam/steam.sh: line 161: VERSION_ID: unbound variable
STEAM_RUNTIME is enabled automatically

which still segfalts.

I also tried adding " __GLVND_DISALLOW_PATCHING=1" to the launcher options within Steam. Segfault.

edit: As for VERSION_ID complaint, I'll try to see if lsb_release can help with that at some later time. (tomorrow?)

Last edited by nstgc (2016-03-12 17:54:40)

Offline

#11 2016-03-18 19:50:43

AKL
Member
Registered: 2008-07-29
Posts: 69

Re: [solved] Libc segfault for several games on load

GosuSan wrote:

add this code to your start-parameters of the game (in the steam client):

__GL_THREADED_OPTIMIZATIONS=0 %command%

That did it for me, thanks a lot!


Endut! Hoch Hech!

Offline

#12 2016-04-09 12:50:56

theringoffire
Member
Registered: 2014-01-25
Posts: 19

Re: [solved] Libc segfault for several games on load

GosuSan wrote:

EDIT: actually I found a workaround for this a few minutes after this post (this happens all the time to me >.<)

Start your game like this:

__GL_THREADED_OPTIMIZATIONS=0 steam steam://run/261640

or add this code to your start-parameters of the game (in the steam client):

__GL_THREADED_OPTIMIZATIONS=0 %command%

Worked for ma as well, thanks!

System is: AMD FX-8350, 16GB RAM, Nvidia GTX 970 (driver 361.28), XFCE & Compton

Offline

#13 2016-04-21 22:28:00

nstgc
Member
Registered: 2014-03-17
Posts: 393

Re: [solved] Libc segfault for several games on load

It seems as if the new nvidia drivers (364.16) resolved this issue.

Offline

Board footer

Powered by FluxBB