Bug 472200 - IPv6 sendto fails EADDRNOTAVAIL when there are bound sockets to the same multicast address
Summary: IPv6 sendto fails EADDRNOTAVAIL when there are bound sockets to the same mult...
Keywords:
Status: CLOSED CANTFIX
Alias: None
Product: Red Hat Enterprise Linux 4
Classification: Red Hat
Component: kernel
Version: 4.9
Hardware: All
OS: Linux
medium
medium
Target Milestone: rc
: ---
Assignee: Thomas Graf
QA Contact: Martin Jenner
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2008-11-19 11:20 UTC by Pekka Savola
Modified: 2014-06-18 08:29 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2012-05-10 12:46:50 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

Description Pekka Savola 2008-11-19 11:20:38 UTC
Description of problem:
On, RHEL4 IPv6 sendto to a multicast fails with EADDRNOTAVAIL when there are bind()'ed sockets to the same multicast address.

This works in RHEL5  kernel-2.6.18-92.1.13.el5 and Fedora 9 kernel.
IPv4 also appears to work.

Version-Release number of selected component (if applicable):
kernel-2.6.9-78.0.5.EL

How reproducible:

Download ttcp from http://netcore.fi/pekkas/linux/ipv6/ttcp.c, compile it.
The prerequisites are that there is some ipv6 connectivity (at least ff00::/8 route exists) and that ip6tables is disabled (or at least packets to ff00::/8 are accepted).

Steps to Reproduce:
1. start two ipv6 multicast receivers: 'ttcp -r ff05::1 -u -p 1234 -I eth0 &' and 'ttcp -r ff05::2 -u -p 1234 -I eth0 &'
2. try to send to the group: 'ttcp -t ff05::2 -u -p 1234 -I eth0', type in something and hit enter (here tested 'aaa').

Actual results:
ttcp-t: buflen=8192, nbuf=2048, align=16384/0, port=1234  udp  -> ff05::1234
ttcp-t: socket
aaa
ttcp-t: IO: Cannot assign requested address
errno=99

Expected results:
No error printed.  'aaa' is echoed by the ttcp process set to receive the multicast group.

Additional info:
The expected state of bound sockets after reproduce step 1 is:

$ netstat -an | grep 1234
udp        0      0 ff05::2:1234                :::*
udp        0      0 ff05::1:1234                :::*
$ netstat -gn | grep ff05
eth0            1      ff05::2
eth0            1      ff05::1

sendto failure looks like:

sendto(3, "aaa\n", 4, 0, {sa_family=AF_INET6, sin6_port=htons(1234), inet_pton(AF_INET6, "ff05::1", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 EADDRNOTAVAIL (Cannot assign requested address)

See comment #46 in bug number #231899 for some background.

Comment 1 Thomas Graf 2012-05-10 12:46:50 UTC
RHEL4 has entered the Extended Life Phase. There will be no more minor releases.

I'm closing this bug due to inactivity.

Please reopen and provide an explanation if you need this issue to be addressed in a RHEL4. Please note that only security and critical bugfixes are considered at this point.


Note You need to log in before you can comment on or make changes to this bug.