There are many sessions left after testing, they hold drc memory at server.
This patch tries to clean session after each testcase.
Signed-off-by: Kinglong Mee <[email protected]>
---
nfs4.1/server41tests/environment.py | 7 ++++++-
nfs4.1/testmod.py | 1 +
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/nfs4.1/server41tests/environment.py b/nfs4.1/server41tests/environment.py
index b2df732..7632655 100644
--- a/nfs4.1/server41tests/environment.py
+++ b/nfs4.1/server41tests/environment.py
@@ -248,7 +248,12 @@ class Environment(testmod.Environment):
def testname(self, t):
"""Returns a name for the test that is unique between runs"""
return "%s_%i" % (t.code, self.timestamp)
-
+
+ def clean_sessions(self):
+ """Destroy client name env.c1"""
+ for sessionid in self.c1.sessions.keys():
+ self.c1.compound([op.destroy_session(sessionid)])
+
#########################################
debug_fail = False
diff --git a/nfs4.1/testmod.py b/nfs4.1/testmod.py
index 5908066..661aed0 100644
--- a/nfs4.1/testmod.py
+++ b/nfs4.1/testmod.py
@@ -220,6 +220,7 @@ class Test(object):
environment.startUp()
self.runtest(self, environment)
self.result = self._pass_result
+ environment.clean_sessions()
except KeyboardInterrupt:
raise
except TestException, e:
--
1.9.3
There are many sessions left after testing, they hold drc memory at server.
This patch tries to clean session after each testcase.
v2,
adds empty function of clean_sessions for nfs4.0,
because they are using the same testmod.py
Signed-off-by: Kinglong Mee <[email protected]>
---
nfs4.0/servertests/environment.py | 3 +++
nfs4.1/server41tests/environment.py | 7 ++++++-
nfs4.1/testmod.py | 1 +
3 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/nfs4.0/servertests/environment.py b/nfs4.0/servertests/environment.py
index 993320d..9852178 100644
--- a/nfs4.0/servertests/environment.py
+++ b/nfs4.0/servertests/environment.py
@@ -226,6 +226,9 @@ class Environment(testmod.Environment):
cmd += ' ' + args
os.system(cmd);
+ def clean_sessions(self):
+ return
+
#########################################
debug_fail = False
diff --git a/nfs4.1/server41tests/environment.py b/nfs4.1/server41tests/environment.py
index b2df732..7632655 100644
--- a/nfs4.1/server41tests/environment.py
+++ b/nfs4.1/server41tests/environment.py
@@ -248,7 +248,12 @@ class Environment(testmod.Environment):
def testname(self, t):
"""Returns a name for the test that is unique between runs"""
return "%s_%i" % (t.code, self.timestamp)
-
+
+ def clean_sessions(self):
+ """Destroy client name env.c1"""
+ for sessionid in self.c1.sessions.keys():
+ self.c1.compound([op.destroy_session(sessionid)])
+
#########################################
debug_fail = False
diff --git a/nfs4.1/testmod.py b/nfs4.1/testmod.py
index 5908066..661aed0 100644
--- a/nfs4.1/testmod.py
+++ b/nfs4.1/testmod.py
@@ -220,6 +220,7 @@ class Test(object):
environment.startUp()
self.runtest(self, environment)
self.result = self._pass_result
+ environment.clean_sessions()
except KeyboardInterrupt:
raise
except TestException, e:
--
1.9.3
On Sat, Jun 14, 2014 at 05:21:15PM +0800, Kinglong Mee wrote:
> On 6/13/2014 18:44, Kinglong Mee wrote:
> > On 6/12/2014 23:25, J. Bruce Fields wrote:
> >> On Thu, Jun 12, 2014 at 09:38:32AM +0800, Kinglong Mee wrote:
> >>> On 6/12/2014 07:24, Kinglong Mee wrote:
> >>>> On 6/12/2014 05:17, J. Bruce Fields wrote:
> >>>>> I tried to apply this, and the ipv6 patch (could we do that for 4.1
> >>>>> too?) and the 3 other patches, but:
> >>>>
> >>>> nfs4.1 has supports IPv6, the patch for nfs4.0 is a back-port from nfs4.1.
> >>
> >> OK, thanks for explaining.
> >>
> >>>>
> >>>>>
> >>>>> - there are some conflicts with the latest pynfs (e.g. I already
> >>>>> added a few acl tests, apologies)
> >>>>> - I'm getting failures to write to a read-only fs, apparently
> >>>>> one of the tests is trying to write to the export root? I
> >>>>> didn't check which one.
> >>>
> >>> Can you show me more information about this?
> >>
> >> [root@pip5 pynfs]# ./nfs4.0/testserver.py f19:/exports/xfs/pynfstest-user --maketree
> >> Initialization failed, no tests run.
> >> Traceback (most recent call last):
> >> File "./nfs4.0/testserver.py", line 381, in <module>
> >> main()
> >> File "./nfs4.0/testserver.py", line 344, in main
> >> env.init()
> >> File "/root/pynfs/nfs4.0/servertests/environment.py", line 140, in init
> >> self._maketree()
> >> File "/root/pynfs/nfs4.0/servertests/environment.py", line 162, in _maketree
> >> check(res, msg="Trying to create /%s," % '/'.join(path))
> >> File "/root/pynfs/nfs4.0/servertests/environment.py", line 253, in check
> >> raise testmod.FailureException(msg)
> >> testmod.FailureException: Trying to create /tmp, should return NFS4_OK, instead got NFS4ERR_ROFS
> >>
> >> This happens after the ipv6 patch.
> >>
> >> Note /exports on my server is exported read-only, xfs is a separate writeable
> >> filesystem.
> >
> > Thanks for your testing.
> > I have found this bug in IPv6 path, and will send three new path all I have.
>
> I found you have revert the following two patch in your tree,
>
> "NFS4.1: try to clean sessions after testing" and,
> "NFS4.0: Case for linking to bad source path with zero-length"
I think those only every showed up in a temporary testing branch?
Anyway, pushed out now, with the ipv6 change. Others waiting for you to
resend or me to get a chance to look at them (may be a few days).
--b.
On 6/13/2014 18:44, Kinglong Mee wrote:
> On 6/12/2014 23:25, J. Bruce Fields wrote:
>> On Thu, Jun 12, 2014 at 09:38:32AM +0800, Kinglong Mee wrote:
>>> On 6/12/2014 07:24, Kinglong Mee wrote:
>>>> On 6/12/2014 05:17, J. Bruce Fields wrote:
>>>>> I tried to apply this, and the ipv6 patch (could we do that for 4.1
>>>>> too?) and the 3 other patches, but:
>>>>
>>>> nfs4.1 has supports IPv6, the patch for nfs4.0 is a back-port from nfs4.1.
>>
>> OK, thanks for explaining.
>>
>>>>
>>>>>
>>>>> - there are some conflicts with the latest pynfs (e.g. I already
>>>>> added a few acl tests, apologies)
>>>>> - I'm getting failures to write to a read-only fs, apparently
>>>>> one of the tests is trying to write to the export root? I
>>>>> didn't check which one.
>>>
>>> Can you show me more information about this?
>>
>> [root@pip5 pynfs]# ./nfs4.0/testserver.py f19:/exports/xfs/pynfstest-user --maketree
>> Initialization failed, no tests run.
>> Traceback (most recent call last):
>> File "./nfs4.0/testserver.py", line 381, in <module>
>> main()
>> File "./nfs4.0/testserver.py", line 344, in main
>> env.init()
>> File "/root/pynfs/nfs4.0/servertests/environment.py", line 140, in init
>> self._maketree()
>> File "/root/pynfs/nfs4.0/servertests/environment.py", line 162, in _maketree
>> check(res, msg="Trying to create /%s," % '/'.join(path))
>> File "/root/pynfs/nfs4.0/servertests/environment.py", line 253, in check
>> raise testmod.FailureException(msg)
>> testmod.FailureException: Trying to create /tmp, should return NFS4_OK, instead got NFS4ERR_ROFS
>>
>> This happens after the ipv6 patch.
>>
>> Note /exports on my server is exported read-only, xfs is a separate writeable
>> filesystem.
>
> Thanks for your testing.
> I have found this bug in IPv6 path, and will send three new path all I have.
I found you have revert the following two patch in your tree,
"NFS4.1: try to clean sessions after testing" and,
"NFS4.0: Case for linking to bad source path with zero-length"
thanks,
Kinglong Mee
On Thu, Jun 12, 2014 at 09:38:32AM +0800, Kinglong Mee wrote:
> On 6/12/2014 07:24, Kinglong Mee wrote:
> > On 6/12/2014 05:17, J. Bruce Fields wrote:
> >> I tried to apply this, and the ipv6 patch (could we do that for 4.1
> >> too?) and the 3 other patches, but:
> >
> > nfs4.1 has supports IPv6, the patch for nfs4.0 is a back-port from nfs4.1.
OK, thanks for explaining.
> >
> >>
> >> - there are some conflicts with the latest pynfs (e.g. I already
> >> added a few acl tests, apologies)
> >> - I'm getting failures to write to a read-only fs, apparently
> >> one of the tests is trying to write to the export root? I
> >> didn't check which one.
>
> Can you show me more information about this?
[root@pip5 pynfs]# ./nfs4.0/testserver.py f19:/exports/xfs/pynfstest-user --maketree
Initialization failed, no tests run.
Traceback (most recent call last):
File "./nfs4.0/testserver.py", line 381, in <module>
main()
File "./nfs4.0/testserver.py", line 344, in main
env.init()
File "/root/pynfs/nfs4.0/servertests/environment.py", line 140, in init
self._maketree()
File "/root/pynfs/nfs4.0/servertests/environment.py", line 162, in _maketree
check(res, msg="Trying to create /%s," % '/'.join(path))
File "/root/pynfs/nfs4.0/servertests/environment.py", line 253, in check
raise testmod.FailureException(msg)
testmod.FailureException: Trying to create /tmp, should return NFS4_OK, instead got NFS4ERR_ROFS
This happens after the ipv6 patch.
Note /exports on my server is exported read-only, xfs is a separate writeable
filesystem.
--b.
On 6/12/2014 05:17, J. Bruce Fields wrote:
> I tried to apply this, and the ipv6 patch (could we do that for 4.1
> too?) and the 3 other patches, but:
nfs4.1 has supports IPv6, the patch for nfs4.0 is a back-port from nfs4.1.
>
> - there are some conflicts with the latest pynfs (e.g. I already
> added a few acl tests, apologies)
> - I'm getting failures to write to a read-only fs, apparently
> one of the tests is trying to write to the export root? I
> didn't check which one.
>
> Could you look into those and resend your pynfs patches? Thanks!
Yes, I will check those patch and resend them.
thanks,
Kinglong Mee
>
> --b.
>
>
> On Tue, Jun 10, 2014 at 07:55:47PM +0800, Kinglong Mee wrote:
>> There are many sessions left after testing, they hold drc memory at server.
>> This patch tries to clean session after each testcase.
>>
>> v2,
>> adds empty function of clean_sessions for nfs4.0,
>> because they are using the same testmod.py
>>
>> Signed-off-by: Kinglong Mee <[email protected]>
>> ---
>> nfs4.0/servertests/environment.py | 3 +++
>> nfs4.1/server41tests/environment.py | 7 ++++++-
>> nfs4.1/testmod.py | 1 +
>> 3 files changed, 10 insertions(+), 1 deletion(-)
>>
>> diff --git a/nfs4.0/servertests/environment.py b/nfs4.0/servertests/environment.py
>> index 993320d..9852178 100644
>> --- a/nfs4.0/servertests/environment.py
>> +++ b/nfs4.0/servertests/environment.py
>> @@ -226,6 +226,9 @@ class Environment(testmod.Environment):
>> cmd += ' ' + args
>> os.system(cmd);
>>
>> + def clean_sessions(self):
>> + return
>> +
>> #########################################
>> debug_fail = False
>>
>> diff --git a/nfs4.1/server41tests/environment.py b/nfs4.1/server41tests/environment.py
>> index b2df732..7632655 100644
>> --- a/nfs4.1/server41tests/environment.py
>> +++ b/nfs4.1/server41tests/environment.py
>> @@ -248,7 +248,12 @@ class Environment(testmod.Environment):
>> def testname(self, t):
>> """Returns a name for the test that is unique between runs"""
>> return "%s_%i" % (t.code, self.timestamp)
>> -
>> +
>> + def clean_sessions(self):
>> + """Destroy client name env.c1"""
>> + for sessionid in self.c1.sessions.keys():
>> + self.c1.compound([op.destroy_session(sessionid)])
>> +
>> #########################################
>> debug_fail = False
>>
>> diff --git a/nfs4.1/testmod.py b/nfs4.1/testmod.py
>> index 5908066..661aed0 100644
>> --- a/nfs4.1/testmod.py
>> +++ b/nfs4.1/testmod.py
>> @@ -220,6 +220,7 @@ class Test(object):
>> environment.startUp()
>> self.runtest(self, environment)
>> self.result = self._pass_result
>> + environment.clean_sessions()
>> except KeyboardInterrupt:
>> raise
>> except TestException, e:
>> --
>> 1.9.3
>>
>
I tried to apply this, and the ipv6 patch (could we do that for 4.1
too?) and the 3 other patches, but:
- there are some conflicts with the latest pynfs (e.g. I already
added a few acl tests, apologies)
- I'm getting failures to write to a read-only fs, apparently
one of the tests is trying to write to the export root? I
didn't check which one.
Could you look into those and resend your pynfs patches? Thanks!
--b.
On Tue, Jun 10, 2014 at 07:55:47PM +0800, Kinglong Mee wrote:
> There are many sessions left after testing, they hold drc memory at server.
> This patch tries to clean session after each testcase.
>
> v2,
> adds empty function of clean_sessions for nfs4.0,
> because they are using the same testmod.py
>
> Signed-off-by: Kinglong Mee <[email protected]>
> ---
> nfs4.0/servertests/environment.py | 3 +++
> nfs4.1/server41tests/environment.py | 7 ++++++-
> nfs4.1/testmod.py | 1 +
> 3 files changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/nfs4.0/servertests/environment.py b/nfs4.0/servertests/environment.py
> index 993320d..9852178 100644
> --- a/nfs4.0/servertests/environment.py
> +++ b/nfs4.0/servertests/environment.py
> @@ -226,6 +226,9 @@ class Environment(testmod.Environment):
> cmd += ' ' + args
> os.system(cmd);
>
> + def clean_sessions(self):
> + return
> +
> #########################################
> debug_fail = False
>
> diff --git a/nfs4.1/server41tests/environment.py b/nfs4.1/server41tests/environment.py
> index b2df732..7632655 100644
> --- a/nfs4.1/server41tests/environment.py
> +++ b/nfs4.1/server41tests/environment.py
> @@ -248,7 +248,12 @@ class Environment(testmod.Environment):
> def testname(self, t):
> """Returns a name for the test that is unique between runs"""
> return "%s_%i" % (t.code, self.timestamp)
> -
> +
> + def clean_sessions(self):
> + """Destroy client name env.c1"""
> + for sessionid in self.c1.sessions.keys():
> + self.c1.compound([op.destroy_session(sessionid)])
> +
> #########################################
> debug_fail = False
>
> diff --git a/nfs4.1/testmod.py b/nfs4.1/testmod.py
> index 5908066..661aed0 100644
> --- a/nfs4.1/testmod.py
> +++ b/nfs4.1/testmod.py
> @@ -220,6 +220,7 @@ class Test(object):
> environment.startUp()
> self.runtest(self, environment)
> self.result = self._pass_result
> + environment.clean_sessions()
> except KeyboardInterrupt:
> raise
> except TestException, e:
> --
> 1.9.3
>
On 6/12/2014 23:25, J. Bruce Fields wrote:
> On Thu, Jun 12, 2014 at 09:38:32AM +0800, Kinglong Mee wrote:
>> On 6/12/2014 07:24, Kinglong Mee wrote:
>>> On 6/12/2014 05:17, J. Bruce Fields wrote:
>>>> I tried to apply this, and the ipv6 patch (could we do that for 4.1
>>>> too?) and the 3 other patches, but:
>>>
>>> nfs4.1 has supports IPv6, the patch for nfs4.0 is a back-port from nfs4.1.
>
> OK, thanks for explaining.
>
>>>
>>>>
>>>> - there are some conflicts with the latest pynfs (e.g. I already
>>>> added a few acl tests, apologies)
>>>> - I'm getting failures to write to a read-only fs, apparently
>>>> one of the tests is trying to write to the export root? I
>>>> didn't check which one.
>>
>> Can you show me more information about this?
>
> [root@pip5 pynfs]# ./nfs4.0/testserver.py f19:/exports/xfs/pynfstest-user --maketree
> Initialization failed, no tests run.
> Traceback (most recent call last):
> File "./nfs4.0/testserver.py", line 381, in <module>
> main()
> File "./nfs4.0/testserver.py", line 344, in main
> env.init()
> File "/root/pynfs/nfs4.0/servertests/environment.py", line 140, in init
> self._maketree()
> File "/root/pynfs/nfs4.0/servertests/environment.py", line 162, in _maketree
> check(res, msg="Trying to create /%s," % '/'.join(path))
> File "/root/pynfs/nfs4.0/servertests/environment.py", line 253, in check
> raise testmod.FailureException(msg)
> testmod.FailureException: Trying to create /tmp, should return NFS4_OK, instead got NFS4ERR_ROFS
>
> This happens after the ipv6 patch.
>
> Note /exports on my server is exported read-only, xfs is a separate writeable
> filesystem.
Thanks for your testing.
I have found this bug in IPv6 path, and will send three new path all I have.
thanks,
Kinglong Mee
On 6/12/2014 07:24, Kinglong Mee wrote:
> On 6/12/2014 05:17, J. Bruce Fields wrote:
>> I tried to apply this, and the ipv6 patch (could we do that for 4.1
>> too?) and the 3 other patches, but:
>
> nfs4.1 has supports IPv6, the patch for nfs4.0 is a back-port from nfs4.1.
>
>>
>> - there are some conflicts with the latest pynfs (e.g. I already
>> added a few acl tests, apologies)
>> - I'm getting failures to write to a read-only fs, apparently
>> one of the tests is trying to write to the export root? I
>> didn't check which one.
Can you show me more information about this?
thanks,
Kinglong Mee
>>
>> Could you look into those and resend your pynfs patches? Thanks!
>
> Yes, I will check those patch and resend them.
>
> thanks,
> Kinglong Mee
>
>>
>> --b.
>>
>>
>> On Tue, Jun 10, 2014 at 07:55:47PM +0800, Kinglong Mee wrote:
>>> There are many sessions left after testing, they hold drc memory at server.
>>> This patch tries to clean session after each testcase.
>>>
>>> v2,
>>> adds empty function of clean_sessions for nfs4.0,
>>> because they are using the same testmod.py
>>>
>>> Signed-off-by: Kinglong Mee <[email protected]>
>>> ---
>>> nfs4.0/servertests/environment.py | 3 +++
>>> nfs4.1/server41tests/environment.py | 7 ++++++-
>>> nfs4.1/testmod.py | 1 +
>>> 3 files changed, 10 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/nfs4.0/servertests/environment.py b/nfs4.0/servertests/environment.py
>>> index 993320d..9852178 100644
>>> --- a/nfs4.0/servertests/environment.py
>>> +++ b/nfs4.0/servertests/environment.py
>>> @@ -226,6 +226,9 @@ class Environment(testmod.Environment):
>>> cmd += ' ' + args
>>> os.system(cmd);
>>>
>>> + def clean_sessions(self):
>>> + return
>>> +
>>> #########################################
>>> debug_fail = False
>>>
>>> diff --git a/nfs4.1/server41tests/environment.py b/nfs4.1/server41tests/environment.py
>>> index b2df732..7632655 100644
>>> --- a/nfs4.1/server41tests/environment.py
>>> +++ b/nfs4.1/server41tests/environment.py
>>> @@ -248,7 +248,12 @@ class Environment(testmod.Environment):
>>> def testname(self, t):
>>> """Returns a name for the test that is unique between runs"""
>>> return "%s_%i" % (t.code, self.timestamp)
>>> -
>>> +
>>> + def clean_sessions(self):
>>> + """Destroy client name env.c1"""
>>> + for sessionid in self.c1.sessions.keys():
>>> + self.c1.compound([op.destroy_session(sessionid)])
>>> +
>>> #########################################
>>> debug_fail = False
>>>
>>> diff --git a/nfs4.1/testmod.py b/nfs4.1/testmod.py
>>> index 5908066..661aed0 100644
>>> --- a/nfs4.1/testmod.py
>>> +++ b/nfs4.1/testmod.py
>>> @@ -220,6 +220,7 @@ class Test(object):
>>> environment.startUp()
>>> self.runtest(self, environment)
>>> self.result = self._pass_result
>>> + environment.clean_sessions()
>>> except KeyboardInterrupt:
>>> raise
>>> except TestException, e:
>>> --
>>> 1.9.3
>>>
>>
>