You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@zookeeper.apache.org by "Ted Yu (JIRA)" <ji...@apache.org> on 2013/02/12 00:43:14 UTC

[jira] [Commented] (ZOOKEEPER-1495) ZK client hangs when using a function not available on the server.

    [ https://issues.apache.org/jira/browse/ZOOKEEPER-1495?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13576219#comment-13576219 ] 

Ted Yu commented on ZOOKEEPER-1495:
-----------------------------------

What about 1495.br33.v3.patch ?
It would really useful for clients to see whether certain operation is supported.
                
> ZK client hangs when using a function not available on the server.
> ------------------------------------------------------------------
>
>                 Key: ZOOKEEPER-1495
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1495
>             Project: ZooKeeper
>          Issue Type: Bug
>          Components: server
>    Affects Versions: 3.4.2, 3.3.5
>         Environment: all
>            Reporter: nkeywal
>            Assignee: nkeywal
>            Priority: Minor
>             Fix For: 3.5.0, 3.4.6
>
>         Attachments: 1495.br33.v3.patch, ZOOKEEPER-1495.2.patch, ZOOKEEPER-1495_branch34.patch, ZOOKEEPER-1495.patch
>
>
> This happens for example when using zk#multi with a 3.4 client but a 3.3 server.
> The issue seems to be on the server side: the servers drops the packets with an unknown OpCode in ZooKeeperServer#submitRequest
> {noformat}
> public void submitRequest(Request si) {
>     // snip
>     try {
>         touch(si.cnxn);
>         boolean validpacket = Request.isValid(si.type); // ===> Check on case OpCode.*
>         if (validpacket) {
>             // snip
>         } else {
>             LOG.warn("Dropping packet at server of type " + si.type);
>             // if invalid packet drop the packet.
>         }
>     } catch (MissingSessionException e) {
>         if (LOG.isDebugEnabled()) {
>             LOG.debug("Dropping request: " + e.getMessage());
>         }
>     }
> }
> {noformat}
> The solution discussed in ZOOKEEPER-1381 would be to get an exception on the client side then & close the session.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira