Re: [PATCH 10/17] CLNT: test resues slot ID

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Mar 15, 2011 at 10:47:00AM +0800, Mi Jinlong wrote:
> 
> 
> J. Bruce Fields:
> > On Mon, Mar 14, 2011 at 02:41:44PM -0400, J. Bruce Fields wrote:
> >> On Fri, Mar 04, 2011 at 05:06:31PM +0800, Mi Jinlong wrote:
> >>>    Maybe the following one is better than before.
> >> Looks good to me, thanks!
> > 
> > But on testing I get a failure:
> > 
> > SEQ14    st_sequence.testReuseSlotID                              : FAILURE
> >            AttributeError: LOOKUP4res instance has no attribute
> > 	   'object'
> 
>   See below.
> 
> > 
> > I haven't tried to figure out what's going on there.
> > 
> > --b.
> > 
> >> Very minor nit:
> >>
> >>> +def testReuseSlotID(t, env):
> >>> +    """ If client reuses a slot ID and sequence ID for a completely
> >>> +        different request, server MAY treat the request as if it is
> >>> +        a retry of what it has already executed. rfc5661 18.46.3
> >>> +
> >>> +    FLAGS: sequence all
> >>> +    CODE: SEQ14
> >>> +    """
> >>> +    c = env.c1.new_client(env.testname(t))
> >>> +    # CREATE_SESSION
> >>> +    sess1 = c.create_session()
> >>> +
> >>> +    name = "%s_1" % env.testname(t)
> >>> +    res = create_file(sess1, name) 
> >> Could you check your patches for trailing whitespace?  (There's an extra
> >> space at the end of that line.)
> 
>   I will pay attention to that in the future.
> 
> >>
> >> (No need to resend anything.)
> >>
> >> --b.
> >>
> >>> +    check(res)
> >>> +
> >>> +    sid = sess1.sessionid
> >>> +    seqid = nfs4lib.inc_u32(sess1.seqid)
> >>> +    fh = res.resarray[3].object
> 
>   The error only appears here. 
> 
>   At my machine, the res.resarray[3] is GETFHres. 
>   As the above error message shown res.resarray[3] is LOOKUP4res.
>   Is it the nfs4lib's problem?

Oh, are you assuming that the GETFH op is always at the same position in
the compound?

You can't do that--the number of LOOKUPS required to get to the file
depends on how deep in the server's pseudofs the file is.

Note the following "homedir = " line also assumes that the pynfs tests
are being run on /, but that's not necessarily true.

--b.

> 
> --
> thanks,
> Mi Jinlong 
> 
> >>> +    homedir = sess1.c.homedir[0]
> >>> +
> >>> +    res = c.c.compound([op.sequence(sid, seqid, 0, 0, TRUE), op.putrootfh(),
> >>> +                        op.lookup(homedir), op.remove(name)])
> >>> +    check(res)
> >>> +
> >>> +    # Reuses slot ID and sequence ID for different request
> >>> +    res = c.c.compound([op.sequence(sid, seqid, 0, 0, TRUE), op.putrootfh(),
> >>> +                        op.lookup(homedir), op.rename(name, "test")])
> >>> +    check(res)
> >>> -- 
> >>> 1.7.4.1
> >>>
> >>>
> > --
> > 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
> > 
> 
--
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


[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux