zookeeper-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Fangmin Lv (JIRA)" <j...@apache.org>
Subject [jira] [Created] (ZOOKEEPER-2808) ACL with index 1 might be removed if it's only being used once
Date Thu, 15 Jun 2017 17:47:00 GMT
Fangmin Lv created ZOOKEEPER-2808:

             Summary: ACL with index 1 might be removed if it's only being used once
                 Key: ZOOKEEPER-2808
                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2808
             Project: ZooKeeper
          Issue Type: Bug
          Components: server
    Affects Versions: 3.6.0
            Reporter: Fangmin Lv
            Priority: Critical

When Zeus start up, it will create DataTree instance, in which the empty config znode is created
with READ_UNSAFE acl, the acl will be stored in a map with index 1. Then it's going to load
the snapshot from disk, the nodes and acl map will be cleared, but the reconfig znode is still
reference to acl index 1. The reconfig znode will be reused, so actually it may reference
to a different ACL stored in the snasphot. After leader-follower syncing, the reconfig znode
will be added back again (if it doesn't exist), which will remove the previous reference to
ACL index 1, if the index 1 has 0 reference it will be removed from the ACL map, which could
cause that ACL un-usable, and that znode will not be readable.

Error logs related:
2017-06-12 12:02:21,443 [myid:2] - ERROR [CommitProcWorkThread-14:DataTree@249] - ERROR: ACL
not available for long 1
2017-06-12 12:02:21,444 [myid:2] - ERROR [CommitProcWorkThread-14:FinalRequestProcessor@567]
- Failed to process sessionid:0x201035cc882002d type:getChildren cxid:0x1 zxid:0xfffffffffffffffe
txntype:unknown reqpath:n/a
java.lang.RuntimeException: Failed to fetch acls for 1
        at org.apache.zookeeper.server.DataTree.convertLong(DataTree.java:250)
        at org.apache.zookeeper.server.DataTree.getACL(DataTree.java:799)
        at org.apache.zookeeper.server.ZKDatabase.getACL(ZKDatabase.java:574)
        at org.apache.zookeeper.server.FinalRequestProcessor.processRequest(FinalRequestProcessor.java:463)
        at org.apache.zookeeper.server.quorum.CommitProcessor$CommitWorkRequest.doWork(CommitProcessor.java:439)
        at org.apache.zookeeper.server.WorkerService$ScheduledWorkRequest.run(WorkerService.java:151)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

This message was sent by Atlassian JIRA

View raw message