couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Paul Davis <>
Subject Re: Problem with NFS storage
Date Fri, 04 Dec 2009 11:48:14 GMT
On Fri, Dec 4, 2009 at 6:01 AM, Nils Breunese <> wrote:
> Hello,
> We are currently running CouchDB 0.9.1. We would like to upgrade to version
> 0.10 for its JSONP support, but our hosting provider was having problems
> getting the testsuite to pass, so we haven't upgraded our production setup
> yet. On our test servers 0.10 is working fine and passing all tests.
> Now our hosting provider claims to have found the problem. Translated from
> Dutch their report comes down to something like this:
> ----
> CouchDB can't handle having its data directory on NFS.
> It seems CouchDB tries to do this:
> 1 mkdir test
> 2 start process X with fd under test/foo
> 3 do the work
> 4 rm test/foo
> 5 rmdir test
> 6 kill process X
> When test/ is on NFS:
> In step 4 an open file is being removed. NFS doesn't really support this and
> the workaround is that the client implementation does
>  mv file .nfsXXXXXXX
> However, the 'rmdir test' in step 5 then cannot succeed anymore, since the
> directory is not empty. This eventually causes CouchDB to crash.
> In earlier versions of CouchDB the open/rm/rmdir/kill order may have been
> different, for instance open/rm/kill/rmdir.
> ----
> Could this indeed be the problem? Should I file a Jira ticket on this? For
> now we might have to ask them to change to local storage?
> Nils Breunese.

I'm not overly familiar with the file handling semantics of NFS other
than I know it does weird things like you mention. It does sound like
the hosting provider has narrowed it down to the way we do the unix
style unlink rename semantics. Its still early so I could be missing
an easy answer.

It is a bit odd that the upgrade to 0.10.x started causing this
though. I don't remember anything in that part of the code changing.

There have been a couple proposals on changing some of the file
handling semantics to support windows as well as remove the
restrictions on database names. Perhaps if someone gets motivated to
add that this would go away.

Paul Davis

View raw message