Steam & Skype segfaults all of a sudden - read here


Updated: October 6, 2014

The situation you are facing is as follows. You are a Linux user, you are running a distro of your choosing, and you are using Steam and/or Skype, and have used them successfully and without any problems for a while. Only suddenly, they no longer load, and they seem to die. You are skilled enough to run them from the command line to see what the problem might be, and you discover that they both die with a segmentation fault.

Normally, segmentation faults indicate a problem in code somewhere, but you're not really sure how, where and why. In this tutorial, we will explore the problem, learn how to analyze these kind of issues, and eventually solve them. Follow me.

Symptoms

Let me give you a personal example. This happened to me with CentOS 7, shortly after installing Nvidia drivers. Neither Skype nor Steam would load, and the problem more or less coincides with my other games and testing. But technically, the following happens, for instance, Skype:

[magnus@localhost ~]$ skype
Segmentation fault (core dumped)

And for Steam, something more verbose but quite similar:

[magnus@localhost ~]$ steam
Running Steam on centos 7 64-bit
STEAM_RUNTIME is enabled automatically
Installing breakpad exception handler for appid(steam)/version(0_client)
/home/magnus/.local/share/Steam/steam.sh: line 730: 27936 Segmentation fault      (core dumped) $STEAM_DEBUGGER "$STEAMROOT/$STEAMEXEPATH" "$@"
mv: cannot stat /home/magnus/.steam/registry.vdf: No such file or directory
Installing bootstrap /home/magnus/.local/share/Steam/bootstrap.tar.xz
Reset complete!
Restarting Steam by request...
Running Steam on centos 7 64-bit
STEAM_RUNTIME has been set by the user to: /home/magnus/.local/share/Steam/ubuntu12_32/steam-runtime
Installing breakpad exception handler for appid(steam)/version(0_client)
/home/magnus/.local/share/Steam/steam.sh: line 730: 28109 Segmentation fault      (core dumped) $STEAM_DEBUGGER "$STEAMROOT/$STEAMEXEPATH" "$@

Reading the errors, you may assume that this is an Ubuntu-related problem, but no, that's just the software build name. With Skype, there are no big messages. With Steam, something bad is happened on line 730 inside the steam.sh script. What now?

There are several ways to approach this problem, and you might instantly doubt these two programs. But what are the chances that both Microsoft and Valve screwed up their code all of a sudden? This indicates we have a systematic issue, and it is probably related to one of the critical components, like the Glibc, graphics or sound libraries or similar.

Why would I think this? Well, fine compilation details can cause weird errors, and if your system has received a new version of Glibc that does not cooperate well with older versions, this kind of problem can occur. Likewise, if your OpenGL libraries or such are not fully compatible, or corrupt for some reason, then applications that rely on the powerful 3D stack, and the same applies to audio and such, will not be able to start, and they will crash, as we see above.

All of this is theory. Let's reduce our assumption to practice. If you recall my older guide on how to install Skype, where we debugged the issue using gdb, and then found out the problem with linked shared libraries and such, we will do the same thing here.

Debugging the problem

After setting the right limits in the shell, we will rerun Skype. Let's see what information we get there. After the core is generated, we will invoke with gdb, against the skype binary.

Core was generated by `skype-bin'.
Program terminated with signal 11, Segmentation fault.
#0  0x00000000 in ?? ()

(gdb) bt
#0  0x00000000 in ?? ()
#1  0xf2326ab8 in ?? ()
#2  0x000014f2 in ?? ()
#3  0xf969e248 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Uh, this is not good. We cannot really trace memory addresses and functions, and because we are missing symbols for most of the libraries, the names are meaningless. And we get a similar result with Steam. This is bad. What now?

Solution

If you hit a situation like this, you will have to gamble a little. Having lots of experience with these kind of problems help. So, you know it's not related to either one of these applications. An older usecase points out to a problem with the libGL.so library. We have just recently installed Nvidia drivers, and if you remember, it's a tricky one, because we first had to blacklist Nouveau. Smells like a rat, don't you think.

What I'm going to do now is purely unscientific, and you may hate me for that, because normally when I showcase issues like the one we have here, I give you concrete numbers and pointers. But now, we must eliminate what is NOT causing the problem rather than what is.

Steam and Skype fail at the same time, so they are not at fault.

Kernel, glibc got updated, maybe, we will have to see about that. If the Nvidia trick does not work, we will boot into an older kernel version, and test that. If that's still problematic, try to downgrade glibc. But first Nvidia.

Nvidia drivers, we will simply drop to runlevel 3 and reinstall them.

And does this work? Yes it does. Reinstallation of the graphics driver cleared whatever corruption was in the graphics driver and library stack, and now, both these programs work fine. I apologize for a Wesley Crusher Stark Trek TNG solution, but that's how it is.

With apps 2

Conclusion

This article is a sort of a hack, I must admit. Your issue might be 100% unrelated. It is impossible to cover all segmentation faults and their reasons in a single article. You might not even be running CentOS, but this could happen on Ubuntu or Mint or something. The basic concepts remain the same.

Work step by step, component by component, try to isolate the elements, understand what changed in your environment, test one a time. Correlate between events and changes to make sure you don't blindly follow a million guides on the net. Something simple things work the best. And here, rather than fighting corrupt shared libraries to death, we reinstalled them. Clean slate, all is well. See if this works for you.

Cheers.

RSS Feed icon

del.icio.us del.icio.us stumbleupon stumble digg digg reddit reddit slashdot slashdot



Advertise!

Would you like to advertise your product/site on Dedoimedo?

Read more

Donate to Dedoimedo!

Do you want to
help me take early retirement? How about donating
some dinero to
Dedoimedo?

Read more

Donate