As some of you will probably have noticed, last week CentOS has released the latest version of the distribution, CentOS version 5.4. If you are using VMware on top of that OS, then beware that there is a known bug as laid out in the release notes.
In this article the detailed notes on how-to update from centOS 5.3 are written out in details.
The centOS 5.4 release notes known issues paragraph has this detail:
VMWare host on CentOS-5.4. There is an issue with the new version of glibc (2.5-42) and vmware-hostd. If you are using CentOS-5.4 as a VMWare host machine, you will need to read and take actions per this bug report (#3884).
The bug report itself has this:
Bug: 0003884: CentOS 5.4 glibc causes crash of VMWare vmware-hostd process in VMWare 2.0.0 and 2.0.1
Description: CentOS 5.4 glibc causes crash of VMWare vmware-hostd process in VMWare 2.0.0 and 2.0.1. This is documented on these 2 VM threads:
Two ways to fix this are called out in the above threads. The easiest one is to just exclude glibc from CentOS-5.4 in the yum.conf file if you are upgrading a 5.3 machine, using this line:
Then do this to verify you will not get the new files in the upgrade:
yum list glibc*
The output should not show new glibc files.
Ouch, that is some serious problem there that we certainly do not want to bump into.
So we now have to reconsider if we really want to upgrade to centOS 5.4 at this stage. As I was going to write this article.. for me there is no choice and to bite the bullet, but if you are running production then this is the most important question. Is there anything in the new release at this moment that you have a need for?
If you are here because you already upgraded, but are now having problems then visit the bug report as it has notes on how-to fix this.
OK, so let’s go then, upgrade our VMware Server 2.0.1 host from centOS5.3 to centOS5.4 and use the exclude method as depicted above.
Step 1. Take a backup!
Once you have done that, start a root console.
We will first check what the repositories are going to offer us when we upgrade without taking precautions.
# yum list glibc* Loaded plugins: fastestmirror, priorities Loading mirror speeds from cached hostfile * rpmforge: ftp-stud.fht-esslingen.de * base: archive.cs.uu.nl * updates: archive.cs.uu.nl * addons: archive.cs.uu.nl * extras: archive.cs.uu.nl 429 packages excluded due to repository priority protections Installed Packages glibc.i686 2.5-34.el5_3.1 installed glibc.x86_64 2.5-34.el5_3.1 installed glibc-common.x86_64 2.5-34.el5_3.1 installed glibc-devel.x86_64 2.5-34.el5_3.1 installed glibc-headers.x86_64 2.5-34.el5_3.1 installed Available Packages glibc.i686 2.5-42 base glibc.x86_64 2.5-42 base glibc-common.x86_64 2.5-42 base glibc-devel.i386 2.5-42 base glibc-devel.x86_64 2.5-42 base glibc-headers.x86_64 2.5-42 base glibc-utils.x86_64 2.5-42 base
Glibc version 2.5-42 is the one that would cause us problems, so we are now going to prevent it from updating to that glibc version.
Take your favorite text editor to go and edit the file /etc/yum.conf
In the [main] section under the plugins line add the line:
Now exit and save the configuration file and rerun the line above, it should now not show the new glibc package anymore.
# yum list glibc* Loaded plugins: fastestmirror, priorities Loading mirror speeds from cached hostfile * rpmforge: ftp-stud.fht-esslingen.de * base: archive.cs.uu.nl * updates: archive.cs.uu.nl * addons: archive.cs.uu.nl * extras: archive.cs.uu.nl rpmforge | 1.1 kB 00:00 base | 2.1 kB 00:00 updates | 951 B 00:00 addons | 951 B 00:00 extras | 1.1 kB 00:00 Excluding Packages in global exclude list Finished 429 packages excluded due to repository priority protections Installed Packages glibc.i686 2.5-34.el5_3.1 installed glibc.x86_64 2.5-34.el5_3.1 installed glibc-common.x86_64 2.5-34.el5_3.1 installed glibc-devel.x86_64 2.5-34.el5_3.1 installed glibc-headers.x86_64 2.5-34.el5_3.1 installed
As you can see we now have an extra line “Excluding packages..” and the newer glibc is indeed excluded from the update.
With that protection in place we can now go and upgrade our host.
But wait.. let’s first pause -or better, shut down- all your running virtual machines. This is not a required step, but it just makes sense to make sure that all your VM’s had a nice clean shut down.
Now, again from the command line, run the upgrade:
Shut down your host and restart it afterwards.
If all has gone well, then VMware Server will just run, no new precompiled kernel modules are needed.
Well at least on my host everything worked out of the box.
You can check that you are now running the latest version of CentOS by running:
# rpm -q centos-release
There you go and the latest release it is.
Enjoy your new OS and VMware Server!
Please note that there have been issues reported with the local firefox install (so firefox on the host only) not being able to setup a HTTPS connection to the Virtual Infrastructure webaccess after holding back on the glibc upgrade. The http webaccess interface still works fine as does accessing the HTTPS interface from any external machine.
For more details see this thread: No WebAccess to VMware Server 2: Proxysvc, SSL Exception, session id context uninitialized