Bug 822503

Summary: ipv6 tapset support
Product: Red Hat Enterprise Linux 6 Reporter: Bryn M. Reeves <bmr>
Component: systemtapAssignee: Frank Ch. Eigler <fche>
Status: CLOSED ERRATA QA Contact: Martin Cermak <mcermak>
Severity: medium Docs Contact:
Priority: medium    
Version: 6.3CC: mcermak, mjw, scox
Target Milestone: rc   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: systemtap-1.8-5.el6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-02-21 08:50:14 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Bryn M. Reeves 2012-05-17 14:40:47 UTC
Description of problem:
The existing tapset libraries provide probes and functions for common networking subsystems including Sun RPC and NFS. The implementation in systemtap 1.7 only supports the AF_INET (ipv4) address family.

Version-Release number of selected component (if applicable):
systemtap-1.7-*.el6

How reproducible:
100%

Steps to Reproduce:
1. On a system with ipv6 enabled execute a script that will evaluate a tapset variable containing an IP address or that calls a tapset function returning an IP address
  
Actual results:
Address filled as "Unsupported Address Family"

Expected results:
Address filled with valid ipv6 address

Additional info:

I noticed this with the nfsdtop.stp example which evaluates the client_ip tapset variable in a number of probes:

probe nfsd.proc.lookup {
        nfsd_lookups <<< 1
        nfsd_lookup_clients[client_ip] <<< 1
        nfsd_lookup_clients_last_file[client_ip] = filename
}

Using the script on a host with ipv6 clients causes most operations to be attributed to "Unsupported Address Family". This comes from the rpc.stp tapset:

        if (s_addr == 0)
                return "Unsupported Address Family"
        return sprintf("%s:%d", daddr_to_string(s_addr),
                       @cast(addr, "sockaddr_in")->sin_port)

This work has been tracked upstream as PR13646 and systemtap-1.8 will include much better ipv6 support in these tapsets.

Comment 1 Bryn M. Reeves 2012-05-17 14:45:34 UTC
sourceware.org bugzilla:

http://sourceware.org/bugzilla/show_bug.cgi?id=13646

"Base IPv6 support added in commits: b88df2, d5c431, 258532, ac9732, 7447cb,
57d584, df7d21, 032226, 1ed417, 96f244, a3c777.  The tcp.stp tapset in
particular now works correctly with IPv4 and IPv6 addresses.  A testcase was
added to make sure IPv4 and IPv6 addresses are converted correctly."

There are still some problems in nfs_proc.stp (tracked in PR13793) where binary addresses are passed around:

http://sourceware.org/bugzilla/show_bug.cgi?id=13793

These are still being worked on but the changes already committed are enough to make simple scripts (like nfsdtop) work properly on ipv6-enabled hosts.

Comment 2 RHEL Program Management 2012-07-10 06:50:45 UTC
This request was not resolved in time for the current release.
Red Hat invites you to ask your support representative to
propose this request, if still desired, for consideration in
the next release of Red Hat Enterprise Linux.

Comment 3 RHEL Program Management 2012-07-11 01:51:45 UTC
This request was erroneously removed from consideration in Red Hat Enterprise Linux 6.4, which is currently under development.  This request will be evaluated for inclusion in Red Hat Enterprise Linux 6.4.

Comment 9 errata-xmlrpc 2013-02-21 08:50:14 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHBA-2013-0345.html