Linux and Eclipse have proved themselves as a killer combination for Java (EE) development. Specially for technology savvy users, which i guess a lot of programmers are, the combination is a dream come true.
Though once in a while things can heat up under the hood.
With the uprise of Ubuntu, meant as a very user friendly version of Debian, many developers are trusting in their Ubuntu/Java/Eclipse environment and with good reason. It installs very easily, runs very fast and provides features like update-notifications, very fast turn around times for security updates and an almost insane amount of hard and software support.
Though the common Linux distributions (may i even say OpenSource) practice of fast turn around on security updates is a very good thing to have. It can once in a while turn into an unpleasant experience. Like today 18 Januari 2008.
To fix a programming error in the Xorg graphical software component of Linux the Ubuntu people pushed out an update for it called xserver-xorg-core_126.96.36.199.dfsg-12ubuntu8.1. I applied this update in the early morning when working at home and when i had to leave to continue working at the office i shutdown my laptop and went to the office as usual.
Only to find out that my laptop was not working as expected when booting up. The login manager appeared (GDM) and i logged in, finding my desktop (Gnome) in a half broken state. Firing up Eclipse was even worse, throwing me the following ‘unclear’ error message on the console:
The program ‘Eclipse’ received an X Window System error.
This probably reflects a bug in the program.
The error was ‘BadAlloc (insufficient resources for operation)’.
(Details: serial 1086 error_code 11 request_code 147 minor_code 5)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the –sync command line
option to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)
Now the obvious solution is to reinstall the package version before the security update or wait for the next update.
You can download the old version of the package from the following location: http://security.ubuntu.com/ubuntu/pool/main/x/xorg-server/xserver-xorg-core_188.8.131.52.dfsg-12ubuntu8_i386.deb
Install this package with the following command
$ dpkg -i xserver-xorg-core_184.108.40.206.dfsg-12ubuntu8_i386.deb
Now restart your X server by loggin out of your desktop and back in again or restarting your server and you should be fine again.
At the time of writing, which is about half a day after the update hit the Ubuntu servers and i first found myself dealing with this problem, the Ubuntu people are pushing out there second update for the broken xserver-xorg-core package called: xserver-xorg-core_220.127.116.11.dfsg-12ubuntu8.2
You can safely install this new version and have everything working as expected.
Old good version:
Broken updated version:
New good version:
If you want to be safe, wait until tomorrow (19/20 Januari 2008) before you hit the update button, make sure that you updated your apt repository and verify that it’s installing the 8.2 update version of xserver-xorg-core. Then you should be all set to keep your desktop up to date and running like a charm 🙂
Last but not least, the official advisory for this bug:
Debian Security Advisory DSA-1466-2
Package : xorg-server, libxfont, xfree86
CVE Id(s) : CVE-2007-5760 CVE-2007-5958 CVE-2007-6427 CVE-2007-6428 CVE-2007-6429 CVE-2008-0006
The X.org fix for CVE-2007-6429 introduced a regression in the MIT-SHM
extension, which prevented the start of a few applications. This update
fixes this problem and also references the patch for CVE-2008-0006,
which was included in the previous update, but not mentioned in the
Ing. Bas van Oostveen
Post-Scriptum: currently Ubuntu has released even a third patch to xserver-xorg xserver-xorg-core_18.104.22.168.dfsg-12ubuntu8.3