From owner-freebsd-bugs@FreeBSD.ORG Thu Apr 11 15:00:01 2013 Return-Path: Delivered-To: freebsd-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 79E91887 for ; Thu, 11 Apr 2013 15:00:01 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 602AEFD0 for ; Thu, 11 Apr 2013 15:00:01 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.6/8.14.6) with ESMTP id r3BF01Wb030844 for ; Thu, 11 Apr 2013 15:00:01 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.6/8.14.6/Submit) id r3BF01Wn030843; Thu, 11 Apr 2013 15:00:01 GMT (envelope-from gnats) Resent-Date: Thu, 11 Apr 2013 15:00:01 GMT Resent-Message-Id: <201304111500.r3BF01Wn030843@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Fabian Wenk Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 142BE7B4 for ; Thu, 11 Apr 2013 14:56:42 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from red.freebsd.org (red.freebsd.org [IPv6:2001:4f8:fff6::22]) by mx1.freebsd.org (Postfix) with ESMTP id E7B1FFA0 for ; Thu, 11 Apr 2013 14:56:41 +0000 (UTC) Received: from red.freebsd.org (localhost [127.0.0.1]) by red.freebsd.org (8.14.5/8.14.5) with ESMTP id r3BEueCe020974 for ; Thu, 11 Apr 2013 14:56:40 GMT (envelope-from nobody@red.freebsd.org) Received: (from nobody@localhost) by red.freebsd.org (8.14.5/8.14.5/Submit) id r3BEueRe020973; Thu, 11 Apr 2013 14:56:40 GMT (envelope-from nobody) Message-Id: <201304111456.r3BEueRe020973@red.freebsd.org> Date: Thu, 11 Apr 2013 14:56:40 GMT From: Fabian Wenk To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Subject: bin/177781: rpc.statd / rpc.lockd do not start when used with -p option and ipv6_ipv4mapping="YES" is set in /etc/rc.conf X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Apr 2013 15:00:01 -0000 >Number: 177781 >Category: bin >Synopsis: rpc.statd / rpc.lockd do not start when used with -p option and ipv6_ipv4mapping="YES" is set in /etc/rc.conf >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Thu Apr 11 15:00:00 UTC 2013 >Closed-Date: >Last-Modified: >Originator: Fabian Wenk >Release: FreeBSD 9.1-RELEASE amd64 >Organization: >Environment: FreeBSD batman.home4u.ch 9.1-RELEASE-p1 FreeBSD 9.1-RELEASE-p1 #0 r248931: Sat Mar 30 18:07:14 CET 2013 root@batman.home4u.ch:/usr/obj/usr/src/sys/BATMAN amd64 >Description: After the upgrade from FreeBSD 7.4 to 9.1 during system boot statd / lockd report the following errors and do not start: Apr 3 02:19:45 batman rpc.statd: bindresvport_sa: Address already in use Apr 3 02:19:45 batman kernel: Starting statd.Apr 3 02:19:45 batman root: /etc/rc: WARNING: failed to start statd Apr 3 02:19:45 batman rpc.lockd: Starting Apr 3 02:19:45 batman kernel: /etc/rc: WARNING: failed to start statd Apr 3 02:19:45 batman kernel: Starting lockd. Apr 3 02:19:45 batman kernel: NLM: failed to contact remote rpcbind, stat = 0, port = 0 Apr 3 02:19:45 batman kernel: NLM: failed to contact remote rpcbind, stat = 0, port = 0 Apr 3 02:19:45 batman kernel: Can't start NLM - unable to contact NSM The same errors are logged when /etc/rc.d/statd is run manually: Apr 3 02:21:18 batman rpc.statd: bindresvport_sa: Address already in use Apr 3 02:21:18 batman root: /etc/rc.d/statd: WARNING: failed to start statd Relevant configuration in /etc/rc.conf (two interfaces, one with multiple IP addresses): # IPv4 ifconfig_em0="inet 62.12.173.2 netmask 255.255.255.224" ifconfig_em0_alias0="inet 192.168.1.2 netmask 255.255.255.0" ifconfig_em0_alias1="inet 62.12.173.11 netmask 255.255.255.255" ifconfig_em1="inet 62.2.85.178 netmask 255.255.255.240" defaultrouter="62.12.173.1" gateway_enable="YES" # IPv6 ip6addrctl_policy="ipv6_prefer" ipv6_ipv4mapping="YES" # Set to "YES" to enable IPv4 mapped IPv6 addr communication. (like ::ffff:a.b.c.d) ifconfig_em0_ipv6="inet6 2001:8a8:1005:1::2 prefixlen 64" ifconfig_em0_alias2="inet6 2001:8a8:1005:1::11 prefixlen 64" ifconfig_em1_ipv6="inet6 2001:8a8:1005:2::178 prefixlen 64" ipv6_defaultrouter="2001:8a8:1005:1::1" ipv6_gateway_enable="YES" # IPv6 6to4 gateway stf_interface_ipv4addr="62.12.173.2" # IPv6 router advertisement rtadvd_enable="YES" rtadvd_interfaces="em0 em1" # NFS rpcbind_enable="YES" nfs_client_enable="YES" rpc_lockd_enable="YES" rpc_lockd_flags="-p 4045" rpc_statd_enable="YES" rpc_statd_flags="-p 4046" With the following workaround I could start statd / lockd manually: sysctl net.inet6.ip6.v6only=0 /etc/rc.d/statd start /etc/rc.d/lockd start sysctl net.inet6.ip6.v6only=1 And statd / lockd are running as they should: root@batman:~ # rpcinfo -p program vers proto port service 100000 4 tcp 111 rpcbind 100000 3 tcp 111 rpcbind 100000 2 tcp 111 rpcbind 100000 4 udp 111 rpcbind 100000 3 udp 111 rpcbind 100000 2 udp 111 rpcbind 100000 4 local 111 rpcbind 100000 3 local 111 rpcbind 100000 2 local 111 rpcbind 300019 1 tcp 795 amd 300019 1 udp 970 amd 100024 1 udp 4046 status 100024 1 tcp 4046 status 100021 0 udp 4045 nlockmgr 100021 0 tcp 4045 nlockmgr 100021 1 udp 4045 nlockmgr 100021 1 tcp 4045 nlockmgr 100021 3 udp 4045 nlockmgr 100021 3 tcp 4045 nlockmgr 100021 4 udp 4045 nlockmgr 100021 4 tcp 4045 nlockmgr root@batman:~ # netstat -an |grep 4045 tcp4 0 0 *.4045 *.* LISTEN tcp6 0 0 *.4045 *.* LISTEN udp4 0 0 *.4045 *.* udp6 0 0 *.4045 *.* root@batman:~ # netstat -an |grep 4046 tcp4 0 0 *.4046 *.* LISTEN tcp6 0 0 *.4046 *.* LISTEN udp4 0 0 *.4046 *.* udp6 0 0 *.4046 *.* root@batman:~ # For a test I remove (disable) the rpc_statd_flags and rpc_lockd_flags lines in /etc/rc.conf, so that a random port is used. But then statd / lockd was only listening on IPv4 and not on IPv6. >How-To-Repeat: Set the following options in /etc/rc.conf (with IPv6 enabled and configured): ipv6_ipv4mapping="YES" rpcbind_enable="YES" nfs_client_enable="YES" rpc_lockd_enable="YES" rpc_lockd_flags="-p 4045" rpc_statd_enable="YES" rpc_statd_flags="-p 4046" and reboot, or use the following commands: sysctl net.inet6.ip6.v6only=1 /etc/rc.d/statd start >Fix: >Release-Note: >Audit-Trail: >Unformatted: