From owner-freebsd-stable@FreeBSD.ORG Thu Feb 5 14:34:13 2009 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 67CF41065675 for ; Thu, 5 Feb 2009 14:34:13 +0000 (UTC) (envelope-from avg@icyb.net.ua) Received: from citadel.icyb.net.ua (citadel.icyb.net.ua [212.40.38.140]) by mx1.freebsd.org (Postfix) with ESMTP id A11648FC22 for ; Thu, 5 Feb 2009 14:34:12 +0000 (UTC) (envelope-from avg@icyb.net.ua) Received: from odyssey.starpoint.kiev.ua (alpha-e.starpoint.kiev.ua [212.40.38.101]) by citadel.icyb.net.ua (8.8.8p3/ICyb-2.3exp) with ESMTP id QAA09886 for ; Thu, 05 Feb 2009 16:34:10 +0200 (EET) (envelope-from avg@icyb.net.ua) Message-ID: <498AF8E1.7020206@icyb.net.ua> Date: Thu, 05 Feb 2009 16:34:09 +0200 From: Andriy Gapon User-Agent: Thunderbird 2.0.0.19 (X11/20090110) MIME-Version: 1.0 To: FreeBSD Stable Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Subject: nfs umount soft hang X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 Feb 2009 14:34:13 -0000 I have an NFS server and NFS client separated by a firewall. Both servers are FreeBSD 7.1. Server configuration: nfs_server_enable="YES" nfs_server_flags="-t -n 4" rpcbind_enable="YES" mountd_flags="-r -p 737" mountd_enable="YES" The firewall allows tcp and udp to port 111, but only tcp to ports 2049 and 737 (configured for mountd, see above). On the client I use e.g. the following command for mounting: mount -t nfs -o nfsv3,tcp,intr,rdirplus,-r=32768,-w=32768 XXXX:/export/usr/obj /usr/obj Mounting and subsequent fs operations work flawlessly. When I unmount umount command hangs but can be interrupted with ^C. Everything seems to be clean after that - the filesystem is unmounted, there are no post-effects on both client and server. I used ktrace and tcpdump to investigate this and it seems that umount command tries to send something to server's mountd via udp: ... 13181 umount CALL sendto(0x4,0x2823e354,0x70,0,0x2823c008,0x10) 13181 umount GIO fd 4 wrote 112 bytes ... 000477 IP (tos 0x0, ttl 64, id 19976, offset 0, flags [none], proto UDP (17), length 140) 10.99.15.160.960 > 10.99.10.87.737: UDP, length 112 If wonder if this is correct behavior of umount. Do I need to get mountd udp port allowed in the firewall? Or is there a way to configure "everything" to tcp only? -- Andriy Gapon