Screen Freeze on Ubuntu 12.04 LTS

A little while ago I warned DO NOT UPGRADE (yet) to Ubuntu 12.04. That advice still holds. Unlike versions 10 and 11, which seemed stable, 12.04 continues to have serious X windows problems.

The subject of this post is different from the compiz error I was talking about before, which caused hard lockup and kernel panic when using multiple monitors. This new bug causes X to freeze due to an Intel Ivy Bridge CPU/GPU issue but the mouse still moves mockingly around the screen. A switch to a terminal session (Ctrl-Alt-F1) shows everything running happily along and still functioning while the X session (Ctrl-Alt-F7) is frozen.


Update: I should have made it more explicit that this is an interesting area to me because it is a dangerous future direction for exploits, as I wrote about before. Expect attackers to direct their attention towards unprotected boundaries of GPU memory/paging.


Killing X from a terminal brings the system back but blows all the X sessions, which can be very ugly and destructive especially to virtual machines. You will lose work but at least at this point you can gracefully restart Ubuntu. Some have suggested killing compiz processes (e.g. compiz-decorater) to unfreeze X without losing work but it doesn’t prevent lockup.

I guess it’s a good thing they call it LTS because it might be a long time before it’s secure enough to upgrade. Alas, here is the sad and disgusting image of a frozen Pangolin.

Frozen Pangolin

Yuck. Not what you want to see every day. After numerous crashes and bug reports there seems to be a solution emerging with a new kernel (linux-image-3.2.0.27-generic).

This bug is awaiting verification that the kernel for Precise in -proposed solves the problem (3.2.0-27.43). Please test the kernel and update this bug with the results. If the problem is solved, change the tag ‘verification-needed-precise’ to ‘verification-done-precise’.

If verification is not done by one week from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

That’s one week from July 9th. The documentation you get from their link isn’t complete so here’s a step-by-step that should work on any Ubuntu 12.04 system if you’re experiencing a frozen X and want to help verify a fix.

  1. Type “uname -a” in a terminal to verify current version. You will see something like this:
  2. Linux systemname 3.2.0-26-generic #41-Ubuntu...

  3. Open Applications -> Ubuntu Software Center -> Edit -> Software Sources -> Updates and add a check in the precise-proposed box. If you want to verify or add it manually, the following line is added to /etc/apt/sources.list
  4. deb https://archive.ubuntu.com/ubuntu/ precise-proposed restricted main multiverse universe

  5. Block precise-proposed from updating all packages, as suggested by Ubuntu; “create the file /etc/apt/preferences with this content”
  6. Package: *
    Pin: release a=precise-security
    Pin-Priority: 990

    Package: *
    Pin: release a=precise-updates
    Pin-Priority: 900

    Package: *
    Pin: release a=precise-proposed
    Pin-Priority: 400

  7. Update apt to recognize the new source
  8. sudo apt-get update

    You should see something like the following lines in the update results

    Get:60 https://us.archive.ubuntu.com precise-proposed/main amd64 Packages [163 kB]
    Get:64 https://us.archive.ubuntu.com precise-proposed/main i386 Packages [164 kB]

  9. Install the proposed linux-image-3.2.0.27-generic kernel (38.5MB)
  10. sudo apt-get install linux-image-3.2.0.27-generic

    Note: if you also have VMware Workstation installed you will have to install the headers

    sudo apt-get install linux-headers-3.2.0.27-generic

    The good news is that a custom module patch seems no longer to be needed to start VMware Workstation. If you make certain to install headers that match the new kernel, Workstation should be able to reconfigure itself without error.

    When apt completes you will see a line like this
    Unpacking linux-image-3.2.0-27-generic (from .../linux-image-3.2.0-27-generic_3.2.0-27.43_amd64.deb) ...
    Done.

  11. That’s it! To verify the new kernel, restart the system, open a terminal and type “uname -a” again
  12. Linux systemname 3.2.0-27-generic #43-Ubuntu...

  13. As a finishing step, and to make validation easier, Ubuntu prefers that you enable and allow Apport to help them isolate the bug(s)
  14. When running proposed it is recommend that you re-enable Apport bug filing to capture and report crashes. In the event that you end up reporting a crash about a proposed package please tag the bug as proposed-pkg so we can distinguish it from other crash reports.

    You can enable Apport on a stable system with:

    gconftool -s /apps/update-notifier/show_apport_crashes –type bool true

6 thoughts on “Screen Freeze on Ubuntu 12.04 LTS”

  1. I’m getting 12.04 LTS freezing daily on ubuntu 3.2.0-35-generic kernel.

    Tips on isolating where the crash is happening.

    I’ve enabled sshd so I can at least see if it’s kernel-level or X.

  2. Hi Dave, have you followed the Backtracing guide?
    https://wiki.ubuntu.com/X/Backtracing

    Apport, as I mention above, is now the recommended way to generate a backtrace. Once the crash happens Apport should catch it and prompt you with a little dialog box with details.

    The guide says to use this command to enable Apport

    sudo service apport start force_start=1

    If you want to see what it’s doing and review manually it creates a /var/crash folder owned by root:whoopsie and also world read/writeable (although the crash dumps inside are owned by whoopsie:whoopsie with perms set to 600). Once the report is uploaded it disappears from the /var/crash folder.

    There’s also some good bug hunting guidelines here:
    https://wiki.ubuntu.com/X/Troubleshooting

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.