kernel fails to notify IPv6 allocation correctly.

Bug #863394 reported by Neil Wilson
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Fix Released
Undecided
Brad Figg
Lucid
Fix Released
Undecided
Unassigned

Bug Description

SRU Justification

Impact:

2.6.32 has a problem with allocating IPv6 addresses that shows up using later versions of libvirt, or if you create lots of IPv6 addresses manually.

What happens is that 'ip addr show dev' for a particular device fails to show the ipv6 addresses on them, yet they are there in the 'ifconfig' listing for that device.

Fix:

Cherry pick commit bcd323262a94b14b84341982b90443a76a477861

Testcase:

See comment #7

ProblemType: Bug
DistroRelease: Ubuntu 10.04
Package: linux-image-2.6.32-34-generic-pae (not installed)
Regression: Yes
Reproducible: Yes
ProcVersionSignature: User Name 2.6.32-34.77-generic-pae 2.6.32.44+drm33.19
Uname: Linux 2.6.32-34-generic-pae i686
AlsaDevices: Error: command ['ls', '-l', '/dev/snd/'] failed with exit code 2: ls: cannot access /dev/snd/: No such file or directory
AplayDevices: Error: [Errno 2] No such file or directory
Architecture: i386
ArecordDevices: Error: [Errno 2] No such file or directory
Date: Fri Sep 30 14:59:29 2011
Lsusb: Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
MachineType: Red Hat KVM
PciMultimedia:

ProcCmdLine: root=UUID=7b800741-472f-463d-a00b-a5fcb724d796 ro quiet splash
ProcEnviron:
 LANG=en_US.UTF-8
 SHELL=/bin/bash
SourcePackage: linux
dmi.bios.date: 01/01/2007
dmi.bios.vendor: Seabios
dmi.bios.version: 0.5.1
dmi.chassis.type: 1
dmi.chassis.vendor: Red Hat
dmi.modalias: dmi:bvnSeabios:bvr0.5.1:bd01/01/2007:svnRedHat:pnKVM:pvrRHEL6.1.0PC:cvnRedHat:ct1:cvr:
dmi.product.name: KVM
dmi.product.version: RHEL 6.1.0 PC
dmi.sys.vendor: Red Hat

Revision history for this message
Neil Wilson (neil-aldur) wrote :
Revision history for this message
Neil Wilson (neil-aldur) wrote :

Steps to replicate

From a clean booted Lucid server (cloud image or otherwise).

sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install bridge-utils dnsmasq-base ruby
Install the attached files (bradd.sh, create-bridges.rb) in the home directory and run

sudo ./create-bridges.rb 25 50
System will create bridges up to br25006e (the 28th bridge) and then fail with

dnsmasq: no interface with address 2a02:1348:134:401b:24:19ff:fe25:6e
You can start the sequence again with another set of bridges

sudo ./create-bridges.rb 26 50
'26' is the prefix differentiator and '50' is the number of bridges you want.

It doesn't appear to fail again.

Brad Figg (brad-figg)
Changed in linux (Ubuntu):
status: New → Confirmed
Revision history for this message
Neil Wilson (neil-aldur) wrote :
Revision history for this message
Neil Wilson (neil-aldur) wrote :

ip -o -6 addr show dev br25006e

Will then return no entry, but

ifconfig br25006e

shows the ipv6 addresses as expected.

Revision history for this message
Neil Wilson (neil-aldur) wrote :

Later kernels don't appear to suffer this fault, but it is replicable on RHEL 6.x and derivatives, which uses the 2.6.32 kernel similarly.

Revision history for this message
Neil Wilson (neil-aldur) wrote :
Revision history for this message
Neil Wilson (neil-aldur) wrote :

This fault can be shown more simply with the attached create dummies ruby script, which simply adds 16 IPv6 addresses to dummy interfaces.

Running ./create-dummies.rb creates five dummy interfaces 'dummy01' to 'dummy05' each with 16 IPv6 addresses on them.

Running 'ip addr show dev dummy04' and 'ifconfig dummy04' shows the problem on Lucid, but not on Natty.

Revision history for this message
Neil Wilson (neil-aldur) wrote :

Running 'ip link del dummy01' moves the problem from dummy04 to dummy05

Revision history for this message
Neil Wilson (neil-aldur) wrote :

Fixes backported to 2.6.32

Revision history for this message
Neil Wilson (neil-aldur) wrote :

Fault has been introduced by commit 5d5619b40c2474de01c64bdf6bb9f1211d3e967a

https://github.com/mirrors/linux-2.6/commit/5d5619b40c2474de01c64bdf6bb9f1211d3e967a

which fails to check the return value of 'err' and break out of the enclosing for loop.

The fault is corrected during the refactoring on commit 234b27c3fd58fc0e15c04dd0fbf4337fac9c2a06

https://github.com/mirrors/linux/commit/234b27c3fd58fc0e15c04dd0fbf4337fac9c2a06

Revision history for this message
Brad Figg (brad-figg) wrote :

@Neil,

I've applied your patch to the latest Lucid kernel source and have test kernels available at: http://people.canonical.com/~bradf/lp863394/

Please test and add a comment back here indicating if they fix your issue or not.

Brad Figg (brad-figg)
Changed in linux (Ubuntu):
status: Confirmed → Incomplete
tags: added: patch
Revision history for this message
Neil Wilson (neil-aldur) wrote :

