[
https://issues.apache.org/jira/browse/ZOOKEEPER-1781?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13787194#comment-13787194
]
Takashi Ohnishi commented on ZOOKEEPER-1781:
--------------------------------------------
I make a patch for ZooKeeper 3.4.5. By reading SyncRequestProcessor.java, I
found that a random number between snapCount/2 and snapCount-1 is used. So, I
added an explanation about it in the documentation. And I changed the source
code to reset snapCount into 2 if it is configured to 1, because snapCount = 1
is meaningless and snapCount = 2 is the minimum for this algorism.
> ZooKeeper Server fails if snapCount is set to 1
> ------------------------------------------------
>
> Key: ZOOKEEPER-1781
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1781
> Project: ZooKeeper
> Issue Type: Bug
> Components: quorum
> Affects Versions: 3.4.5
> Reporter: Takashi Ohnishi
> Priority: Minor
> Attachments: ZOOKEEPER-1781.patch
>
>
> If snapCount is set to 1, ZooKeeper Server can start but it fails with the
> below error:
> 2013-10-02 18:09:07,600 [myid:1] - ERROR
> [SyncThread:1:SyncRequestProcessor@151] - Severe unrecoverable error, exiting
> java.lang.IllegalArgumentException: n must be positive
> at java.util.Random.nextInt(Random.java:300)
> at
> org.apache.zookeeper.server.SyncRequestProcessor.run(SyncRequestProcessor.java:93)
> In source code, it maybe be supposed that snapCount must be 2 or more:
> {code:title=org.apache.zookeeper.server.SyncRequestProcessor.java|borderStyle=solid}
> 91 // we do this in an attempt to ensure that not all ofthe
> servers
> 92 // in the ensemble take a snapshot at the same time
> 93 int randRoll = r.nextInt(snapCount/2);
> {code}
> I think this supposition is not bad because snapCount = 1 is not realistic
> setting...
> But, it may be better to mention this restriction in documentation or add a
> validation in the source code.
--
This message was sent by Atlassian JIRA
(v6.1#6144)