[
https://issues.apache.org/jira/browse/ZOOKEEPER-1381?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13399432#comment-13399432
]
Patrick Hunt commented on ZOOKEEPER-1381:
-----------------------------------------
bq. these versions can change if the ZK administrator is currently
upgrading/downgrading this cluster.
I'd say it's a mistake for the admin make changes to the cluster w/o notifying
the users. At the very least you're going to want to test in a staging
environment before rolling out such a change to production.
bq. So if I sum up everything ...
I personally don't like the nc idea. Having your client do this sounds fishy to
me.
How about the following. If you implemented the fix I originally suggested
(have the server handle this case, really it's a bug that's not happening now)
then the server would at least return an error (perhaps
org.apache.zookeeper.KeeperException.APIErrorException?) to the client and log
the problem. Likely it should also close the session.
What do you think? Wouldn't that be sufficient for what you've described?
> Add a method to get the zookeeper server version from the client
> ----------------------------------------------------------------
>
> Key: ZOOKEEPER-1381
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1381
> Project: ZooKeeper
> Issue Type: Improvement
> Components: c client, documentation, java client, server
> Affects Versions: 3.4.2
> Environment: all
> Reporter: nkeywal
> Priority: Minor
> Labels: newbie
>
> Zookeeper client API is designed to be server version agnostic as much as
> possible, so we can have new clients with old servers (or the opposite). But
> there is today no simple way for a client to know what's the server version.
> This would be very useful in order to;
> - check the compatibility (ex: 'multi' implementation available since 3.4
> while 3.4 clients API supports 3.3 servers as well)
> - have different implementation depending on the server functionalities
> A workaround (proposed by Mahadev Konar) is do "echo stat | nc hostname
> clientport" and parse the output to get the version. The output is, for
> example:
> -----------------------
> Zookeeper version: 3.4.2--1, built on 01/30/2012 17:43 GMT
> Clients:
> /127.0.0.1:54951[0](queued=0,recved=1,sent=0)
> Latency min/avg/max: 0/0/0
> Received: 1
> Sent: 0
> Outstanding: 0
> Zxid: 0x500000001
> Mode: follower
> Node count: 7
> --------------------
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira