lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Mon, 1 Nov 2010 15:43:18 -0400
From:	Chuck Lever <chuck.lever@...cle.com>
To:	Trond Myklebust <Trond.Myklebust@...app.com>
Cc:	Nick Bowler <nbowler@...iptictech.com>,
	LKML Kernel <linux-kernel@...r.kernel.org>,
	"J. Bruce Fields" <bfields@...hat.com>,
	Linux NFS Mailing List <linux-nfs@...r.kernel.org>
Subject: Re: Regression, bisected: sqlite locking failure on nfs


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-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