Confirmed fixed on i386.

Revision history for this message
Neil Wilson (neil-aldur) wrote :

Confirmed fixed on amd64

Changed in linux (Ubuntu):
status: Incomplete → Confirmed
Brad Figg (brad-figg)
description: updated
Changed in linux (Ubuntu):
status: Confirmed → In Progress
assignee: nobody → Brad Figg (brad-figg)
Brad Figg (brad-figg)
description: updated
Tim Gardner (timg-tpi)
Changed in linux (Ubuntu):
status: In Progress → Fix Released
Changed in linux (Ubuntu Lucid):
status: New → Fix Committed
Revision history for this message
Herton R. Krzesinski (herton) wrote :

This bug is awaiting verification that the kernel in -proposed solves the problem (2.6.32-38.83). Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-lucid' to 'verification-done-lucid'.

If verification is not done by one week from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-lucid
Revision history for this message
Neil Wilson (neil-aldur) wrote :

Confirmed fixed on i686 with kernel

2.6.32-38-generic-pae #83-Ubuntu SMP Wed Jan 4 12:11:13 UTC 2012 i686 GNU/Linux

Confirmed fixed on x86_64 with kernel

2.6.32-38-server #83-Ubuntu SMP Wed Jan 4 11:26:59 UTC 2012 x86_64 GNU/Linux

Many thanks!

tags: added: verification-done-lucid
removed: verification-needed-lucid
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (4.4 KiB)

This bug was fixed in the package linux - 2.6.32-38.83

---------------
linux (2.6.32-38.83) lucid-proposed; urgency=low

  [Herton R. Krzesinski]

  * Release Tracking Bug
    - LP: #911405

  [ Upstream Kernel Changes ]

  * Revert "clockevents: Set noop handler in clockevents_exchange_device()"
    - LP: #911392
  * Linux 2.6.32.52
    - LP: #911392

linux (2.6.32-38.82) lucid-proposed; urgency=low

  [Herton R. Krzesinski]

  * Release Tracking Bug
    - LP: #910906

  [ Tetsuo Handa ]

  * SAUCE: netns: Add quota for number of NET_NS instances.

  [ Tim Gardner ]

  * [Config] CONFIG_NET_NS=y
    - LP: #790863

  [ Upstream Kernel Changes ]

  * Revert "core: Fix memory leak/corruption on VLAN GRO_DROP,
    CVE-2011-1576"
  * hfs: fix hfs_find_init() sb->ext_tree NULL ptr oops, CVE-2011-2203
    - LP: #899466
    - CVE-2011-2203
  * net: ipv4: relax AF_INET check in bind()
    - LP: #900396
  * KEYS: Fix a NULL pointer deref in the user-defined key type,
    CVE-2011-4110
    - LP: #894369
    - CVE-2011-4110
  * i2c-algo-bit: Generate correct i2c address sequence for 10-bit target
    - LP: #902317
  * eCryptfs: Extend array bounds for all filename chars
    - LP: #902317
  * PCI hotplug: shpchp: don't blindly claim non-AMD 0x7450 device IDs
    - LP: #902317
  * ARM: 7161/1: errata: no automatic store buffer drain
    - LP: #902317
  * ALSA: lx6464es - fix device communication via command bus
    - LP: #902317
  * SUNRPC: Ensure we return EAGAIN in xs_nospace if congestion is cleared
    - LP: #902317
  * timekeeping: add arch_offset hook to ktime_get functions
    - LP: #902317
  * p54spi: Add missing spin_lock_init
    - LP: #902317
  * p54spi: Fix workqueue deadlock
    - LP: #902317
  * nl80211: fix MAC address validation
    - LP: #902317
  * gro: reset vlan_tci on reuse
    - LP: #902317
  * staging: usbip: bugfix for deadlock
    - LP: #902317
  * staging: comedi: fix oops for USB DAQ devices.
    - LP: #902317
  * Staging: comedi: fix signal handling in read and write
    - LP: #902317
  * USB: whci-hcd: fix endian conversion in qset_clear()
    - LP: #902317
  * usb: ftdi_sio: add PID for Propox ISPcable III
    - LP: #902317
  * usb: option: add SIMCom SIM5218
    - LP: #902317
  * USB: usb-storage: unusual_devs entry for Kingston DT 101 G2
    - LP: #902317
  * SCSI: scsi_lib: fix potential NULL dereference
    - LP: #902317
  * SCSI: Silencing 'killing requests for dead queue'
    - LP: #902317
  * cifs: fix cifs stable patch cifs-fix-oplock-break-handling-try-2.patch
    - LP: #902317
  * sched, x86: Avoid unnecessary overflow in sched_clock
    - LP: #902317
  * x86/mpparse: Account for bus types other than ISA and PCI
    - LP: #902317
  * oprofile, x86: Fix crash when unloading module (nmi timer mode)
    - LP: #902317
  * genirq: Fix race condition when stopping the irq thread
    - LP: #902317
  * tick-broadcast: Stop active broadcast device when replacing it
    - LP: #902317
  * clockevents: Set noop handler in clockevents_exchange_device()
    - LP: #902317
  * Linux 2.6.32.50
    - LP: #902317
  * nfsd4: permit read opens of executable-only files
    - LP: #833300
  * ipv6: Allow inet6_dump_addr() to handle more t...

Read more...

Changed in linux (Ubuntu Lucid):
status: Fix Committed → 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.