From patchwork Fri Nov 9 20:09:57 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "J. Bruce Fields" X-Patchwork-Id: 1722001 Return-Path: X-Original-To: patchwork-linux-nfs@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork2.kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by patchwork2.kernel.org (Postfix) with ESMTP id A50A4DF264 for ; Fri, 9 Nov 2012 20:10:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755783Ab2KIUJ7 (ORCPT ); Fri, 9 Nov 2012 15:09:59 -0500 Received: from fieldses.org ([174.143.236.118]:38730 "EHLO fieldses.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755761Ab2KIUJ6 (ORCPT ); Fri, 9 Nov 2012 15:09:58 -0500 Received: from bfields by fieldses.org with local (Exim 4.76) (envelope-from ) id 1TWutp-0006QF-FZ; Fri, 09 Nov 2012 15:09:57 -0500 Date: Fri, 9 Nov 2012 15:09:57 -0500 From: "J. Bruce Fields" To: Sven Geggus Cc: linux-nfs@vger.kernel.org, Eldad Zack Subject: Re: Kernel update 3.5.7 -> 3.6.3 breaks NFS4 Message-ID: <20121109200957.GJ6171@fieldses.org> References: <20121026171549.GA11806@fieldses.org> <20121029094038.GA14836@geggus.net> <20121029150203.GB9502@fieldses.org> <20121105165459.GA2958@geggus.net> <20121109200730.GI6171@fieldses.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20121109200730.GI6171@fieldses.org> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-nfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org On Fri, Nov 09, 2012 at 03:07:30PM -0500, bfields wrote: > On Fri, Nov 09, 2012 at 06:45:32PM +0000, Sven Geggus wrote: > > Sven Geggus wrote: > > > > > OK, I now figured out which commit did cause the problem: > > > > > > Thus "git diff 08843b79..cc8362b1" on a linux-stable tree from > > > git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git should > > > give us the relevant changes. > > > > After a private conversation with J. Bruce Fields I figured out that > > I have not been quite there yet. So here comes a FTR post what > > exactly caused my problem. > > Thanks for tracking this down--not what I would have guessed! > > Given that the trace showed a problem starting around context creation > time, I'm most suspicious of the callers in rsc_parse, which are mostly > parsing uid's. > > Is it possible that your system has very large uid's? (Large enough > that they'd look like negative numbers when cast to ints?) > > Output from > > strace -p $(pidof rpc.mountd) -s4096 -e trace=open,close,read,write > > (while reproducing the bug) might help confirm that. And this might help. --b. --- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/net/sunrpc/auth_gss/svcauth_gss.c b/net/sunrpc/auth_gss/svcauth_gss.c index ec76f3a..31b4e95 100644 --- a/net/sunrpc/auth_gss/svcauth_gss.c +++ b/net/sunrpc/auth_gss/svcauth_gss.c @@ -430,7 +430,7 @@ static int rsc_parse(struct cache_detail *cd, goto out; /* uid, or NEGATIVE */ - rv = get_int(&mesg, &rsci.cred.cr_uid); + rv = get_uint(&mesg, &rsci.cred.cr_uid); if (rv == -EINVAL) goto out; if (rv == -ENOENT) @@ -439,7 +439,7 @@ static int rsc_parse(struct cache_detail *cd, int N, i; /* gid */ - if (get_int(&mesg, &rsci.cred.cr_gid)) + if (get_uint(&mesg, &rsci.cred.cr_gid)) goto out; /* number of additional gid's */ @@ -455,7 +455,7 @@ static int rsc_parse(struct cache_detail *cd, for (i=0; i