diff mbox

[v2] NFS4.1: try to clean sessions after testing

Message ID 5396F243.8080606@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Kinglong Mee June 10, 2014, 11:55 a.m. UTC
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 <kinglongmee@gmail.com>
---
 nfs4.0/servertests/environment.py   | 3 +++
 nfs4.1/server41tests/environment.py | 7 ++++++-
 nfs4.1/testmod.py                   | 1 +
 3 files changed, 10 insertions(+), 1 deletion(-)

Comments

J. Bruce Fields June 11, 2014, 9:17 p.m. UTC | #1
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 <kinglongmee@gmail.com>
> ---
>  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
> 
--
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
Kinglong Mee June 11, 2014, 11:24 p.m. UTC | #2
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 <kinglongmee@gmail.com>
>> ---
>>  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
>>
> 
--
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
Kinglong Mee June 12, 2014, 1:38 a.m. UTC | #3
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 <kinglongmee@gmail.com>
>>> ---
>>>  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
>>>
>>
> 
--
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
J. Bruce Fields June 12, 2014, 3:25 p.m. UTC | #4
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.
--
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
Kinglong Mee June 13, 2014, 10:44 a.m. UTC | #5
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
--
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
Kinglong Mee June 14, 2014, 9:21 a.m. UTC | #6
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
--
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
J. Bruce Fields June 18, 2014, 4:05 p.m. UTC | #7
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.
--
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 mbox

Patch

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: