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