2014-02-10 16:37:07

by Weston Andros Adamson

[permalink] [raw]
Subject: [PATCH pynfs] nfs4.1 server: DSs should have diff server owners

Use getpid() to generate the minor_id component of the server owner.

Witout this, all DSs are considered to be the same server by NFS clients
that detect server trunking, such as the upstream Linux client.

Signed-off-by: Weston Andros Adamson <[email protected]>
---
nfs4.1/config.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/nfs4.1/config.py b/nfs4.1/config.py
index 4f91e84..2238aee 100644
--- a/nfs4.1/config.py
+++ b/nfs4.1/config.py
@@ -3,6 +3,7 @@ from nfs4_const import *
import nfs4_const
import nfs4lib
from copy import deepcopy
+import os

class ConfigAction(Exception):
pass
@@ -129,7 +130,7 @@ class ServerConfig(object):
]

def __init__(self):
- self.minor_id = 0
+ self.minor_id = os.getpid()
self.major_id = "PyNFSv4.1"
self._owner = server_owner4(self.minor_id, self.major_id)
self.scope = "Default_Scope"
--
1.8.3.4 (Apple Git-47)



2014-02-11 17:08:42

by J. Bruce Fields

[permalink] [raw]
Subject: Re: [PATCH pynfs] nfs4.1 server: DSs should have diff server owners

On Mon, Feb 10, 2014 at 11:37:02AM -0500, Weston Andros Adamson wrote:
> Use getpid() to generate the minor_id component of the server owner.
>
> Witout this, all DSs are considered to be the same server by NFS clients
> that detect server trunking, such as the upstream Linux client.

Applied and pushed out, thanks.--b.

>
> Signed-off-by: Weston Andros Adamson <[email protected]>
> ---
> nfs4.1/config.py | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/nfs4.1/config.py b/nfs4.1/config.py
> index 4f91e84..2238aee 100644
> --- a/nfs4.1/config.py
> +++ b/nfs4.1/config.py
> @@ -3,6 +3,7 @@ from nfs4_const import *
> import nfs4_const
> import nfs4lib
> from copy import deepcopy
> +import os
>
> class ConfigAction(Exception):
> pass
> @@ -129,7 +130,7 @@ class ServerConfig(object):
> ]
>
> def __init__(self):
> - self.minor_id = 0
> + self.minor_id = os.getpid()
> self.major_id = "PyNFSv4.1"
> self._owner = server_owner4(self.minor_id, self.major_id)
> self.scope = "Default_Scope"
> --
> 1.8.3.4 (Apple Git-47)
>