Robert P. Thille created ZOOKEEPER-2925:
-------------------------------------------
Summary: ZooKeeper server fails to start on first-startup due to
race to create dataDir & snapDir
Key: ZOOKEEPER-2925
URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2925
Project: ZooKeeper
Issue Type: Bug
Components: other
Affects Versions: 3.4.6
Reporter: Robert P. Thille
Due to two threads trying to create the dataDir and snapDir, and the
java.io.File.mkdirs() call returning false both for errors and for the
directory already existing, sometimes ZooKeeper will fail to start with the
following stack trace:
{noformat}
2017-10-25 22:30:40,069 [myid:] - INFO [main:ZooKeeperServerMain@95] -
Starting server
2017-10-25 22:30:40,075 [myid:] - INFO [main:Environment@100] - Server
environment:zookeeper.version=3.4.6-mdavis8efb625--1, built on 10/25/2017 01:12
GMT
[ More 'Server environment:blah blah blah' messages trimmed]
2017-10-25 22:30:40,077 [myid:] - INFO [main:Environment@100] - Server
environment:user.dir=/
2017-10-25 22:30:40,081 [myid:] - ERROR [main:ZooKeeperServerMain@63] -
Unexpected exception, exiting abnormally
java.io.IOException: Unable to create data directory /bp2/data/version-2
at
org.apache.zookeeper.server.persistence.FileTxnSnapLog.<init>(FileTxnSnapLog.java:85)
at
org.apache.zookeeper.server.ZooKeeperServerMain.runFromConfig(ZooKeeperServerMain.java:104)
at
org.apache.zookeeper.server.ZooKeeperServerMain.initializeAndRun(ZooKeeperServerMain.java:86)
at
org.apache.zookeeper.server.ZooKeeperServerMain.main(ZooKeeperServerMain.java:52)
at
org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:116)
at
org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:78)
2017-10-25 22:30:40,085 [myid:] - INFO
[PurgeTask:DatadirCleanupManager$PurgeTask@144] - Purge task completed.
{noformat}
this is caused by the QuorumPeerMain thread and the PurgeTask thread both
competing to create the directories.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)