What does 'no locks available' mean?
Solution 1:
There's a few possibilities here:
- The user account that is doing the SVN update may not have update permission on the repository directory
- The NFS file system where the repository is stored may be full
- The lock daemon (lockd) may not be running on the NFS server.
UPDATE: following the update to the question, I'd suspect #3. Make sure that lockd is set up to start when the NFS server is rebooted.
Solution 2:
Make sure that your NFS server supports locks; you may need to enable additional processes on the NFS server to accomplish this; see rpc.lockd(8) and rpc.statd(8).
Additionally, if your NFS server has restarted recently, you may have a stale or even a partially stale NFS mount. Try unmounting and remounting the NFS mount as well.
EDIT: based on your other question, it looks like lockd didn't start after your NFS server recovered from it's crash.
Solution 3:
There are a number of alternatives mentioned in this google search for terms you mentioned above.
A few of the options mentioned are: full discs, permissions issues, "hung" or "stuck" svnserve processes, and hung transactions... You may need to try a number of these different issues to see what exactly the problem is in your case.
It sounds like you are using the bsddb SVN back-end? You may want to try migrating your repository over to the fsfs back-end (the default for several years now). It has, in my experience and from that of a number of others I know, proven more reliable than bsddb. Though you'll want to research how it interacts with NFS -- I haven't used it on NFS.
Another option you may want to consider is moving away from using SVN over NFS and instead running it over SSH on a server with the SVN repository locally stored. This is how we do all our SVN work, with fsfs backend, and I can't remember the last time we had SVN repository issues.
Sean