RTNETLINK answers: Cannot allocate memory (CentOS 6 VM)

dalearyous

Senior member
Jan 8, 2006
836
0
0
my virtual machine was working fine yesterday, this morning it boots with network error and while i can remote control the machine just fine using vsphere's VM console, i cannot access the machine on the network because i do this:

Code:
ifup eth0
i get this: RTNETLINK answers: Cannot allocate memory

in the top right of the desktop i have an x on the network symbol and when i click on it it says wired network, device not managed.

if i set NM_CONTROLLED = yes
i get this when i do "service network restart"
connection failed, device not managed by network manager or unavailable and the wired network shows disconnected

if i do system-config-network and hit device configuration it pulls up eth0 (eth0) - Advanced Micro Devices [AMD] ... nothing about my server is AMD, its an HP Proliant with Xeon CPUs

so confused right now. help me
 

mv2devnull

Golden Member
Apr 13, 2010
1,519
154
106
If you do want NM_CONTROLLED, then you don't use 'network'. I would do:
Code:
service NetworkManager stop
chkconfig NetworkManager off
service network stop
chkconfig network on
sed -i "/NM_CONTROLLED/ s/yes/no/" /etc/sysconfig/network-scripts/ifcfg-eth0
service network start
yum remove NetworkManager
Please post the contents of /etc/sysconfig/network-scripts/ifcfg-eth0.

Do you have automatic updates on? 6.3 was just released, so that could explain sudden and recent change.
 

dalearyous

Senior member
Jan 8, 2006
836
0
0
service network start gave this error:
Determining IP information for eth0 ...RTNETLINK answers: Cannot allocate memory

ifcfg-eth0:
Code:
DEVICE=eth0
BOOTPROTO=dhcp
NM_CONTROLLED=no
ONBOOT=yes
TYPE=Ethernet
UUID="string of characters"
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
NAME="System eth0"
HWADDR=the mac address
PEERDNS=yes
PEERROUTES=yes
LAST_CONNECT=1342009075
USERCTL=no

no i started with version 6.3
 

mv2devnull

Golden Member
Apr 13, 2010
1,519
154
106
Lets dig some info from your system. What do these show:
Code:
ip li
lspci -nn | grep net
ethtool -i eth0
 

dalearyous

Senior member
Jan 8, 2006
836
0
0
1: lo: <LOOPBACK, UP, LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0 <BROADCAST, MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
link/ether 00:0c:29:90:f0:** brd ff:ff:ff:ff:ff:ff


02:00.0 Ethernet controller [0200]: Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] [1022:2000] (rev 10)


driver: vmxnet
version 2.0.7.2
firmeware-version: N/A
bus-info: 0000:02:00.0
 

mv2devnull

Golden Member
Apr 13, 2010
1,519
154
106
How about:
Code:
modprobe -c | grep 1022.*2000
I do get "alias pci:v00001022d00002000sv*sd*bc*sc*i* pcnet32" indicating that the driver for the NIC should be pcnet32. (On kernel-2.6.32-279.el6.x86_64) Can you choose what NIC is emulated by the VM platform?
 
Last edited:

dalearyous

Senior member
Jan 8, 2006
836
0
0
alias pic"v00001022d00002000sv*sd*bc*sc*i* pcnet32
alias pic"v00001022d00002000sv*sd*bc*sc*i* vmxnet

i don't think so. the vm platform is vmware's esxi

i have never had an issue like this before and this is my second server running same platform.
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
Is there anything in dmesg? It sounds like a driver issue to me, even though you wouldn't think so since the hardware and drivers are standard with VMware.
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
Errors?

The dmesg buffer holds all of the kernel logs, so one would hope that if it's really having issues allocating memory there would be some kind of log entry stating that.
 

mv2devnull

Golden Member
Apr 13, 2010
1,519
154
106
alias pic"v00001022d00002000sv*sd*bc*sc*i* pcnet32
alias pic"v00001022d00002000sv*sd*bc*sc*i* vmxnet

i don't think so. the vm platform is vmware's esxi
I would guess that vmxnet is a driver provided by vmware. It is strange that it uses same pci-id as some different driver. I would rule out one detail by blacklisting the pcnet32.
Code:
echo "blacklist pcnet32" > /etc/modprobe.d/we-have-no-amd.conf
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
I would guess that vmxnet is a driver provided by vmware. It is strange that it uses same pci-id as some different driver. I would rule out one detail by blacklisting the pcnet32.
Code:
echo "blacklist pcnet32" > /etc/modprobe.d/we-have-no-amd.conf

It's like that on purpose so that the pcnet32 driver be used for connectivity before you install the VMware tools and for OSes without VMware tools. I believe ESXi also lets you choose Intel for the emulated NIC.
 

mv2devnull

Golden Member
Apr 13, 2010
1,519
154
106
It's like that on purpose so that the pcnet32 driver be used for connectivity before you install the VMware tools and for OSes without VMware tools. I believe ESXi also lets you choose Intel for the emulated NIC.
Gotcha. Similarly, KVM can emulate several NICs, but in addition offers a "virtio" mode, which requires its own KVM-specific driver.
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
Gotcha. Similarly, KVM can emulate several NICs, but in addition offers a "virtio" mode, which requires its own KVM-specific driver.

VMware can also present a few other models, such as e1000 for some older OSes not supported by the VMware tools but you need to install the VMware tools, which include the vmxnet driver, for proper performance and support.