From owner-freebsd-bugs@FreeBSD.ORG Thu Mar 9 02:40:09 2006 Return-Path: X-Original-To: freebsd-bugs@hub.freebsd.org Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 12F9016A420 for ; Thu, 9 Mar 2006 02:40:09 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8775743D4C for ; Thu, 9 Mar 2006 02:40:08 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id k292e8br084728 for ; Thu, 9 Mar 2006 02:40:08 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id k292e8dL084723; Thu, 9 Mar 2006 02:40:08 GMT (envelope-from gnats) Resent-Date: Thu, 9 Mar 2006 02:40:08 GMT Resent-Message-Id: <200603090240.k292e8dL084723@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, Kris Kennaway Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 950E816A420 for ; Thu, 9 Mar 2006 02:39:35 +0000 (GMT) (envelope-from kris@obsecurity.org) Received: from elvis.mu.org (elvis.mu.org [192.203.228.196]) by mx1.FreeBSD.org (Postfix) with ESMTP id 66A7343D45 for ; Thu, 9 Mar 2006 02:39:35 +0000 (GMT) (envelope-from kris@obsecurity.org) Received: from obsecurity.dyndns.org (elvis.mu.org [192.203.228.196]) by elvis.mu.org (Postfix) with ESMTP id 4F5DB1A4D80 for ; Wed, 8 Mar 2006 18:39:35 -0800 (PST) Received: by obsecurity.dyndns.org (Postfix, from userid 1000) id 9141652058; Wed, 8 Mar 2006 21:39:34 -0500 (EST) Message-Id: <20060309023934.9141652058@obsecurity.dyndns.org> Date: Wed, 8 Mar 2006 21:39:34 -0500 (EST) From: Kris Kennaway To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Cc: Subject: bin/94258: O_NONBLOCK may block with rpc.lockd X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Kris Kennaway List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Mar 2006 02:40:09 -0000 >Number: 94258 >Category: bin >Synopsis: O_NONBLOCK may block with rpc.lockd >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Thu Mar 09 02:40:07 GMT 2006 >Closed-Date: >Last-Modified: >Originator: Kris Kennaway >Release: FreeBSD 6.0-STABLE i386 >Organization: FreeBSD >Environment: System: FreeBSD xor.obsecurity.org 6.0-STABLE FreeBSD 6.0-STABLE #13: Sun Nov 6 12:45:25 EST 2005 kkenn@xor.obsecurity.org:/mnt/src/sys/i386/compile/XOR i386 >Description: When the rpc.lockd server is unreachable, locks acquired with O_NONBLOCK may block. They also block for a few minutes after rpc.lockd is restarted, but they eventually complete. >How-To-Repeat: On the server: dosirak# killall -KILL rpc.lockd On the client: haessal# lockf -t 0 -k pid echo Yay load: 0.00 cmd: lockf 1467 [lockd] 0.00u 0.00s 0% 528k [hangs forever] After rpc.lockd is restarted, it still takes a few minutes for the lock operation to complete successfully. New locks acquired in this period also block. >Fix: Unsure. Returning EWOULDBLOCK may not be correct since this means [EWOULDBLOCK] O_NONBLOCK and one of O_SHLOCK or O_EXLOCK is speci- fied and the file is locked. and the file may or may not be locked. Perhaps blocking is even correct behaviour according to the relevant standards, though this is counter-intuitive. >Release-Note: >Audit-Trail: >Unformatted: