On Nov 1, 2010, at 3:22 PM, Trond Myklebust wrote: > On Mon, 2010-11-01 at 14:30 -0400, Chuck Lever wrote: >> On Nov 1, 2010, at 2:19 PM, Nick Bowler wrote: >> >>> On 2010-11-01 14:07 -0400, Chuck Lever wrote: >>>> On Nov 1, 2010, at 1:58 PM, Nick Bowler wrote: >>>>> After installing 2.6.37-rc1, attempting to use sqlite in any capacity on >>>>> NFS gives a locking error: >>>>> >>>>> % echo 'select * from blah;' | sqlite3 blah.sqlite >>>>> Error: near line 1: database is locked >>>>> >>>>> % echo 'create table blargh(INT);' | sqlite3 blargh.sqlite >>>>> Error: near line 1: database is locked >>>>> >>>>> The result is that a lot of high-profile applications which make use of >>>>> sqlite fail mysteriously. Bisection reveals the following, and >>>>> reverting the implicated commit solves the issue: >>>> >>>> Nick, thanks for the report. Is 2.6.37-rc1 running on your clients or >>>> on your server? >>> >>> Sorry for not being clear: the client is running 2.6.37-rc1. The >>> server is running RHEL 5.5. >>> >>>> Does anything interesting appear in the kernel log when your test case >>>> fails? >>> >>> There are no unusual messages on the client... but I just logged into >>> the server and I see lots of messages of the following form: >>> >>> nfsd: request from insecure port (192.168.8.199:35766)! >>> nfsd: request from insecure port (192.168.8.199:35766)! >>> nfsd: request from insecure port (192.168.8.199:35766)! >>> nfsd: request from insecure port (192.168.8.199:35766)! >>> nfsd: request from insecure port (192.168.8.199:35766)! >>> >>> (192.168.8.199 is the address of the failing client). I can only assume >>> that these are a result of my recent issues, since I don't have access >>> to the system log (with timestamps) on that machine. >> >> That's the problem this patch is supposed to prevent. I'll investigate further. >> > > I suspect nlmclnt_lookup_host() is to blame. It appears to be the _only_ > thing in the kernel that actually sets this 'srcaddr' field, and it sets > it to > > const struct sockaddr source = { > .sa_family = AF_UNSPEC, > }; > > You triggered the bug by removing the line > > transport->srcaddr.ss_family = family; > > from xs_create_sock(). Thanks. Actually that line was added by Bruce very recently because Pavel's patches changed xs_bind() so it can't tolerate an AF_UNSPEC address. My patch attempts to replace the workaround with something more permanent... but looks like I didn't find all the places that needed to be fixed. -- Chuck Lever chuck[dot]lever[at]oracle[dot]com -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html