[ 
https://issues.apache.org/jira/browse/ZOOKEEPER-1864?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

some one updated ZOOKEEPER-1864:
--------------------------------

    Description: 
This bug was found when using ZK 3.5.0 with curator-test 2.3.0.
curator-test is building a QuorumPeerConfig from a Properties object and then 
when we try to run the quorum peer using that configuration, we get an NPE:
{quote}
2014-01-19 21:58:39,768 [myid:] - ERROR [Thread-3:TestingZooKeeperServer$1@138] 
- From testing server (random state: false)
java.lang.NullPointerException
        at 
org.apache.zookeeper.server.quorum.QuorumPeer.setQuorumVerifier(QuorumPeer.java:1320)
        at 
org.apache.zookeeper.server.quorum.QuorumPeerMain.runFromConfig(QuorumPeerMain.java:156)
        at 
org.apache.curator.test.TestingZooKeeperServer$1.run(TestingZooKeeperServer.java:134)
        at java.lang.Thread.run(Thread.java:722)
{quote}
The reason that this happens is because QuorumPeerConfig:parseProperties only 
peforms a subset of what 'QuorumPeerConfig:parse(String path)' does. The exact 
additional task performed is the dynamic config backwards compatibility check:
{quote}
            // backward compatibility - dynamic configuration in the same file 
as static configuration params
            // see writeDynamicConfig() - we change the config file to new 
format if reconfig happens
            if (dynamicConfigFileStr == null) {
                configBackwardCompatibilityMode = true;
                configFileStr = path;................
                parseDynamicConfig(cfg, electionAlg, true);
                checkValidity();................
            }
{quote}


  was:
This bug was found when using ZK 3.5.0 with curator-test 2.3.0.
curator-test is building a QuorumPeerConfig from a Properties object and then 
when we try to run the quorum peer using that configuration, we get an NPE:
{quote}
2014-01-19 21:58:39,768 [myid:] - ERROR [Thread-3:TestingZooKeeperServer$1@138] 
- From testing server (random state: false)
java.lang.NullPointerException
        at 
org.apache.zookeeper.server.quorum.QuorumPeer.setQuorumVerifier(QuorumPeer.java:1320)
        at 
org.apache.zookeeper.server.quorum.QuorumPeerMain.runFromConfig(QuorumPeerMain.java:156)
        at 
org.apache.curator.test.TestingZooKeeperServer$1.run(TestingZooKeeperServer.java:134)
        at java.lang.Thread.run(Thread.java:722)
{quote}
The reason that this happens is because QuorumPeerConfig:parseProperties only 
peforms a subset of what 'QuorumPeerConfig:parse(String path)' does. The exact 
additional task performed is the dynamic config backwards compatibility check:
{quote}
{{monospaced}}
// backward compatibility - dynamic configuration in the same file as static 
configuration params
            // see writeDynamicConfig() - we change the config file to new 
format if reconfig happens
            if (dynamicConfigFileStr == null) {
                configBackwardCompatibilityMode = true;
                configFileStr = path;................
                parseDynamicConfig(cfg, electionAlg, true);
                checkValidity();................
            }
{{monospaced}}
{quote}



> quorumVerifier is null when creating a QuorumPeerConfig from parsing a 
> Properties object
> ----------------------------------------------------------------------------------------
>
>                 Key: ZOOKEEPER-1864
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1864
>             Project: ZooKeeper
>          Issue Type: Bug
>            Reporter: some one
>            Assignee: some one
>             Fix For: 3.5.0
>
>         Attachments: BackwardsCompatCheck.patch
>
>
> This bug was found when using ZK 3.5.0 with curator-test 2.3.0.
> curator-test is building a QuorumPeerConfig from a Properties object and then 
> when we try to run the quorum peer using that configuration, we get an NPE:
> {quote}
> 2014-01-19 21:58:39,768 [myid:] - ERROR 
> [Thread-3:TestingZooKeeperServer$1@138] - From testing server (random state: 
> false)
> java.lang.NullPointerException
>       at 
> org.apache.zookeeper.server.quorum.QuorumPeer.setQuorumVerifier(QuorumPeer.java:1320)
>       at 
> org.apache.zookeeper.server.quorum.QuorumPeerMain.runFromConfig(QuorumPeerMain.java:156)
>       at 
> org.apache.curator.test.TestingZooKeeperServer$1.run(TestingZooKeeperServer.java:134)
>       at java.lang.Thread.run(Thread.java:722)
> {quote}
> The reason that this happens is because QuorumPeerConfig:parseProperties only 
> peforms a subset of what 'QuorumPeerConfig:parse(String path)' does. The 
> exact additional task performed is the dynamic config backwards compatibility 
> check:
> {quote}
>             // backward compatibility - dynamic configuration in the same 
> file as static configuration params
>             // see writeDynamicConfig() - we change the config file to new 
> format if reconfig happens
>             if (dynamicConfigFileStr == null) {
>                 configBackwardCompatibilityMode = true;
>                 configFileStr = path;................
>                 parseDynamicConfig(cfg, electionAlg, true);
>                 checkValidity();................
>             }
> {quote}



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to