You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@zookeeper.apache.org by "Germán Blanco (JIRA)" <ji...@apache.org> on 2013/09/03 17:25:52 UTC

[jira] [Commented] (ZOOKEEPER-1462) Read-only server does not initialize database properly

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

Germán Blanco commented on ZOOKEEPER-1462:
------------------------------------------

I have been able to reproduce this problem only for Observers.
The reason seems to be related with the different handling in QuorumPeer.run ... sorry but this is as far as I got for now.
Unfortunately the patch doesn't seem to work for me.

                
> Read-only server does not initialize database properly
> ------------------------------------------------------
>
>                 Key: ZOOKEEPER-1462
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1462
>             Project: ZooKeeper
>          Issue Type: Bug
>          Components: server
>    Affects Versions: 3.4.3
>            Reporter: Thawan Kooburat
>            Assignee: Thawan Kooburat
>            Priority: Critical
>             Fix For: 3.4.6
>
>         Attachments: ZOOKEEPER-1462.patch
>
>
> Brief Description:
> When a participant or observer get partitioned and restart as Read-only server. ZkDb doesn't get reinitialized. This causes the RO server to drop any incoming request with zxid > 0 
> Error message:
> Refusing session request for client /xx.xx.xx.xx:39875 
> as it has seen zxid 0x2e00405fd9 our last zxid is 0x0 client must try another server
> Steps to reproduce:
> Start an RO-enabled observer connecting to an ensemble. Kill the ensemble and wait until the observer restart in RO mode. Zxid of this observer should be 0.
> Description:
> Before a server transition into LOOKING state, its database get closed as part of shutdown sequence. The database of leader, follower and observer get initialized as a side effect of participating in leader election protocol. (eg. observer will call registerWithLeader() and call getLastLoggedZxid() which initialize the db if not already).
> However, RO server does not participate in this protocol so its DB doesn't get initialized properly
>  

--
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