Skip site navigation (1)Skip section navigation (2)
Date:      Wed,  8 Mar 2006 21:39:34 -0500 (EST)
From:      Kris Kennaway <kris@obsecurity.org>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   bin/94258: O_NONBLOCK may block with rpc.lockd
Message-ID:  <20060309023934.9141652058@obsecurity.dyndns.org>
Resent-Message-ID: <200603090240.k292e8dL084723@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>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:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060309023934.9141652058>