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

Flavio Junqueira commented on ZOOKEEPER-1462:
---------------------------------------------

I'd like to consider this issue for 3.4.6. I was looking at how to write a test 
case for this issue and realized that it was very close to 
testConnectionEvents() in ReadOnlyModeTest. This test doesn't seem to fail 
without this patch, though, and I would expect it to fail. I originally thought 
it was because we were not using an observer in that test, but I couldn't find 
a reasonable explanation for that being the case. If you have any insight here, 
[~thawan], I would appreciate. 
                
> 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

Reply via email to