Kinetic / kinetic-py

Kinetic Python Library
http://seagate.github.io/kinetic-py
22 stars 10 forks source link

Once clusterversion changed by Client, cluster version didn't update in client side #40

Closed DaisyHsiung closed 8 years ago

DaisyHsiung commented 8 years ago

Once clusterversion changed by Client, cluster version didn't update in client side, results in subsequent operation's cluster version missmatch failure. Client code: c=Client("172.20.1.95",8123) c.connect() c.setClusterVersion(2) print c.get('k')

Traceback (most recent call last): File "cluster_client.py", line 8, in print c.get('k') File "/root/GitHub/kinetic-py-fork/kinetic/deprecated/blockingclient.py", line 63, in get return self._process(operations.Get(), _args, _kwargs) File "/root/GitHub/kinetic-py-fork/kinetic/baseasync.py", line 165, in _process return super(BaseAsync, self)._process(op, _args, _kwargs) File "/root/GitHub/kinetic-py-fork/kinetic/deprecated/blockingclient.py", line 54, in _process return op.onError(e) File "/root/GitHub/kinetic-py-fork/kinetic/operations.py", line 138, in onError raise e kinetic.common.ClusterVersionFailureException: VERSION_FAILURE

igomez06 commented 8 years ago

This is actually is not a bug. The cluster version is a means for commands that don't have the same cluster definition to be rejected. This a means of protection if you will. It's up to the script user to update the client, by either doing: c = Client('ip_address', cluster_version=<>) or c.cluster_version=<>