Bug#598140: ifconfig: ifdown, pause, ifup causes page allocation failure
Francesco Poli (t1000)
frx at firenze.linux.it
Sun Sep 26 19:51:27 UTC 2010
Package: net-tools
Version: 1.60-23
Severity: normal
Hi and thanks for maintaining net-tools in Debian!
Today something very strange happened to me.
I had to perform some tests which *required* network problems.
In order to simulate network problems, I decided to bring the eth
interface of my box down:
# ifdown eth1
My /etc/network/interfaces is nothing particularly fancy:
$ cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth1
iface eth1 inet dhcp
Hence, the ifdown command simply caused dhcp3-client/4.1.1-P1-9 to
release the IP address and the eth interface got deconfigured.
So far so good.
I performed the tests (which involved attempting network connections
to a remote host, and obviously the attempts had to fail and indeed
failed).
When the tests were completed to my satisfaction, some time had passed
and I decided to bring the eth interface back up.
# ifup eth1
Internet Systems Consortium DHCP Client 4.1.1-P1
Copyright 2004-2010 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
SIOCSIFFLAGS: Cannot allocate memory
SIOCSIFFLAGS: Cannot allocate memory
Listening on LPF/eth1/00:18:f3:05:c0:fc
Sending on LPF/eth1/00:18:f3:05:c0:fc
Sending on Socket/fallback
receive_packet failed on eth1: Network is down
DHCPDISCOVER on eth1 to 255.255.255.255 port 67 interval 5
send_packet: Network is down
DHCPDISCOVER on eth1 to 255.255.255.255 port 67 interval 10
send_packet: Network is down
DHCPDISCOVER on eth1 to 255.255.255.255 port 67 interval 15
send_packet: Network is down
DHCPDISCOVER on eth1 to 255.255.255.255 port 67 interval 14
send_packet: Network is down
DHCPDISCOVER on eth1 to 255.255.255.255 port 67 interval 10
send_packet: Network is down
DHCPDISCOVER on eth1 to 255.255.255.255 port 67 interval 7
send_packet: Network is down
No DHCPOFFERS received.
No working leases in persistent database - sleeping.
To my big surprise, I was not able to bring the interface up! :-(
My /var/log/kern.log got filled with many error messages like the
following:
kernel: [27695.913716] ifconfig: page allocation failure. order:3, mode:0x4020
kernel: [27695.913722] Pid: 21600, comm: ifconfig Not tainted 2.6.32-5-amd64 #1
kernel: [27695.913725] Call Trace:
kernel: [27695.913738] [<ffffffff810b9f30>] ? __alloc_pages_nodemask+0x55b/0x5cf
kernel: [27695.913745] [<ffffffff81248183>] ? __netdev_alloc_skb+0x29/0x43
kernel: [27695.913752] [<ffffffff810e602e>] ? kmalloc_large_node+0x5d/0x9b
kernel: [27695.913756] [<ffffffff81247595>] ? __alloc_skb+0x69/0x15a
kernel: [27695.913762] [<ffffffff81016423>] ? nommu_map_page+0x0/0xa0
kernel: [27695.913766] [<ffffffff81248183>] ? __netdev_alloc_skb+0x29/0x43
kernel: [27695.913775] [<ffffffffa002a535>] ? rtl8169_rx_fill+0xac/0x15c [r8169]
kernel: [27695.913780] [<ffffffffa002c3ed>] ? rtl8169_init_ring+0x68/0x97 [r8169]
kernel: [27695.913786] [<ffffffffa002cc08>] ? rtl8169_open+0x7e/0x19b [r8169]
kernel: [27695.913791] [<ffffffff8124fe17>] ? dev_open+0xa4/0xe6
kernel: [27695.913796] [<ffffffff8124f5e2>] ? dev_change_flags+0xaf/0x16d
kernel: [27695.913801] [<ffffffff81297923>] ? devinet_ioctl+0x274/0x52d
kernel: [27695.913807] [<ffffffff8123f65d>] ? sock_ioctl+0x1f2/0x216
kernel: [27695.913813] [<ffffffff810fa032>] ? vfs_ioctl+0x21/0x6c
kernel: [27695.913817] [<ffffffff810fa580>] ? do_vfs_ioctl+0x48d/0x4cb
kernel: [27695.913823] [<ffffffff812fd0d6>] ? do_page_fault+0x2e0/0x2fc
kernel: [27695.913827] [<ffffffff810fa60f>] ? sys_ioctl+0x51/0x70
kernel: [27695.913831] [<ffffffff81010b42>] ? system_call_fastpath+0x16/0x1b
kernel: [27695.913835] Mem-Info:
kernel: [27695.913837] Node 0 DMA per-cpu:
kernel: [27695.913841] CPU 0: hi: 0, btch: 1 usd: 0
kernel: [27695.913844] CPU 1: hi: 0, btch: 1 usd: 0
kernel: [27695.913846] Node 0 DMA32 per-cpu:
kernel: [27695.913850] CPU 0: hi: 186, btch: 31 usd: 72
kernel: [27695.913853] CPU 1: hi: 186, btch: 31 usd: 36
kernel: [27695.913859] active_anon:21678 inactive_anon:33316 isolated_anon:0
kernel: [27695.913861] active_file:28100 inactive_file:15390 isolated_file:0
kernel: [27695.913862] unevictable:2 dirty:19 writeback:0 unstable:0
kernel: [27695.913864] free:9384 slab_reclaimable:3659 slab_unreclaimable:3398
kernel: [27695.913865] mapped:7906 shmem:9147 pagetables:2527 bounce:0
kernel: [27695.913869] Node 0 DMA free:6192kB min:84kB low:104kB high:124kB active_anon:4kB inactive_anon:3632kB active_file:848kB inactive_file:196kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:15308kB mlocked:0kB dirty:0kB writeback:0kB mapped:524kB shmem:428kB slab_reclaimable:3296kB slab_unreclaimable:1020kB kernel_stack:40kB pagetables:112kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no
kernel: [27695.913884] lowmem_reserve[]: 0 473 473 473
kernel: [27695.913889] Node 0 DMA32 free:31344kB min:2736kB low:3420kB high:4104kB active_anon:86708kB inactive_anon:129632kB active_file:111552kB inactive_file:61364kB unevictable:8kB isolated(anon):0kB isolated(file):0kB present:484356kB mlocked:8kB dirty:76kB writeback:0kB mapped:31100kB shmem:36160kB slab_reclaimable:11340kB slab_unreclaimable:12572kB kernel_stack:1880kB pagetables:9996kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no
kernel: [27695.913904] lowmem_reserve[]: 0 0 0 0
kernel: [27695.913909] Node 0 DMA: 478*4kB 299*8kB 116*16kB 1*32kB 0*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 6192kB
kernel: [27695.913923] Node 0 DMA32: 2566*4kB 1670*8kB 474*16kB 4*32kB 0*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 31336kB
kernel: [27695.913936] 66739 total pagecache pages
kernel: [27695.913938] 14098 pages in swap cache
kernel: [27695.913941] Swap cache stats: add 123656, delete 109558, find 24295/33496
kernel: [27695.913944] Free swap = 1753760kB
kernel: [27695.913946] Total swap = 1953784kB
kernel: [27695.916786] 126848 pages RAM
kernel: [27695.916791] 3864 pages reserved
kernel: [27695.916794] 52384 pages shared
kernel: [27695.916797] 79652 pages non-shared
I tried to bring the interface down and then up again:
# ifdown eth1
# ifup eth1
but the problem was still there.
I tried to unload and then reload the NIC kernel module:
# modprobe -r r8169
# modprobe r8169
but the problem was not solved.
Only after a
# reboot
I was able to have my network interface work again... :-(
What happened?
Why did ifconfig experience a page allocation failure?
What did I fail to understand?
What did I do the wrong way?
Please help!
Thanks a lot for your time.
-- System Information:
Debian Release: squeeze/sid
APT prefers testing
APT policy: (800, 'testing'), (500, 'unstable')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.32-5-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages net-tools depends on:
ii libc6 2.11.2-6 Embedded GNU C Library: Shared lib
net-tools recommends no packages.
net-tools suggests no packages.
-- no debconf information
More information about the Pkg-net-tools-maintainers
mailing list