zookeeper-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (ZOOKEEPER-2808) ACL with index 1 might be removed if it's only being used once
Date Fri, 16 Jun 2017 23:43:00 GMT

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

ASF GitHub Bot commented on ZOOKEEPER-2808:
-------------------------------------------

GitHub user lvfangmin opened a pull request:

    https://github.com/apache/zookeeper/pull/284

    ZOOKEEPER-2808: fix miss-referenced ACL count issue when upgrading the ZooKeeper

    

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/lvfangmin/zookeeper ZOOKEEPER-2808

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/zookeeper/pull/284.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #284
    
----
commit 295b9b782ac499814f6ccf149ecd17d15d3bf5bc
Author: Fangmin Lyu <allenlyu@fb.com>
Date:   2017-06-16T23:38:43Z

    fix miss-referenced ACL count issue when upgrading the ZooKeeper

----


> 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
(v6.4.14#64029)

Mime
View raw message