SRU: network interface does not come up after installing open-vm-tools

Bug #289921 reported by Craig
58
This bug affects 7 people
Affects Status Importance Assigned to Milestone
open-vm-tools (Debian)
Fix Released
Unknown
open-vm-tools (Ubuntu)
Fix Released
Low
Unassigned
Intrepid
Invalid
Undecided
Unassigned
Jaunty
Fix Released
Low
Unassigned

Bug Description

When installing open-vm-tools on Intrepid, the network *immediately* disconnects itself and no longer comes up on boot, because the initscript unloads the pcnet32 driver in order to try to replace it with the vmxnet driver.

This has been fixed in Jaunty by syncing 2008.11.18-130226-1lenny1. The attached debdiff (comment 24) includes the three relevant Git commits from the Debian repository:
* Updating initscript to correctly handle vmxnet (Closes: #479090, #488810).
* Correcting typo in dh_installinit call.
* Always prefering vmxnet over pcnet32 through modprobe and initramfs configuration (Closes: #502365).
The effect of these changes is that vmxnet will be loaded instead of pcnet32 at boot, and pcnet32 will never be unloaded while the system is running.

This debdiff also fixes bug #306835 “vmware-guestd crashing” and bug #302226 “vmware-user doesn't autostart”, and descriptions of the corresponding patches are posted there.

The patched package has been in my PPA for four weeks, and confirmed working by three other users. Risk of regression is low, especially given that these three bugs essentially prevent the current Intrepid package from being useful in any way.

===

Binary package hint: open-vm-tools

After installing open-vm-tools, the network will not come up automatically after a reboot.

If the kernel modules have not been built yet, the open-vm-tools init script will rmmod the pcnet32 network driver, then try to modprobe vmxnet, and fail, leaving the system without networking.

If the kernel modules have been built, the open-vm-tools init script will rmmod the pcnet32 network driver, then try to modprobe vmxnet, which works, but the network doesn't come up. You have to rmmod vmxnet then re-modprobe it, then /etc/init.d/networking restart to bring the network up.

Seeing as most vmware guests are server, this is a serious issue, as it prevents automated startups.

Revision history for this message
Sam Bisbee (sbisbee) wrote :

The bug here appears to be in the packaging, not the init script and/or code.

Example, I am using pcnet32/vmxnet with init.d. The upstream wiki says that I need to have the following in my modprobe config (I have it in modprobe.d/open-vm-tools):
install pcnet32 /sbin/modprobe -q --ignore-install vmxnet; /sbin/modprobe -q --ignore-install pcnet32 $CMDLINE_OPTS; /bin/true;
(source: http://open-vm-tools.wiki.sourceforge.net/Packaging)

Without this, rebooting will cause the eth device to fail, as Craig described.

Revision history for this message
Ruben Laban (r-laban) wrote :

The above mentioned fix/workaround didn't work for me for some reason. Adding "vmxnet" to the list modules to be included in the initrd did work for me though.

Revision history for this message
Travis Hegner (thegner) wrote :

I can confirm this bug...

Host: VMWare ESXi 3.5
Guest: Ubuntu Server 8.10

Ruben,
Can you elaborate a little more on your solution, as the one that ravidgemole provided also does not work for me.

I will attempt to re-order the startup scripts so that the open-vm-tools starts before networking to see if that helps... I will post my results.

Travis

Revision history for this message
Ruben Laban (r-laban) wrote :

Travis,

I think it was as simple as adding "vmxnet" (on a single line) to the file "/etc/initramfs-tools/modules" and rebuild your initrd (using: sudo update-initramfs -u). Followed by a reboot ofcourse.

This is what I recall from what I did (I had same other projects take up my time in the mean time).

HTH.

Ruben

Revision history for this message
Travis Hegner (thegner) wrote :

Writing a simple bash script:

rmmod vmxnet
modprobe vmxnet
/etc/init.d/networking restart
exit 0

and adding to to launch from my rc.local worked for me.

Out of curiosity I removed the modprobe.d file that ravidgemole suggested and added vmxnet to my /etc/initramfs-tools/modules as Ruben suggested, and the tools fire up fine without messing with the module. (Thanks Ruben, easiest fix yet).

Unfortunately I believe I am now suffering from bug #306835 in which the vmware-guestd dameon only runs for about 1 minute and dies.

All that work for... well.... more work!

Still better than windows though!

Thanks guys,

Travis Hegner

Revision history for this message
Nicholas Lee (emptysands) wrote :

I can confirm the same problem and that both solutions: 1. rmmod and modprobe then restart network and 2. modprobe.d, work.

Sam Bisbee (sbisbee)
Changed in open-vm-tools:
status: New → Confirmed
Revision history for this message
Alex (alexander-stehlik) wrote :

I can confirm this bug. A possible solution might be this:
http://<email address hidden>/msg601467.html

It works for me.

System:
Ubuntu 8.10 Server
Kernel: 2.6.27-9-server
open-vm-tools: 2008.08.08-109361-1ubuntu2.1

Revision history for this message
Ruben Laban (r-laban) wrote :

I have another works-for-me (tm) solution (other than adding vmxnet to initrd):

Modify /etc/init.d/open-vm-tools:

--- /etc/init.d/open-vm-tools.orig 2009-01-19 10:57:02.000000000 +0100
+++ /etc/init.d/open-vm-tools 2009-01-19 10:51:49.000000000 +0100
@@ -67,6 +67,7 @@
                then
                        modprobe -r pcnet32
                        modprobe vmxnet
+ invoke-rc.d udev restart
                fi

                log_daemon_msg "Starting open-vm guest daemon" "vmware-guestd"

As for some reason the hardware change initiated by the guest tools isn't noticed by udev. Restarting udev does detect it. There might be a better way to signal udev in this case, but I don't know enough details about udev to figure that out.

I'd say this solution is better than modifying initrd, as it now only loads the vmxnet module when needed (and not always which is the case with a modified initrd).

Revision history for this message
vuori (vuori) wrote :

I'm also seeing this problem on 8.10 after installing the open-vm-tools package and modules from open-vm-source. This seems to be somewhat related to https://bugs.launchpad.net/ubuntu/+source/linux/+bug/209377 . Looks like both vmxnet and pcnet32 are loaded earlier in the boot process, but because pcnet32 already holds eth0, vmxnet gets nothing at that time. However, this leads to a problem in the init script because it will do "modprobe vmxnet" which is a no-op since vmxnet is already loaded.

The following appears to in the init script work:

ifdown --force eth0 # probably should use -a but I had only one interface
modprobe -r pcnet32 vmxnet # remove pcnet32 and the vmxnet instance that doesn't have any interfaces
modprobe vmxnet # vmxnet will now be reloaded and get the interface; eth0 is automatically ifup'd

Revision history for this message
John Haitas (jhaitas) wrote :

Here is my setup

VMWare Fusion 2.0.1 (128865)
Ubuntu 8.10 Desktop

I do NOT experience this with the amd64 architecture
I DO experience this with the i386 architecture

can anyone else confirm this?

Revision history for this message
Ian Justman (ianj) wrote :

Running Ubuntu 8.10 as both a host AND guest here with VMware Server 2.0.0 and I can definitely confirm the bug.

The suggestion of adding vmxnet to /etc/initramfs-tools/modules followed by an update-initramfs -u in the guest works perfectly for me. Network fires right up.

--Ian.

Revision history for this message
Ian Justman (ianj) wrote :

I should probably have clarified the above. I'm using the 32-bit version as both host and guest (since the host machine is a Northwood-class P4).

--Ian.

Revision history for this message
Anders Kaseorg (andersk) wrote :

<https://bugs.launchpad.net/ubuntu/+source/open-vm-tools/+bug/289921>

This was fixed in Lenny <http://bugs.debian.org/502365>, so we can fix this in Jaunty by syncing 2008.11.18-130226-1lenny1 from Lenny. Changelog since the Jaunty version:

open-vm-tools (2008.11.18-130226-1lenny1) testing; urgency=medium

  * Always prefering vmxnet over pcnet32 through modprobe and initramfs
    configuration (Closes: #502365).

 -- Daniel Baumann <email address hidden> Thu, 5 Feb 2009 01:11:00 +0100

I have also backported the necessary changes to the Intrepid package. The debdiff against Intrepid’s open-vm-tools 2008.08.08-109361-1ubuntu2.1 is attached. This also includes a fix for LP bug #306835.

Fixed packages for both Jaunty and Intrepid have been uploaded to my PPA:
<https://launchpad.net/~anders-kaseorg/+archive/ppa>

Revision history for this message
William Cattey (wdc-mit) wrote :

I have tested Anders's package under Intrepid and it fixes the reported problems.

I'll note in passing that Reuban Laban's work around did not work for me, but the fix Anders incorporated to make open-vm-tools run at a different time from init.d DID.

This seems like a pretty serious bug with a pretty simple fix. We go from, "install the package and lose the network" to "package installs and works".

I'd very much like to see this in Intrepid, and the additional fixes pushed into Jaunty.

Revision history for this message
Craig (candrews-integralblue) wrote :

I have also tested Anders's packages under Intrepid on a few VMs and they do fix this issue. It's a great improvement.

I really wish the open-vm modules were packaged for each kernel, though, so they don't need to be recompiled after each kernel upgrade.

Revision history for this message
Ian Justman (ianj) wrote :

I have built and tested Anders' version of the package on one of my test VMs. I have even removed the line I put into /etc/initramfs.d/modules which loads vmxnet as a workaround and it brings up the interface like it should.

--Ian.

Revision history for this message
Anders Kaseorg (andersk) wrote :

Thanks for all the feedback.
Note that my most recent debdiff (~andersk5 in my PPA) also fixes bug 302226 and is posted there.

The next steps are to sync open-vm-tools 2008.11.18-130226-1lenny1 into Jaunty, and upload my Intrepid package as an SRU.

Anders Kaseorg (andersk)
description: updated
Andreas Moog (ampelbein)
Changed in open-vm-tools:
importance: Undecided → High
Revision history for this message
Iain Lane (laney) wrote :

Sync request ACKed.

Changed in open-vm-tools:
importance: High → Low
status: Confirmed → New
Revision history for this message
Iain Lane (laney) wrote :

(note that this is a sync from *lenny* and not sid)

Changed in open-vm-tools:
status: New → Confirmed
status: New → Invalid
Revision history for this message
Steve Langasek (vorlon) wrote : Sync open-vm-tools 2008.11.18-130226-1lenny1 (multiverse) from Debian stable (contrib)

[Updating] open-vm-tools (2008.11.18-130226-1 [Ubuntu] < 2008.11.18-130226-1lenny1 [Debian])
 * Trying to add open-vm-tools...
  - <open-vm-tools_2008.11.18-130226-1lenny1.diff.gz: downloading from http://ftp.debian.org/debian/>
  - <open-vm-tools_2008.11.18-130226-1lenny1.dsc: downloading from http://ftp.debian.org/debian/>
  - <open-vm-tools_2008.11.18-130226.orig.tar.gz: already in distro - downloading from librarian>
I: open-vm-tools [multiverse] -> open-vm-tools_2008.11.18-130226-1 [multiverse].
I: open-vm-tools [multiverse] -> open-vm-toolbox_2008.11.18-130226-1 [multiverse].
I: open-vm-tools [multiverse] -> open-vm-tools-dbg_2008.11.18-130226-1 [multiverse].
I: open-vm-tools [multiverse] -> open-vm-source_2008.11.18-130226-1 [multiverse].

Changed in open-vm-tools:
status: Invalid → Fix Released
Revision history for this message
Steve Langasek (vorlon) wrote :

[Updating] open-vm-tools (2008.11.18-130226-1 [Ubuntu] < 2008.11.18-130226-1lenny1 [Debian])
 * Trying to add open-vm-tools...
  - <open-vm-tools_2008.11.18-130226-1lenny1.diff.gz: cached>
  - <open-vm-tools_2008.11.18-130226-1lenny1.dsc: cached>
  - <open-vm-tools_2008.11.18-130226.orig.tar.gz: already in distro - downloading from librarian>
I: open-vm-tools [multiverse] -> open-vm-tools_2008.11.18-130226-1 [multiverse].
I: open-vm-tools [multiverse] -> open-vm-toolbox_2008.11.18-130226-1 [multiverse].
I: open-vm-tools [multiverse] -> open-vm-tools-dbg_2008.11.18-130226-1 [multiverse].
I: open-vm-tools [multiverse] -> open-vm-source_2008.11.18-130226-1 [multiverse].

Changed in open-vm-tools:
status: Confirmed → Fix Released
status: Fix Released → Invalid
Anders Kaseorg (andersk)
Changed in open-vm-tools:
status: Invalid → Confirmed
description: updated
Revision history for this message
Anders Kaseorg (andersk) wrote : Re: network interface does not come up after installing open-vm-tools

Thanks. Here is the current debdiff that backports the necessary changes to Intrepid. It also includes fixes for bug 306835 and bug 302226.

Revision history for this message
Dustin Kirkland  (kirkland) wrote :

Hi Anders-

Can you please file an SRU for Intrepid?
 * https://wiki.ubuntu.com/StableReleaseUpdates

:-Dustin

(I'm going to unsubscribe ubuntu-archive, since Steve has performed the sync for Jaunty)

Anders Kaseorg (andersk)
description: updated
Revision history for this message
John Haitas (jhaitas) wrote :

I no longer experience this bug

Revision history for this message
Anders Kaseorg (andersk) wrote :

Yes, this bug is fixed in Jaunty. However, Intrepid still needs this SRU.

Revision history for this message
Alex Valavanis (valavanisalex) wrote :

Intrepid Ibex reached end-of-life on 30 April 2010 so I am closing the
report. The bug has been fixed in newer releases of Ubuntu.

Changed in open-vm-tools (Ubuntu Intrepid):
status: Confirmed → Invalid
Changed in open-vm-tools (Debian):
status: Unknown → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.