[ { "Summary": "Update for Zookeeper latest version", "Issue key": "ZOOKEEPER-4696", "Issue id": 13536435, "Parent id": "", "Issue Type": "Bug", "Status": "In Progress", "Project key": "ZOOKEEPER", "Project name": "ZooKeeper", "Project type": "software", "Project lead": "phunt", "Project description": "Apache ZooKeeper is a service for coordinating processes of distributed applications.", "Project url": "http://zookeeper.apache.org", "Priority": "Critical", "Resolution": "", "Assignee": "szucsvillo", "Reporter": "dilip_anand", "Creator": "dilip_anand", "Created": "16/May/23 16:33", "Updated": "20/Jul/23 16:51", "Last Viewed": "12/Mar/24 11:56", "Resolved": "", "Affects Version/s": "3.8.0", "Affects Version/s__1": "", "Affects Version/s__2": "", "Component/s": "security", "Component/s__1": "server", "Component/s__2": "", "Due Date": "", "Votes": 0, "Labels": "CVE", "Labels__1": "", "Description": "Hi team,\n\n We ran a scan for security vulnerability fixes,we have seen CVE's that are affected for zookeeper and version of zookeeper we are using is 3.8.0 .Here are the CVE's which are affected with zookeeper CVE-2022-32221,CVE-2023-23914,CVE-2023-27533,CVE-2023-27534,CVE-2022-22576,CVE-2020-8169,CVE-2020-8285,CVE-2020-8286,CVE-2021-22926,CVE-2021-22946,CVE-2022-27775,CVE-2022-27781,CVE-2022-27782,CVE-2023-23916 which do not have any reports in red hat website. we want to know what version of zookeeper will clear these CVEs and when it'll be released?\n\nRegards,\nDilip", "Environment": "", "Log Work": "", "Log Work__1": "", "Log Work__2": "", "Log Work__3": "", "Log Work__4": "", "Log Work__5": "", "Log Work__6": "", "Log Work__7": "", "Log Work__8": "", "Log Work__9": "", "Log Work__10": "", "Log Work__11": "", "Log Work__12": "", "Log Work__13": "", "Log Work__14": "", "Log Work__15": "", "Log Work__16": "", "Log Work__17": "", "Log Work__18": "", "Log Work__19": "", "Original Estimate": "", "Remaining Estimate": "", "Time Spent": "", "Work Ratio": "", "Σ Original Estimate": "", "Σ Remaining Estimate": "", "Σ Time Spent": "", "Security Level": "", "Outward issue link (Blocker)": "", "Inward issue link (Reference)": "", "Inward issue link (Reference)__1": "", "Outward issue link (Reference)": "ZOOKEEPER-4700", "Outward issue link (Reference)__1": "", "Attachment": "", "Attachment__1": "", "Custom field (Affects version (Component))": "", "Custom field (Attachment count)": 0, "Custom field (Blog - New Blog Administrators)": "", "Custom field (Blog - New Blog PMC)": "", "Custom field (Blog - Write access)": "", "Custom field (Blog Administrator?)": "", "Custom field (Blogs - Admin for blog)": "", "Custom field (Blogs - Email Address)": "", "Custom field (Blogs - Existing Blog Access Level)": "", "Custom field (Blogs - Existing Blog Name)": "", "Custom field (Blogs - New Blog Write Access)": "", "Custom field (Blogs - Username)": "", "Custom field (Bug Category)": "", "Custom field (Bugzilla - Email Notification Address)": "", "Custom field (Bugzilla - List of usernames)": "", "Custom field (Bugzilla - PMC Name)": "", "Custom field (Bugzilla - Project Name)": "", "Custom field (Bugzilla Id)": "", "Custom field (Bugzilla Id)__1": "", "Custom field (Change Category)": "", "Custom field (Complexity)": "", "Custom field (Discovered By)": "", "Custom field (Docs Text)": "", "Custom field (Enable Automatic Patch Review)": false, "Custom field (Epic Colour)": "", "Custom field (Epic Link)": "", "Custom field (Epic Name)": "", "Custom field (Epic Status)": "", "Custom field (Estimated Complexity)": "", "Custom field (Evidence Of Open Source Adoption)": "", "Custom field (Evidence Of Registration)": "", "Custom field (Evidence Of Use On World Wide Web)": "", "Custom field (Existing GitBox Approval)": "", "Custom field (External issue ID)": "", "Custom field (External issue URL)": "", "Custom field (Fix version (Component))": "", "Custom field (Flags)": "", "Custom field (Git Notification Mailing List)": "", "Custom field (Git Repository Import Path)": "", "Custom field (Git Repository Name)": "", "Custom field (Git Repository Type)": "", "Custom field (GitHub Options)": "", "Custom field (Github Integration)": "", "Custom field (Github Integrations - Other)": "", "Custom field (Global Rank)": 9223372036854776000, "Custom field (INFRA - Subversion Repository Path)": "", "Custom field (Initial Confluence Contributors)": "", "Custom field (Last public comment date)": "Thu Jul 20 16:51:57 UTC 2023", "Custom field (Level of effort)": "", "Custom field (Machine Readable Info)": "", "Custom field (Mentor)": "", "Custom field (New-TLP-TLPName)": "", "Custom field (Original story points)": "", "Custom field (Parent Link)": "", "Custom field (Priority)": "", "Custom field (Project)": "", "Custom field (Protected Branch)": "", "Custom field (Rank)": "0|z1hxl4:", "Custom field (Rank (Obsolete))": 9223372036854776000, "Custom field (Release Note)": "", "Custom field (Review Date)": "", "Custom field (Reviewer)": "", "Custom field (Severity)": "", "Custom field (Severity)__1": "", "Custom field (Skill Level)": "", "Custom field (Source Control Link)": "", "Custom field (Space Description)": "", "Custom field (Space Key)": "", "Custom field (Space Name)": "", "Custom field (Start Date)": "", "Custom field (Tags)": "", "Custom field (Tags)__1": "", "Custom field (Target end)": "", "Custom field (Target start)": "", "Custom field (Team)": "", "Custom field (Test and Documentation Plan)": "", "Custom field (Testcase included)": "", "Custom field (Tester)": "", "Custom field (Workaround)": "", "Comment": "30/May/23 14:48;szucsvillo;I started working on the patch. -I think we need to upgrade the main version of Jetty because all of the 9.4-based versions have CVE problems. See here: [https://mvnrepository.com/artifact/org.eclipse.jetty/jetty-server]. We should upgrade Jetty to 11.0.15, which is the latest version. For this, we need quite a few code changes because of the deprecated methods and classes.- [-https://www.eclipse.org/jetty/javadoc/jetty-10/deprecated-list.html-];;;", "Comment__1": "01/Jun/23 06:57;szucsvillo;There are 3 CVEs in the branch-3.8.1:\n [ERROR] jackson-core-2.13.4.jar: CVE-2022-45688(7.5)\n [ERROR] jetty-io-9.4.49.v20220914.jar: CVE-2023-26048(5.3), CVE-2023-26049(5.3)\n [ERROR] jetty-server-9.4.49.v20220914.jar: CVE-2023-26048(5.3), CVE-2023-26049(5.3)\n\nI think CVE-2022-45688 is false positive. ([https://github.com/jeremylong/DependencyCheck/actions/runs/5126385253])\nCVE-2023-26048(5.3) and CVE-2023-26049(5.3) are tracked here: https://issues.apache.org/jira/browse/ZOOKEEPER-4700.;;;", "Comment__2": "20/Jul/23 16:51;antons;Are there any plans to merge these changes to currently latest stable 3.7.x branch?;;;", "Comment__3": "", "Comment__4": "", "Comment__5": "", "Comment__6": "", "Comment__7": "", "Comment__8": "", "Comment__9": "", "Comment__10": "", "Comment__11": "", "Comment__12": "", "Comment__13": "", "Comment__14": "", "Comment__15": "" }, { "Summary": "Fix license files for Netty: some files are for 4.1.76 and some other files are for 4.1.86", "Issue key": "ZOOKEEPER-4666", "Issue id": 13521088, "Parent id": "", "Issue Type": "Task", "Status": "In Progress", "Project key": "ZOOKEEPER", "Project name": "ZooKeeper", "Project type": "software", "Project lead": "phunt", "Project description": "Apache ZooKeeper is a service for coordinating processes of distributed applications.", "Project url": "http://zookeeper.apache.org", "Priority": "Major", "Resolution": "", "Assignee": "eolivelli", "Reporter": "eolivelli", "Creator": "eolivelli", "Created": "24/Jan/23 08:24", "Updated": "25/Jan/23 08:45", "Last Viewed": "12/Mar/24 11:56", "Resolved": "", "Affects Version/s": "", "Affects Version/s__1": "", "Affects Version/s__2": "", "Component/s": "", "Component/s__1": "", "Component/s__2": "", "Due Date": "", "Votes": 0, "Labels": "pull-request-available", "Labels__1": "", "Description": "", "Environment": "", "Log Work": "eolivelli commented on PR #1974:\nURL: https://github.com/apache/zookeeper/pull/1974#issuecomment-1401543384\n\n This is a trivial fix, I will commit as soon as CI passes\n\n\n;24/Jan/23 08:25;githubbot;600", "Log Work__1": "eolivelli merged PR #1974:\nURL: https://github.com/apache/zookeeper/pull/1974\n\n\n;25/Jan/23 08:45;githubbot;600", "Log Work__2": "", "Log Work__3": "", "Log Work__4": "", "Log Work__5": "", "Log Work__6": "", "Log Work__7": "", "Log Work__8": "", "Log Work__9": "", "Log Work__10": "", "Log Work__11": "", "Log Work__12": "", "Log Work__13": "", "Log Work__14": "", "Log Work__15": "", "Log Work__16": "", "Log Work__17": "", "Log Work__18": "", "Log Work__19": "", "Original Estimate": "", "Remaining Estimate": 0, "Time Spent": 1200, "Work Ratio": "", "Σ Original Estimate": "", "Σ Remaining Estimate": 0, "Σ Time Spent": 1200, "Security Level": "", "Outward issue link (Blocker)": "", "Inward issue link (Reference)": "", "Inward issue link (Reference)__1": "", "Outward issue link (Reference)": "", "Outward issue link (Reference)__1": "", "Attachment": "", "Attachment__1": "", "Custom field (Affects version (Component))": "", "Custom field (Attachment count)": 0, "Custom field (Blog - New Blog Administrators)": "", "Custom field (Blog - New Blog PMC)": "", "Custom field (Blog - Write access)": "", "Custom field (Blog Administrator?)": "", "Custom field (Blogs - Admin for blog)": "", "Custom field (Blogs - Email Address)": "", "Custom field (Blogs - Existing Blog Access Level)": "", "Custom field (Blogs - Existing Blog Name)": "", "Custom field (Blogs - New Blog Write Access)": "", "Custom field (Blogs - Username)": "", "Custom field (Bug Category)": "", "Custom field (Bugzilla - Email Notification Address)": "", "Custom field (Bugzilla - List of usernames)": "", "Custom field (Bugzilla - PMC Name)": "", "Custom field (Bugzilla - Project Name)": "", "Custom field (Bugzilla Id)": "", "Custom field (Bugzilla Id)__1": "", "Custom field (Change Category)": "", "Custom field (Complexity)": "", "Custom field (Discovered By)": "", "Custom field (Docs Text)": "", "Custom field (Enable Automatic Patch Review)": false, "Custom field (Epic Colour)": "", "Custom field (Epic Link)": "", "Custom field (Epic Name)": "", "Custom field (Epic Status)": "", "Custom field (Estimated Complexity)": "", "Custom field (Evidence Of Open Source Adoption)": "", "Custom field (Evidence Of Registration)": "", "Custom field (Evidence Of Use On World Wide Web)": "", "Custom field (Existing GitBox Approval)": "", "Custom field (External issue ID)": "", "Custom field (External issue URL)": "", "Custom field (Fix version (Component))": "", "Custom field (Flags)": "", "Custom field (Git Notification Mailing List)": "", "Custom field (Git Repository Import Path)": "", "Custom field (Git Repository Name)": "", "Custom field (Git Repository Type)": "", "Custom field (GitHub Options)": "", "Custom field (Github Integration)": "", "Custom field (Github Integrations - Other)": "", "Custom field (Global Rank)": 9223372036854776000, "Custom field (INFRA - Subversion Repository Path)": "", "Custom field (Initial Confluence Contributors)": "", "Custom field (Last public comment date)": "2023-01-24 08:24:04.0", "Custom field (Level of effort)": "", "Custom field (Machine Readable Info)": "", "Custom field (Mentor)": "", "Custom field (New-TLP-TLPName)": "", "Custom field (Original story points)": "", "Custom field (Parent Link)": "", "Custom field (Priority)": "", "Custom field (Project)": "", "Custom field (Protected Branch)": "", "Custom field (Rank)": "0|z1fbco:", "Custom field (Rank (Obsolete))": 9223372036854776000, "Custom field (Release Note)": "", "Custom field (Review Date)": "", "Custom field (Reviewer)": "", "Custom field (Severity)": "", "Custom field (Severity)__1": "", "Custom field (Skill Level)": "", "Custom field (Source Control Link)": "", "Custom field (Space Description)": "", "Custom field (Space Key)": "", "Custom field (Space Name)": "", "Custom field (Start Date)": "", "Custom field (Tags)": "", "Custom field (Tags)__1": "", "Custom field (Target end)": "", "Custom field (Target start)": "", "Custom field (Team)": "", "Custom field (Test and Documentation Plan)": "", "Custom field (Testcase included)": "", "Custom field (Tester)": "", "Custom field (Workaround)": "", "Comment": "", "Comment__1": "", "Comment__2": "", "Comment__3": "", "Comment__4": "", "Comment__5": "", "Comment__6": "", "Comment__7": "", "Comment__8": "", "Comment__9": "", "Comment__10": "", "Comment__11": "", "Comment__12": "", "Comment__13": "", "Comment__14": "", "Comment__15": "" }, { "Summary": "Quota cannot limit the specify value when multiply clients create/set znodes", "Issue key": "ZOOKEEPER-4375", "Issue id": 13400622, "Parent id": "", "Issue Type": "Bug", "Status": "In Progress", "Project key": "ZOOKEEPER", "Project name": "ZooKeeper", "Project type": "software", "Project lead": "phunt", "Project description": "Apache ZooKeeper is a service for coordinating processes of distributed applications.", "Project url": "http://zookeeper.apache.org", "Priority": "Major", "Resolution": "", "Assignee": "maoling", "Reporter": "maoling", "Creator": "maoling", "Created": "12/Sep/21 09:47", "Updated": "21/Apr/22 07:53", "Last Viewed": "12/Mar/24 11:56", "Resolved": "", "Affects Version/s": "3.8.0", "Affects Version/s__1": "3.9.0", "Affects Version/s__2": "", "Component/s": "", "Component/s__1": "", "Component/s__2": "", "Due Date": "", "Votes": 0, "Labels": "", "Labels__1": "", "Description": "{code:java}\n[zk: 127.0.0.1:2180(CONNECTED) 0] create /benchmark-09-14 \"123\"\nCreated /benchmark-09-14\n[zk: 127.0.0.1:2180(CONNECTED) 1] setquota -N 100 /benchmark-09-14\n[zk: 127.0.0.1:2180(CONNECTED) 2]\n[zk: 127.0.0.1:2180(CONNECTED) 2]\n[zk: 127.0.0.1:2180(CONNECTED) 2] listquota /benchmark-09-14\nabsolute path is /zookeeper/quota/benchmark-09-14/zookeeper_limits\nOutput quota for /benchmark-09-14 count=-1,bytes=-1=;byteHardLimit=-1;countHardLimit=100\nOutput stat for /benchmark-09-14 count=115,bytes=135999\n[zk: 127.0.0.1:2180(CONNECTED) 3] getAllChildrenNumber /benchmark-09-14\n114\n\n# we have 50 multiply concurrent client to create zonods under the parent node:/benchmark-09-14\n\n➜ YCSB git:(master) ✗ ./bin/ycsb load zookeeper -s -threads 50 -P workloads/workloadb -p zookeeper.connectString=127.0.0.1:2180/benchmark-09-14\n\n{code}", "Environment": "", "Log Work": "", "Log Work__1": "", "Log Work__2": "", "Log Work__3": "", "Log Work__4": "", "Log Work__5": "", "Log Work__6": "", "Log Work__7": "", "Log Work__8": "", "Log Work__9": "", "Log Work__10": "", "Log Work__11": "", "Log Work__12": "", "Log Work__13": "", "Log Work__14": "", "Log Work__15": "", "Log Work__16": "", "Log Work__17": "", "Log Work__18": "", "Log Work__19": "", "Original Estimate": "", "Remaining Estimate": "", "Time Spent": "", "Work Ratio": "", "Σ Original Estimate": "", "Σ Remaining Estimate": "", "Σ Time Spent": "", "Security Level": "", "Outward issue link (Blocker)": "", "Inward issue link (Reference)": "", "Inward issue link (Reference)__1": "", "Outward issue link (Reference)": "", "Outward issue link (Reference)__1": "", "Attachment": "", "Attachment__1": "", "Custom field (Affects version (Component))": "", "Custom field (Attachment count)": 0, "Custom field (Blog - New Blog Administrators)": "", "Custom field (Blog - New Blog PMC)": "", "Custom field (Blog - Write access)": "", "Custom field (Blog Administrator?)": "", "Custom field (Blogs - Admin for blog)": "", "Custom field (Blogs - Email Address)": "", "Custom field (Blogs - Existing Blog Access Level)": "", "Custom field (Blogs - Existing Blog Name)": "", "Custom field (Blogs - New Blog Write Access)": "", "Custom field (Blogs - Username)": "", "Custom field (Bug Category)": "", "Custom field (Bugzilla - Email Notification Address)": "", "Custom field (Bugzilla - List of usernames)": "", "Custom field (Bugzilla - PMC Name)": "", "Custom field (Bugzilla - Project Name)": "", "Custom field (Bugzilla Id)": "", "Custom field (Bugzilla Id)__1": "", "Custom field (Change Category)": "", "Custom field (Complexity)": "", "Custom field (Discovered By)": "", "Custom field (Docs Text)": "", "Custom field (Enable Automatic Patch Review)": false, "Custom field (Epic Colour)": "", "Custom field (Epic Link)": "", "Custom field (Epic Name)": "", "Custom field (Epic Status)": "", "Custom field (Estimated Complexity)": "", "Custom field (Evidence Of Open Source Adoption)": "", "Custom field (Evidence Of Registration)": "", "Custom field (Evidence Of Use On World Wide Web)": "", "Custom field (Existing GitBox Approval)": "", "Custom field (External issue ID)": "", "Custom field (External issue URL)": "", "Custom field (Fix version (Component))": "", "Custom field (Flags)": "", "Custom field (Git Notification Mailing List)": "", "Custom field (Git Repository Import Path)": "", "Custom field (Git Repository Name)": "", "Custom field (Git Repository Type)": "", "Custom field (GitHub Options)": "", "Custom field (Github Integration)": "", "Custom field (Github Integrations - Other)": "", "Custom field (Global Rank)": 9223372036854776000, "Custom field (INFRA - Subversion Repository Path)": "", "Custom field (Initial Confluence Contributors)": "", "Custom field (Last public comment date)": "2021-09-12 09:47:30.0", "Custom field (Level of effort)": "", "Custom field (Machine Readable Info)": "", "Custom field (Mentor)": "", "Custom field (New-TLP-TLPName)": "", "Custom field (Original story points)": "", "Custom field (Parent Link)": "", "Custom field (Priority)": "", "Custom field (Project)": "", "Custom field (Protected Branch)": "", "Custom field (Rank)": "0|z0utu0:", "Custom field (Rank (Obsolete))": 9223372036854776000, "Custom field (Release Note)": "", "Custom field (Review Date)": "", "Custom field (Reviewer)": "", "Custom field (Severity)": "", "Custom field (Severity)__1": "", "Custom field (Skill Level)": "", "Custom field (Source Control Link)": "", "Custom field (Space Description)": "", "Custom field (Space Key)": "", "Custom field (Space Name)": "", "Custom field (Start Date)": "", "Custom field (Tags)": "", "Custom field (Tags)__1": "", "Custom field (Target end)": "", "Custom field (Target start)": "", "Custom field (Team)": "", "Custom field (Test and Documentation Plan)": "", "Custom field (Testcase included)": "", "Custom field (Tester)": "", "Custom field (Workaround)": "", "Comment": "", "Comment__1": "", "Comment__2": "", "Comment__3": "", "Comment__4": "", "Comment__5": "", "Comment__6": "", "Comment__7": "", "Comment__8": "", "Comment__9": "", "Comment__10": "", "Comment__11": "", "Comment__12": "", "Comment__13": "", "Comment__14": "", "Comment__15": "" }, { "Summary": "export ZooKeeper version as prometheus metric", "Issue key": "ZOOKEEPER-3982", "Issue id": 13336613, "Parent id": "", "Issue Type": "Improvement", "Status": "In Progress", "Project key": "ZOOKEEPER", "Project name": "ZooKeeper", "Project type": "software", "Project lead": "phunt", "Project description": "Apache ZooKeeper is a service for coordinating processes of distributed applications.", "Project url": "http://zookeeper.apache.org", "Priority": "Minor", "Resolution": "", "Assignee": "maoling", "Reporter": "maoling", "Creator": "maoling", "Created": "22/Oct/20 01:58", "Updated": "15/Jun/23 21:09", "Last Viewed": "12/Mar/24 11:56", "Resolved": "", "Affects Version/s": "", "Affects Version/s__1": "", "Affects Version/s__2": "", "Component/s": "metric system", "Component/s__1": "", "Component/s__2": "", "Due Date": "", "Votes": 0, "Labels": "pull-request-available", "Labels__1": "", "Description": "", "Environment": "", "Log Work": "maoling opened a new pull request #1528:\nURL: https://github.com/apache/zookeeper/pull/1528\n\n\n - Apply this patch, we can export ZooKeeper version as prometheus metric. For example:\n ```\n leader_unavailable_time_sum 0.0\n # HELP zk_version_info ZooKeeper version info\n # TYPE zk_version_info gauge\n zk_version_info{version=\"3.7.0-SNAPSHOT\",revision_hash=\"b761b77a3bf8cd02edaad88a33bafbc8b6c65be4\",built_on=\"2020-11-07 08:03 UTC\",} 1.0\n # HELP ensemble_auth_success ensemble_auth_success\n ```\n \n - more details in the [ZOOKEEPER-3982](https://issues.apache.org/jira/browse/ZOOKEEPER-3982)\n\n\n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n\nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;07/Nov/20 08:22;githubbot;600", "Log Work__1": "maoling commented on pull request #1528:\nURL: https://github.com/apache/zookeeper/pull/1528#issuecomment-723439199\n\n\n > Why do you want to expose this value only on Prometheus?\n \n @eolivelli Could you please point out what place else I should expose? `DefaultMetricsProvider`?\n\n\n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n\nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;07/Nov/20 12:19;githubbot;600", "Log Work__2": "pkuwm commented on a change in pull request #1528:\nURL: https://github.com/apache/zookeeper/pull/1528#discussion_r528013978\n\n\n\n##########\nFile path: zookeeper-metrics-providers/zookeeper-prometheus-metrics/src/main/java/org/apache/zookeeper/metrics/prometheus/VersionInfoExports.java\n##########\n@@ -0,0 +1,44 @@\n+package org.apache.zookeeper.metrics.prometheus;\n\nReview comment:\n Hey @maoling, maybe apache license is required?\n\n\n\n\n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n\nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;20/Nov/20 22:57;githubbot;600", "Log Work__3": "maoling commented on a change in pull request #1528:\nURL: https://github.com/apache/zookeeper/pull/1528#discussion_r528193191\n\n\n\n##########\nFile path: zookeeper-metrics-providers/zookeeper-prometheus-metrics/src/main/java/org/apache/zookeeper/metrics/prometheus/VersionInfoExports.java\n##########\n@@ -0,0 +1,44 @@\n+package org.apache.zookeeper.metrics.prometheus;\n\nReview comment:\n Oops, I will fix it tomorrow. A little surprising, let me re-push this patch and check whether the CI or checkstyle could detect this license missing issue.\n\n\n\n\n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n\nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;21/Nov/20 12:53;githubbot;600", "Log Work__4": "maoling opened a new pull request #1528:\nURL: https://github.com/apache/zookeeper/pull/1528\n\n\n - Apply this patch, we can export ZooKeeper version as prometheus metric. For example:\n ```\n leader_unavailable_time_sum 0.0\n # HELP zk_version_info ZooKeeper version info\n # TYPE zk_version_info gauge\n zk_version_info{version=\"3.7.0-SNAPSHOT\",revision_hash=\"b761b77a3bf8cd02edaad88a33bafbc8b6c65be4\",built_on=\"2020-11-07 08:03 UTC\",} 1.0\n # HELP ensemble_auth_success ensemble_auth_success\n ```\n \n - more details in the [ZOOKEEPER-3982](https://issues.apache.org/jira/browse/ZOOKEEPER-3982)\n\n\n-- \nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n\nTo unsubscribe, e-mail: notifications-unsubscribe@zookeeper.apache.org\n\nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;28/Jun/21 02:21;githubbot;600", "Log Work__5": "maoling closed pull request #1528:\nURL: https://github.com/apache/zookeeper/pull/1528\n\n\n \n\n\n-- \nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n\nTo unsubscribe, e-mail: notifications-unsubscribe@zookeeper.apache.org\n\nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;28/Jun/21 02:21;githubbot;600", "Log Work__6": "maoling commented on pull request #1528:\nURL: https://github.com/apache/zookeeper/pull/1528#issuecomment-869513158\n\n\n @eolivelli PTAL. Cc @huizhilu \n\n\n-- \nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n\nTo unsubscribe, e-mail: notifications-unsubscribe@zookeeper.apache.org\n\nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;28/Jun/21 09:09;githubbot;600", "Log Work__7": "eolivelli commented on a change in pull request #1528:\nURL: https://github.com/apache/zookeeper/pull/1528#discussion_r661484410\n\n\n\n##########\nFile path: zookeeper-metrics-providers/zookeeper-prometheus-metrics/src/main/java/org/apache/zookeeper/metrics/prometheus/PrometheusMetricsProvider.java\n##########\n@@ -70,6 +70,7 @@\n private Server server;\n private final MetricsServletImpl servlet = new MetricsServletImpl();\n private final Context rootContext = new Context();\n+ public final CustomizedExports customizedExports = CustomizedExports.instance();\n\nReview comment:\n why \"public\" ?\n it is initialised in `configure` and you can stop it in the close method\n \n no need to do something special in the tests \n\n\n\n\n-- \nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n\nTo unsubscribe, e-mail: notifications-unsubscribe@zookeeper.apache.org\n\nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;30/Jun/21 13:40;githubbot;600", "Log Work__8": "maoling commented on a change in pull request #1528:\nURL: https://github.com/apache/zookeeper/pull/1528#discussion_r669588617\n\n\n\n##########\nFile path: zookeeper-metrics-providers/zookeeper-prometheus-metrics/src/main/java/org/apache/zookeeper/metrics/prometheus/PrometheusMetricsProvider.java\n##########\n@@ -70,6 +70,7 @@\n private Server server;\n private final MetricsServletImpl servlet = new MetricsServletImpl();\n private final Context rootContext = new Context();\n+ public final CustomizedExports customizedExports = CustomizedExports.instance();\n\nReview comment:\n I need to clean up customizedExports in the PrometheusMetricsProviderTest#setup manually because customizedExports is the text information which will pollute all the existing UTs in the PrometheusMetricsProviderTest\n\n\n\n\n-- \nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n\nTo unsubscribe, e-mail: notifications-unsubscribe@zookeeper.apache.org\n\nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;14/Jul/21 12:55;githubbot;600", "Log Work__9": "maoling commented on pull request #1528:\nURL: https://github.com/apache/zookeeper/pull/1528#issuecomment-879870905\n\n\n > I am not sure we have to write the version to Prometheus. why do you want do to so ?\n \n @eolivelli \n - The version info is a valuable metric for users to diagnose/report issues although we can find this from \n other ways(e.g., log, JMX, zkServer.sh version).\n - A mature software should have this function in its metric system. Let me give two example:\n \n ```\n Example A:\n JDK exposes its version metric like this:\n jvm_info{version=\"1.8.0_191-b12\",vendor=\"Oracle Corporation\",runtime=\"Java(TM) SE Runtime Environment\",} 1.0\n \n Example B:\n Etcd exposes its version metric like this:\n curl -L http://localhost:2379/metrics\n # HELP etcd_server_version Which version is running. 1 for 'server_version' label with current version.\n # TYPE etcd_server_version gauge\n etcd_server_version{server_version=\"3.3.13\"} 1\n ```\n\n\n-- \nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n\nTo unsubscribe, e-mail: notifications-unsubscribe@zookeeper.apache.org\n\nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;14/Jul/21 13:01;githubbot;600", "Log Work__10": "", "Log Work__11": "", "Log Work__12": "", "Log Work__13": "", "Log Work__14": "", "Log Work__15": "", "Log Work__16": "", "Log Work__17": "", "Log Work__18": "", "Log Work__19": "", "Original Estimate": "", "Remaining Estimate": 0, "Time Spent": 6000, "Work Ratio": "", "Σ Original Estimate": "", "Σ Remaining Estimate": 0, "Σ Time Spent": 6000, "Security Level": "", "Outward issue link (Blocker)": "", "Inward issue link (Reference)": "", "Inward issue link (Reference)__1": "", "Outward issue link (Reference)": "", "Outward issue link (Reference)__1": "", "Attachment": "", "Attachment__1": "", "Custom field (Affects version (Component))": "", "Custom field (Attachment count)": 0, "Custom field (Blog - New Blog Administrators)": "", "Custom field (Blog - New Blog PMC)": "", "Custom field (Blog - Write access)": "", "Custom field (Blog Administrator?)": "", "Custom field (Blogs - Admin for blog)": "", "Custom field (Blogs - Email Address)": "", "Custom field (Blogs - Existing Blog Access Level)": "", "Custom field (Blogs - Existing Blog Name)": "", "Custom field (Blogs - New Blog Write Access)": "", "Custom field (Blogs - Username)": "", "Custom field (Bug Category)": "", "Custom field (Bugzilla - Email Notification Address)": "", "Custom field (Bugzilla - List of usernames)": "", "Custom field (Bugzilla - PMC Name)": "", "Custom field (Bugzilla - Project Name)": "", "Custom field (Bugzilla Id)": "", "Custom field (Bugzilla Id)__1": "", "Custom field (Change Category)": "", "Custom field (Complexity)": "", "Custom field (Discovered By)": "", "Custom field (Docs Text)": "", "Custom field (Enable Automatic Patch Review)": false, "Custom field (Epic Colour)": "", "Custom field (Epic Link)": "", "Custom field (Epic Name)": "", "Custom field (Epic Status)": "", "Custom field (Estimated Complexity)": "", "Custom field (Evidence Of Open Source Adoption)": "", "Custom field (Evidence Of Registration)": "", "Custom field (Evidence Of Use On World Wide Web)": "", "Custom field (Existing GitBox Approval)": "", "Custom field (External issue ID)": "", "Custom field (External issue URL)": "", "Custom field (Fix version (Component))": "", "Custom field (Flags)": "", "Custom field (Git Notification Mailing List)": "", "Custom field (Git Repository Import Path)": "", "Custom field (Git Repository Name)": "", "Custom field (Git Repository Type)": "", "Custom field (GitHub Options)": "", "Custom field (Github Integration)": "", "Custom field (Github Integrations - Other)": "", "Custom field (Global Rank)": 9223372036854776000, "Custom field (INFRA - Subversion Repository Path)": "", "Custom field (Initial Confluence Contributors)": "", "Custom field (Last public comment date)": "2020-10-22 01:58:27.0", "Custom field (Level of effort)": "", "Custom field (Machine Readable Info)": "", "Custom field (Mentor)": "", "Custom field (New-TLP-TLPName)": "", "Custom field (Original story points)": "", "Custom field (Parent Link)": "", "Custom field (Priority)": "", "Custom field (Project)": "", "Custom field (Protected Branch)": "", "Custom field (Rank)": "0|z0jwj4:", "Custom field (Rank (Obsolete))": 9223372036854776000, "Custom field (Release Note)": "", "Custom field (Review Date)": "", "Custom field (Reviewer)": "", "Custom field (Severity)": "", "Custom field (Severity)__1": "", "Custom field (Skill Level)": "", "Custom field (Source Control Link)": "", "Custom field (Space Description)": "", "Custom field (Space Key)": "", "Custom field (Space Name)": "", "Custom field (Start Date)": "", "Custom field (Tags)": "", "Custom field (Tags)__1": "", "Custom field (Target end)": "", "Custom field (Target start)": "", "Custom field (Team)": "", "Custom field (Test and Documentation Plan)": "", "Custom field (Testcase included)": "", "Custom field (Tester)": "", "Custom field (Workaround)": "", "Comment": "", "Comment__1": "", "Comment__2": "", "Comment__3": "", "Comment__4": "", "Comment__5": "", "Comment__6": "", "Comment__7": "", "Comment__8": "", "Comment__9": "", "Comment__10": "", "Comment__11": "", "Comment__12": "", "Comment__13": "", "Comment__14": "", "Comment__15": "" }, { "Summary": "Add a benchmark tool for testing watch feature performance", "Issue key": "ZOOKEEPER-3823", "Issue id": 13304027, "Parent id": "", "Issue Type": "New Feature", "Status": "In Progress", "Project key": "ZOOKEEPER", "Project name": "ZooKeeper", "Project type": "software", "Project lead": "phunt", "Project description": "Apache ZooKeeper is a service for coordinating processes of distributed applications.", "Project url": "http://zookeeper.apache.org", "Priority": "Major", "Resolution": "", "Assignee": "maoling", "Reporter": "maoling", "Creator": "maoling", "Created": "11/May/20 07:10", "Updated": "15/Jun/23 21:09", "Last Viewed": "12/Mar/24 11:56", "Resolved": "", "Affects Version/s": "", "Affects Version/s__1": "", "Affects Version/s__2": "", "Component/s": "scripts", "Component/s__1": "", "Component/s__2": "", "Due Date": "", "Votes": 0, "Labels": "pull-request-available", "Labels__1": "", "Description": "", "Environment": "", "Log Work": "maoling opened a new pull request #1406:\nURL: https://github.com/apache/zookeeper/pull/1406\n\n\n - [Here](https://docs.google.com/document/d/1PuYQWnvyDudrsQT9htXD02_pBX_e21xf2t-rYBTuXsU/edit?usp=sharing) is a detailed design document. Copying its abstract here.\n \t\n \n > This watch benchmark report is mainly organized as followed: Section 1 and 2: we introduce the resource, environment and software settings of our benchmark server. Section 3: we talk about the implementations of our watch benchmark tool. Section 4: we evaluate the experimental effects using our watch benchmark tool on the standard cloud machine from four dimensions: server mode, znode count, client threads, watch mode. Section 6: we look forward to our future work\n \n - Link to [PR-1011](https://github.com/apache/zookeeper/pull/1011)\n - A test evidence in `Windows `OS is included in [JIRA](https://issues.apache.org/jira/browse/ZOOKEEPER-3823)\n - More details in [ZOOKEEPER-3823](https://issues.apache.org/jira/browse/ZOOKEEPER-3823)\n\n\n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n\nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;20/Jul/20 13:25;githubbot;600", "Log Work__1": "nkalmar commented on a change in pull request #1406:\nURL: https://github.com/apache/zookeeper/pull/1406#discussion_r466563259\n\n\n\n##########\nFile path: zookeeper-server/src/main/java/org/apache/zookeeper/server/watch/WatchBenchmarkTool.java\n##########\n@@ -0,0 +1,607 @@\n+/**\n+ * Licensed to the Apache Software Foundation (ASF) under one\n+ * or more contributor license agreements. See the NOTICE file\n+ * distributed with this work for additional information\n+ * regarding copyright ownership. The ASF licenses this file\n+ * to you under the Apache License, Version 2.0 (the\n+ * \"License\"); you may not use this file except in compliance\n+ * with the License. You may obtain a copy of the License at\n+ *
\n+ * http://www.apache.org/licenses/LICENSE-2.0\n+ *
\n+ * Unless required by applicable law or agreed to in writing, software\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n+ * See the License for the specific language governing permissions and\n+ * limitations under the License.\n+ */\n+\n+package org.apache.zookeeper.server.watch;\n+\n+import static java.nio.charset.StandardCharsets.UTF_8;\n+import static org.apache.zookeeper.AddWatchMode.PERSISTENT;\n+import java.io.IOException;\n+import java.math.BigDecimal;\n+import java.math.RoundingMode;\n+import java.util.ArrayList;\n+import java.util.Collections;\n+import java.util.Iterator;\n+import java.util.LinkedList;\n+import java.util.List;\n+import java.util.Vector;\n+import java.util.concurrent.BrokenBarrierException;\n+import java.util.concurrent.ConcurrentHashMap;\n+import java.util.concurrent.CountDownLatch;\n+import java.util.concurrent.CyclicBarrier;\n+import java.util.concurrent.ExecutorService;\n+import java.util.concurrent.Executors;\n+import java.util.concurrent.TimeUnit;\n+import java.util.concurrent.atomic.AtomicBoolean;\n+import java.util.concurrent.atomic.AtomicLong;\n+import org.apache.commons.cli.CommandLine;\n+import org.apache.commons.cli.CommandLineParser;\n+import org.apache.commons.cli.HelpFormatter;\n+import org.apache.commons.cli.Options;\n+import org.apache.commons.cli.PosixParser;\n+import org.apache.commons.lang.RandomStringUtils;\n+import org.apache.commons.lang.StringUtils;\n+import org.apache.zookeeper.CreateMode;\n+import org.apache.zookeeper.KeeperException;\n+import org.apache.zookeeper.WatchedEvent;\n+import org.apache.zookeeper.Watcher;\n+import org.apache.zookeeper.ZooDefs;\n+import org.apache.zookeeper.ZooKeeper;\n+import org.apache.zookeeper.client.ZKClientConfig;\n+import org.apache.zookeeper.common.PathUtils;\n+import org.apache.zookeeper.server.quorum.QuorumPeerConfig;\n+import org.slf4j.Logger;\n+import org.slf4j.LoggerFactory;\n+\n+/**\n+ * A benchmark tool that benchmarks the watch throughput and latency.\n+ * See ZOOKEEPER-3823 for the design document\n\nReview comment:\n again, I think adding the jira number is unnecessary, as it does not contain a design document, or any further information.\n\n##########\nFile path: zookeeper-docs/src/main/resources/markdown/zookeeperTools.md\n##########\n@@ -425,6 +426,38 @@ All layers compared.\n \n Or use `^c` to exit interactive mode anytime.\n \n+\n+\n+\n+### zkWatchBenchmark.sh\n+- A benchmark tool that benchmarks the watch throughput and latency, which supports multiple clients threads, multiple watch modes\n+- See **ZOOKEEPER-3823** for the design document\n\nReview comment:\n this jira does not contain a design document. I don't think we need to link jira here.\n\n##########\nFile path: zookeeper-docs/src/main/resources/markdown/zookeeperTools.md\n##########\n@@ -425,6 +426,38 @@ All layers compared.\n \n Or use `^c` to exit interactive mode anytime.\n \n+\n+\n+\n+### zkWatchBenchmark.sh\n+- A benchmark tool that benchmarks the watch throughput and latency, which supports multiple clients threads, multiple watch modes\n+- See **ZOOKEEPER-3823** for the design document\n+- Notes:\n+ - `export JVMFLAGS=\"-Xms12g -Xmx12g\"` to have more JVM heap size to avoid `GC overhead limit exceeded` when you have a large scale testing\n+ - `-v` to print a detailed logs when you find no benchmark output result for a long time\n+- Usages:\n+\n+\n+ nohup ./zkWatchBenchmark.sh -root_path /bench-watch -threads 100 -znode_count 1000 -force -connect_string \\n\n\nReview comment:\n I think nohup is unnecessary to include in the example command (while useful here I agree, there are other options, and everyone can decide how to handle the long runtime - at least this is how I see it, not a blocker though)\n\n##########\nFile path: zookeeper-server/src/main/java/org/apache/zookeeper/server/watch/WatchBenchmarkTool.java\n##########\n@@ -0,0 +1,607 @@\n+/**\n+ * Licensed to the Apache Software Foundation (ASF) under one\n+ * or more contributor license agreements. See the NOTICE file\n+ * distributed with this work for additional information\n+ * regarding copyright ownership. The ASF licenses this file\n+ * to you under the Apache License, Version 2.0 (the\n+ * \"License\"); you may not use this file except in compliance\n+ * with the License. You may obtain a copy of the License at\n+ *
\n+ * http://www.apache.org/licenses/LICENSE-2.0\n+ *
\n+ * Unless required by applicable law or agreed to in writing, software\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n+ * See the License for the specific language governing permissions and\n+ * limitations under the License.\n+ */\n+\n+package org.apache.zookeeper.server.watch;\n+\n+import static java.nio.charset.StandardCharsets.UTF_8;\n+import static org.apache.zookeeper.AddWatchMode.PERSISTENT;\n+import java.io.IOException;\n+import java.math.BigDecimal;\n+import java.math.RoundingMode;\n+import java.util.ArrayList;\n+import java.util.Collections;\n+import java.util.Iterator;\n+import java.util.LinkedList;\n+import java.util.List;\n+import java.util.Vector;\n+import java.util.concurrent.BrokenBarrierException;\n+import java.util.concurrent.ConcurrentHashMap;\n+import java.util.concurrent.CountDownLatch;\n+import java.util.concurrent.CyclicBarrier;\n+import java.util.concurrent.ExecutorService;\n+import java.util.concurrent.Executors;\n+import java.util.concurrent.TimeUnit;\n+import java.util.concurrent.atomic.AtomicBoolean;\n+import java.util.concurrent.atomic.AtomicLong;\n+import org.apache.commons.cli.CommandLine;\n+import org.apache.commons.cli.CommandLineParser;\n+import org.apache.commons.cli.HelpFormatter;\n+import org.apache.commons.cli.Options;\n+import org.apache.commons.cli.PosixParser;\n+import org.apache.commons.lang.RandomStringUtils;\n+import org.apache.commons.lang.StringUtils;\n+import org.apache.zookeeper.CreateMode;\n+import org.apache.zookeeper.KeeperException;\n+import org.apache.zookeeper.WatchedEvent;\n+import org.apache.zookeeper.Watcher;\n+import org.apache.zookeeper.ZooDefs;\n+import org.apache.zookeeper.ZooKeeper;\n+import org.apache.zookeeper.client.ZKClientConfig;\n+import org.apache.zookeeper.common.PathUtils;\n+import org.apache.zookeeper.server.quorum.QuorumPeerConfig;\n+import org.slf4j.Logger;\n+import org.slf4j.LoggerFactory;\n+\n+/**\n+ * A benchmark tool that benchmarks the watch throughput and latency.\n+ * See ZOOKEEPER-3823 for the design document\n+ */\n+\n+public class WatchBenchmarkTool {\n+ private static final Logger LOG = LoggerFactory.getLogger(WatchBenchmarkTool.class);\n+\n+ private static final ConcurrentHashMap \n+ * http://www.apache.org/licenses/LICENSE-2.0\n+ * \n+ * Unless required by applicable law or agreed to in writing, software\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n+ * See the License for the specific language governing permissions and\n+ * limitations under the License.\n+ */\n+\n+package org.apache.zookeeper.server.watch;\n+\n+import static java.nio.charset.StandardCharsets.UTF_8;\n+import static org.apache.zookeeper.AddWatchMode.PERSISTENT;\n+import java.io.IOException;\n+import java.math.BigDecimal;\n+import java.math.RoundingMode;\n+import java.util.ArrayList;\n+import java.util.Collections;\n+import java.util.Iterator;\n+import java.util.LinkedList;\n+import java.util.List;\n+import java.util.Vector;\n+import java.util.concurrent.BrokenBarrierException;\n+import java.util.concurrent.ConcurrentHashMap;\n+import java.util.concurrent.CountDownLatch;\n+import java.util.concurrent.CyclicBarrier;\n+import java.util.concurrent.ExecutorService;\n+import java.util.concurrent.Executors;\n+import java.util.concurrent.TimeUnit;\n+import java.util.concurrent.atomic.AtomicBoolean;\n+import java.util.concurrent.atomic.AtomicLong;\n+import org.apache.commons.cli.CommandLine;\n+import org.apache.commons.cli.CommandLineParser;\n+import org.apache.commons.cli.HelpFormatter;\n+import org.apache.commons.cli.Options;\n+import org.apache.commons.cli.PosixParser;\n+import org.apache.commons.lang.RandomStringUtils;\n+import org.apache.commons.lang.StringUtils;\n+import org.apache.zookeeper.CreateMode;\n+import org.apache.zookeeper.KeeperException;\n+import org.apache.zookeeper.WatchedEvent;\n+import org.apache.zookeeper.Watcher;\n+import org.apache.zookeeper.ZooDefs;\n+import org.apache.zookeeper.ZooKeeper;\n+import org.apache.zookeeper.client.ZKClientConfig;\n+import org.apache.zookeeper.common.PathUtils;\n+import org.apache.zookeeper.server.quorum.QuorumPeerConfig;\n+import org.slf4j.Logger;\n+import org.slf4j.LoggerFactory;\n+\n+/**\n+ * A benchmark tool that benchmarks the watch throughput and latency.\n+ * See ZOOKEEPER-3823 for the design document\n+ */\n+\n+public class WatchBenchmarkTool {\n+ private static final Logger LOG = LoggerFactory.getLogger(WatchBenchmarkTool.class);\n+\n+ private static final ConcurrentHashMap \n+ * http://www.apache.org/licenses/LICENSE-2.0\n+ * \n+ * Unless required by applicable law or agreed to in writing, software\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n+ * See the License for the specific language governing permissions and\n+ * limitations under the License.\n+ */\n+\n+package org.apache.zookeeper.server.watch;\n+\n+import static java.nio.charset.StandardCharsets.UTF_8;\n+import static org.apache.zookeeper.AddWatchMode.PERSISTENT;\n+import java.io.IOException;\n+import java.math.BigDecimal;\n+import java.math.RoundingMode;\n+import java.util.ArrayList;\n+import java.util.Collections;\n+import java.util.Iterator;\n+import java.util.LinkedList;\n+import java.util.List;\n+import java.util.Vector;\n+import java.util.concurrent.BrokenBarrierException;\n+import java.util.concurrent.ConcurrentHashMap;\n+import java.util.concurrent.CountDownLatch;\n+import java.util.concurrent.CyclicBarrier;\n+import java.util.concurrent.ExecutorService;\n+import java.util.concurrent.Executors;\n+import java.util.concurrent.TimeUnit;\n+import java.util.concurrent.atomic.AtomicBoolean;\n+import java.util.concurrent.atomic.AtomicLong;\n+import org.apache.commons.cli.CommandLine;\n+import org.apache.commons.cli.CommandLineParser;\n+import org.apache.commons.cli.HelpFormatter;\n+import org.apache.commons.cli.Options;\n+import org.apache.commons.cli.PosixParser;\n+import org.apache.commons.lang.RandomStringUtils;\n+import org.apache.commons.lang.StringUtils;\n+import org.apache.zookeeper.CreateMode;\n+import org.apache.zookeeper.KeeperException;\n+import org.apache.zookeeper.WatchedEvent;\n+import org.apache.zookeeper.Watcher;\n+import org.apache.zookeeper.ZooDefs;\n+import org.apache.zookeeper.ZooKeeper;\n+import org.apache.zookeeper.client.ZKClientConfig;\n+import org.apache.zookeeper.common.PathUtils;\n+import org.apache.zookeeper.server.quorum.QuorumPeerConfig;\n+import org.slf4j.Logger;\n+import org.slf4j.LoggerFactory;\n+\n+/**\n+ * A benchmark tool that benchmarks the watch throughput and latency.\n+ * See ZOOKEEPER-3823 for the design document\n+ */\n+\n+public class WatchBenchmarkTool {\n+ private static final Logger LOG = LoggerFactory.getLogger(WatchBenchmarkTool.class);\n+\n+ private static final ConcurrentHashMap \n+ * http://www.apache.org/licenses/LICENSE-2.0\n+ * \n+ * Unless required by applicable law or agreed to in writing, software\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n+ * See the License for the specific language governing permissions and\n+ * limitations under the License.\n+ */\n+\n+package org.apache.zookeeper.test;\n+\n+import static org.apache.zookeeper.AddWatchMode.STANDARD_CHILD;\n+import static org.apache.zookeeper.AddWatchMode.STANDARD_DATA;\n+import static org.apache.zookeeper.AddWatchMode.STANDARD_EXIST;\n+import java.io.IOException;\n+import java.util.concurrent.BlockingQueue;\n+import java.util.concurrent.CountDownLatch;\n+import java.util.concurrent.LinkedBlockingQueue;\n+import java.util.concurrent.TimeUnit;\n+import org.apache.zookeeper.AsyncCallback;\n+import org.apache.zookeeper.CreateMode;\n+import org.apache.zookeeper.KeeperException;\n+import org.apache.zookeeper.WatchedEvent;\n+import org.apache.zookeeper.Watcher;\n+import org.apache.zookeeper.ZooDefs;\n+import org.apache.zookeeper.ZooKeeper;\n+import org.junit.After;\n+import org.junit.Assert;\n+import org.junit.Before;\n+import org.junit.Test;\n+\n+/**\n+ * The unit test for zookeeper addWatch api for standard one-time watcher.\n+ */\n+public class AddWatchTest extends ClientBase {\n \n Review comment:\n More tests are needed. In particular tests that distinguish between STANDARD_EXIST, STANDARD_CHILD and STANDARD_DATA. Due to my other comment, watches currently trigger on all events.\n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;18/Nov/19 15:49;githubbot;600",
"Log Work__3": "Randgalt commented on issue #1149: ZOOKEEPER-3611:addWatch api supports all watch event type, strengthen the corresponding CLI and add a documentation\nURL: https://github.com/apache/zookeeper/pull/1149#issuecomment-555077038\n \n \n I think `STANDARD_EXIST` needs to trigger immediately when if the node exists. Look how DataTree's setWatches() handles exist watchers. \n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;18/Nov/19 15:51;githubbot;600",
"Log Work__4": "Randgalt commented on issue #1149: ZOOKEEPER-3611:addWatch api supports all watch event type, strengthen the corresponding CLI and add a documentation\nURL: https://github.com/apache/zookeeper/pull/1149#issuecomment-555077038\n \n \n I think `STANDARD_EXIST` needs to trigger immediately if the node exists. Look how DataTree's setWatches() handles exist watchers. \n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;18/Nov/19 15:52;githubbot;600",
"Log Work__5": "Randgalt commented on issue #1149: ZOOKEEPER-3611:addWatch api supports all watch event type, strengthen the corresponding CLI and add a documentation\nURL: https://github.com/apache/zookeeper/pull/1149#issuecomment-555075287\n \n \n This PR is missing some changes. DataTree's `addWatch()` method needs to be updated. Currently it adds the watcher to both `dataWatches` and `childWatches`. This means that there actually is no distinction between STANDARD_CHILD, STANDARD_DATA, STANDARD_EXIST.\n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;18/Nov/19 16:36;githubbot;600",
"Log Work__6": "Randgalt commented on issue #1149: ZOOKEEPER-3611:addWatch api supports all watch event type, strengthen the corresponding CLI and add a documentation\nURL: https://github.com/apache/zookeeper/pull/1149#issuecomment-555077038\n \n \n I think `STANDARD_EXIST` needs to trigger immediately if the node exists. Look how DataTree's setWatches() handles exist watchers. \n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;18/Nov/19 16:37;githubbot;600",
"Log Work__7": "Randgalt commented on pull request #1149: ZOOKEEPER-3611:addWatch api supports all watch event type, strengthen the corresponding CLI and add a documentation\nURL: https://github.com/apache/zookeeper/pull/1149#discussion_r347486822\n \n \n\n ##########\n File path: zookeeper-server/src/main/java/org/apache/zookeeper/ZooKeeper.java\n ##########\n @@ -736,6 +736,12 @@ public AddWatchRegistration(Watcher watcher, String clientPath, AddWatchMode mod\n return watchManager.persistentWatches;\n case PERSISTENT_RECURSIVE:\n return watchManager.persistentRecursiveWatches;\n+ case STANDARD_CHILD:\n+ return watchManager.childWatches;\n+ case STANDARD_DATA:\n+ return watchManager.dataWatches;\n+ case STANDARD_EXIST:\n+ return rc == 0 ? watchManager.dataWatches : watchManager.existWatches;\n \n Review comment:\n This line of code will need to be revisited if `STANDARD_EXIST` triggers immediately per my other comment. If the node existed assume the watcher was trigger and return `null` so that it isn't stored.\n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;18/Nov/19 16:40;githubbot;600",
"Log Work__8": "Randgalt commented on pull request #1149: ZOOKEEPER-3611:addWatch api supports all watch event type, strengthen the corresponding CLI and add a documentation\nURL: https://github.com/apache/zookeeper/pull/1149#discussion_r347491354\n \n \n\n ##########\n File path: zookeeper-server/src/main/java/org/apache/zookeeper/ZooDefs.java\n ##########\n @@ -157,6 +157,12 @@\n int persistent = 0; // matches AddWatchMode.PERSISTENT\n \n int persistentRecursive = 1; // matches AddWatchMode.PERSISTENT_RECURSIVE\n+\n+ int standardChild = 2;\n \n Review comment:\n Add \"matches\" comment like the other two\n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;18/Nov/19 16:48;githubbot;600",
"Log Work__9": "Randgalt commented on pull request #1149: ZOOKEEPER-3611:addWatch api supports all watch event type, strengthen the corresponding CLI and add a documentation\nURL: https://github.com/apache/zookeeper/pull/1149#discussion_r347492096\n \n \n\n ##########\n File path: zookeeper-server/src/main/java/org/apache/zookeeper/cli/AddWatchCommand.java\n ##########\n @@ -56,24 +57,32 @@ public CliCommand parse(String[] cmdArgs) throws CliParseException {\n } catch (ParseException ex) {\n throw new CliParseException(ex);\n }\n- if (cl.getArgs().length != 2) {\n+ if (cl.getArgs().length != 2 || cl.getOptions().length != 1) {\n throw new CliParseException(getUsageStr());\n }\n \n- if (cl.hasOption(\"m\")) {\n- try {\n- mode = AddWatchMode.valueOf(cl.getOptionValue(\"m\").toUpperCase());\n- } catch (IllegalArgumentException e) {\n- throw new CliParseException(getUsageStr());\n- }\n- }\n-\n return this;\n }\n \n @Override\n public boolean exec() throws CliException {\n String path = cl.getArgs()[1];\n+ if (cl.hasOption(\"d\")) {\n \n Review comment:\n Needs an error message if more than 1 is specified.\n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;18/Nov/19 16:50;githubbot;600",
"Log Work__10": "Randgalt commented on issue #1149: ZOOKEEPER-3611:addWatch api supports all watch event type, strengthen the corresponding CLI and add a documentation\nURL: https://github.com/apache/zookeeper/pull/1149#issuecomment-555108919\n \n \n Thinking more about my comments on `STANDARD_EXIST`. I'm not sure what the right thing to do is. In the pre 3.6 ZK, setting an exists watcher is combined with an `exists()` request. So, the caller finds out about node existence and leaves a watcher either way. With `addWatch()` the caller won't know about node existence so that's why I suggested triggering immediately if the node exists. But, then, there's no way to set a watch via `addWatch()` that triggers if a node is deleted. I wonder if we also need `STANDARD_DELETED`? I'll think more but would appreciate other comments.\n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;18/Nov/19 16:59;githubbot;600",
"Log Work__11": "Randgalt commented on issue #1149: ZOOKEEPER-3611:addWatch api supports all watch event type, strengthen the corresponding CLI and add a documentation\nURL: https://github.com/apache/zookeeper/pull/1149#issuecomment-555108919\n \n \n Thinking more about my comments on `STANDARD_EXIST`. I'm not sure what the right thing to do is. In the pre 3.6 ZK, setting an exists watcher is combined with an `exists()` request. So, the caller finds out about node existence and leaves a watcher either way. With `addWatch()` the caller won't know about node existence so that's why I suggested triggering immediately if the node exists. But, then, there's no way to set a watch via `addWatch()` that triggers if a node is deleted. I wonder if we also need `STANDARD_DELETED`? I'll think more but would appreciate other comments.\n \n ----\n \n More: OK - I think `STANDARD_EXIST` should be removed from `addWatch()`. Essentially, the existing `exists()` method is the same thing as addWatch STANDARD_EXIST but it returns a Stat object so that the caller can know about node existence and the watch that gets set implies the correct thing.\n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;18/Nov/19 17:05;githubbot;600",
"Log Work__12": "Randgalt commented on issue #1149: ZOOKEEPER-3611:addWatch api supports all watch event type, strengthen the corresponding CLI and add a documentation\nURL: https://github.com/apache/zookeeper/pull/1149#issuecomment-555108919\n \n \n Thinking more about my comments on `STANDARD_EXIST`. I'm not sure what the right thing to do is. In the pre 3.6 ZK, setting an exists watcher is combined with an `exists()` request. So, the caller finds out about node existence and leaves a watcher either way. With `addWatch()` the caller won't know about node existence so that's why I suggested triggering immediately if the node exists. But, then, there's no way to set a watch via `addWatch()` that triggers if a node is deleted. I wonder if we also need `STANDARD_DELETED`? I'll think more but would appreciate other comments.\n \n ----\n \n More: OK - I think `STANDARD_EXIST` should be removed from `addWatch()`. Essentially, the existing `exists()` method is the same thing as addWatch STANDARD_EXIST but it returns a Stat object so that the caller can know about node existence and the watch that gets set implies the correct thing. Or, alternatively, `addWatch()` can be changed to return a `Stat` object and `STANDARD_EXIST` would be an alias for `exists(path, watcher)`.\n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;18/Nov/19 17:06;githubbot;600",
"Log Work__13": "maoling commented on issue #1149: ZOOKEEPER-3611:addWatch api supports all watch event type, strengthen the corresponding CLI and add a documentation\nURL: https://github.com/apache/zookeeper/pull/1149#issuecomment-555859965\n \n \n Let me process PR-1010 firstly, then come back to this one.\n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;20/Nov/19 06:29;githubbot;600",
"Log Work__14": "maoling commented on issue #1149: ZOOKEEPER-3611:addWatch api supports all watch event type, strengthen the corresponding CLI and add a documentation\nURL: https://github.com/apache/zookeeper/pull/1149#issuecomment-555859965\n \n \n I will process this PR this week.\n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;02/Dec/19 01:53;githubbot;600",
"Log Work__15": "asf-ci commented on issue #1149: ZOOKEEPER-3611:addWatch api supports all watch event type, strengthen the corresponding CLI and add a documentation\nURL: https://github.com/apache/zookeeper/pull/1149#issuecomment-566443031\n \n \n \n Refer to this link for build results (access rights to CI server needed): \n https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build-maven/1743/ℹ️ Learn about @sonatype-lift commands
\n \n You can reply with the following commands. For example, reply with ***@sonatype-lift ignoreall*** to leave out all findings.\n | **Command** | **Usage** |\n | -----------;02/Sep/22 12:13;githubbot;600",
"Log Work__3": "sonatype-lift[bot] commented on code in PR #1406:\nURL: https://github.com/apache/zookeeper/pull/1406#discussion_r961613597\n\n\n##########\nbin/zkWatchBenchmark.sh:\n##########\n@@ -0,0 +1,38 @@\n+#!/usr/bin/env bash\n+\n+# Licensed to the Apache Software Foundation (ASF) under one or more\n+# contributor license agreements. See the NOTICE file distributed with\n+# this work for additional information regarding copyright ownership.\n+# The ASF licenses this file to You under the Apache License, Version 2.0\n+# (the \"License\"); you may not use this file except in compliance with\n+# the License. You may obtain a copy of the License at\n+#\n+# http://www.apache.org/licenses/LICENSE-2.0\n+#\n+# Unless required by applicable law or agreed to in writing, software\n+# distributed under the License is distributed on an \"AS IS\" BASIS,\n+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n+# See the License for the specific language governing permissions and\n+# limitations under the License.\n+\n+#\n+# If this scripted is run out of /usr/bin or some other system bin directory\n+# it should be linked to and not copied. Things like java jar files are found\n+# relative to the canonical path of this script.\n+#\n+\n+# use POSIX interface, symlink is followed automatically\n+ZOOBIN=\"${BASH_SOURCE-$0}\"\n+ZOOBIN=\"$(dirname \"${ZOOBIN}\")\"\n+ZOOBINDIR=\"$(cd \"${ZOOBIN}\"; pwd)\"\n+\n+if [ -e \"$ZOOBIN/../libexec/zkEnv.sh\" ]; then\n+ . \"$ZOOBINDIR\"/../libexec/zkEnv.sh\n+else\n+ . \"$ZOOBINDIR\"/zkEnv.sh\n\nReview Comment:\n *[SC1091](https://github.com/koalaman/shellcheck/wiki/SC1091):* Not following: ./zkEnv.sh was not specified as input (see shellcheck -x).\n \n ---\n \n ℹ️ Learn about @sonatype-lift commands
\n \n You can reply with the following commands. For example, reply with ***@sonatype-lift ignoreall*** to leave out all findings.\n | **Command** | **Usage** |\n | -----------;02/Sep/22 12:13;githubbot;600",
"Log Work__4": "",
"Log Work__5": "",
"Log Work__6": "",
"Log Work__7": "",
"Log Work__8": "",
"Log Work__9": "",
"Log Work__10": "",
"Log Work__11": "",
"Log Work__12": "",
"Log Work__13": "",
"Log Work__14": "",
"Log Work__15": "",
"Log Work__16": "",
"Log Work__17": "",
"Log Work__18": "",
"Log Work__19": "",
"Original Estimate": "",
"Remaining Estimate": 0,
"Time Spent": 2400,
"Work Ratio": "",
"Σ Original Estimate": "",
"Σ Remaining Estimate": 0,
"Σ Time Spent": 2400,
"Security Level": "",
"Outward issue link (Blocker)": "",
"Inward issue link (Reference)": "ZOOKEEPER-3264",
"Inward issue link (Reference)__1": "",
"Outward issue link (Reference)": "",
"Outward issue link (Reference)__1": "",
"Attachment": "",
"Attachment__1": "",
"Custom field (Affects version (Component))": "",
"Custom field (Attachment count)": 0,
"Custom field (Blog - New Blog Administrators)": "",
"Custom field (Blog - New Blog PMC)": "",
"Custom field (Blog - Write access)": "",
"Custom field (Blog Administrator?)": "",
"Custom field (Blogs - Admin for blog)": "",
"Custom field (Blogs - Email Address)": "",
"Custom field (Blogs - Existing Blog Access Level)": "",
"Custom field (Blogs - Existing Blog Name)": "",
"Custom field (Blogs - New Blog Write Access)": "",
"Custom field (Blogs - Username)": "",
"Custom field (Bug Category)": "",
"Custom field (Bugzilla - Email Notification Address)": "",
"Custom field (Bugzilla - List of usernames)": "",
"Custom field (Bugzilla - PMC Name)": "",
"Custom field (Bugzilla - Project Name)": "",
"Custom field (Bugzilla Id)": "",
"Custom field (Bugzilla Id)__1": "",
"Custom field (Change Category)": "",
"Custom field (Complexity)": "",
"Custom field (Discovered By)": "",
"Custom field (Docs Text)": "",
"Custom field (Enable Automatic Patch Review)": false,
"Custom field (Epic Colour)": "",
"Custom field (Epic Link)": "",
"Custom field (Epic Name)": "",
"Custom field (Epic Status)": "",
"Custom field (Estimated Complexity)": "",
"Custom field (Evidence Of Open Source Adoption)": "",
"Custom field (Evidence Of Registration)": "",
"Custom field (Evidence Of Use On World Wide Web)": "",
"Custom field (Existing GitBox Approval)": "",
"Custom field (External issue ID)": "",
"Custom field (External issue URL)": "",
"Custom field (Fix version (Component))": "",
"Custom field (Flags)": "",
"Custom field (Git Notification Mailing List)": "",
"Custom field (Git Repository Import Path)": "",
"Custom field (Git Repository Name)": "",
"Custom field (Git Repository Type)": "",
"Custom field (GitHub Options)": "",
"Custom field (Github Integration)": "",
"Custom field (Github Integrations - Other)": "",
"Custom field (Global Rank)": 9223372036854776000,
"Custom field (INFRA - Subversion Repository Path)": "",
"Custom field (Initial Confluence Contributors)": "",
"Custom field (Last public comment date)": "Sun Jul 05 03:46:03 UTC 2020",
"Custom field (Level of effort)": "",
"Custom field (Machine Readable Info)": "",
"Custom field (Mentor)": "",
"Custom field (New-TLP-TLPName)": "",
"Custom field (Original story points)": "",
"Custom field (Parent Link)": "",
"Custom field (Priority)": "",
"Custom field (Project)": "",
"Custom field (Protected Branch)": "",
"Custom field (Rank)": "0|z0ekzc:",
"Custom field (Rank (Obsolete))": 9223372036854776000,
"Custom field (Release Note)": "",
"Custom field (Review Date)": "",
"Custom field (Reviewer)": "",
"Custom field (Severity)": "",
"Custom field (Severity)__1": "",
"Custom field (Skill Level)": "",
"Custom field (Source Control Link)": "",
"Custom field (Space Description)": "",
"Custom field (Space Key)": "",
"Custom field (Space Name)": "",
"Custom field (Start Date)": "",
"Custom field (Tags)": "",
"Custom field (Tags)__1": "",
"Custom field (Target end)": "",
"Custom field (Target start)": "",
"Custom field (Team)": "",
"Custom field (Test and Documentation Plan)": "",
"Custom field (Testcase included)": "",
"Custom field (Tester)": "",
"Custom field (Workaround)": "",
"Comment": "05/Jul/20 03:46;maoling;Tested in Windows OS:\n{code:java}\nC:\\Users\\maoling\\apache-zookeeper-3.7.0-SNAPSHOT-bin\\bin>zkWatchBenchmark.cmd -root_path /test -threads 50 znode_count 30000 -znode_size 1000 -force -connect_string 127.0.0.1:2181 -timeout 300000\n\n\nNotification expected count: 1500000, received count: 1500000 (1.0), loss count: 0 (0.0)\nLatency distribution:\nAvg latency: 119.2061 ms/op\nFastest latency: 3.0 ms/op\nSlowest latency: 328.0 ms/op\n10th percentile notification latency: 109 ms\n25th percentile notification latency: 109 ms\n50th percentile notification latency: 116 ms\n75th percentile notification latency: 125 ms\n90th percentile notification latency: 133 ms\n95th percentile notification latency: 141 ms\n99th percentile notification latency: 173 ms\nTotal time:252326 ms, watch benchmark total time: 72319 ms, throughput:20741.4372 op/s\n{code};;;",
"Comment__1": "",
"Comment__2": "",
"Comment__3": "",
"Comment__4": "",
"Comment__5": "",
"Comment__6": "",
"Comment__7": "",
"Comment__8": "",
"Comment__9": "",
"Comment__10": "",
"Comment__11": "",
"Comment__12": "",
"Comment__13": "",
"Comment__14": "",
"Comment__15": ""
},
{
"Summary": "fix the build warnings about @see,@link,@return found by IDEA",
"Issue key": "ZOOKEEPER-3789",
"Issue id": 13297249,
"Parent id": "",
"Issue Type": "Improvement",
"Status": "In Progress",
"Project key": "ZOOKEEPER",
"Project name": "ZooKeeper",
"Project type": "software",
"Project lead": "phunt",
"Project description": "Apache ZooKeeper is a service for coordinating processes of distributed applications.",
"Project url": "http://zookeeper.apache.org",
"Priority": "Minor",
"Resolution": "",
"Assignee": "maoling",
"Reporter": "maoling",
"Creator": "maoling",
"Created": "09/Apr/20 02:36",
"Updated": "17/Mar/23 12:41",
"Last Viewed": "12/Mar/24 11:56",
"Resolved": "",
"Affects Version/s": "",
"Affects Version/s__1": "",
"Affects Version/s__2": "",
"Component/s": "server",
"Component/s__1": "",
"Component/s__2": "",
"Due Date": "",
"Votes": 1,
"Labels": "pull-request-available",
"Labels__1": "",
"Description": "1. I use my IDEA to find these maven build warnings:\n{code:java}\n/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/bin/java -Dmaven.multiModuleProjectDirectory=/Users/maoling/workspaces/workspace_zookeeper/zookeeper \"-Dmaven.home=/Applications/IntelliJ IDEA.app/Contents/plugins/maven/lib/maven3\" \"-Dclassworlds.conf=/Applications/IntelliJ IDEA.app/Contents/plugins/maven/lib/maven3/bin/m2.conf\" \"-Dmaven.ext.class.path=/Applications/IntelliJ IDEA.app/Contents/plugins/maven/lib/maven-event-listener.jar\" \"-javaagent:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar=58545:/Applications/IntelliJ IDEA.app/Contents/bin\" -Dfile.encoding=UTF-8 -classpath \"/Applications/IntelliJ IDEA.app/Contents/plugins/maven/lib/maven3/boot/plexus-classworlds-2.6.0.jar\" org.codehaus.classworlds.Launcher -Didea.version2019.3.1 -DskipTests=true package -P !java-build\n{code}\n{code:java}\nJavadoc Warnings\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/AsyncCallback.java:340: ?? - ??@see: ?org.apache.zookeeper.ZooKeeper????getEphemerals(EphemeralsCallback, Object)\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/AsyncCallback.java:340: ?? - ??@see: ?org.apache.zookeeper.ZooKeeper????getEphemerals(String, EphemeralsCallback, Object)\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/AsyncCallback.java:271: ?? - ??@link: ?org.apache.zookeeper.ZooKeeper????sync(String, VoidCallback, Object)\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/AsyncCallback.java:150: ?? - ??@see: ?org.apache.zookeeper.ZooKeeper????getACL(String, Stat, ACLCallback, Object)\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/AsyncCallback.java:89: ?? - ??@see: ?org.apache.zookeeper.ZooKeeper????getAllChildrenNumber(String, AllChildrenNumberCallback, Object)\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/AsyncCallback.java:202: ?? - ??@see: ?org.apache.zookeeper.ZooKeeper????getChildren(String, boolean, Children2Callback, Object)\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/AsyncCallback.java:202: ?? - ??@see: ?org.apache.zookeeper.ZooKeeper????getChildren(String, Watcher, Children2Callback, Object)\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/AsyncCallback.java:179: ?? - ??@see: ?org.apache.zookeeper.ZooKeeper????getChildren(String, boolean, ChildrenCallback, Object)\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/AsyncCallback.java:179: ?? - ??@see: ?org.apache.zookeeper.ZooKeeper????getChildren(String, Watcher, ChildrenCallback, Object)\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/AsyncCallback.java:227: ?? - ??@see: ?org.apache.zookeeper.ZooKeeper????create(String, byte[], List, CreateMode, Create2Callback, Object)\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/AsyncCallback.java:227: ?? - ??@see: ?org.apache.zookeeper.ZooKeeper????create(String, byte[], List, CreateMode, Create2Callback, Object, long)\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/AsyncCallback.java:121: ?? - ??@see: ?org.apache.zookeeper.ZooKeeper????getData(String, boolean, DataCallback, Object)\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/AsyncCallback.java:121: ?? - ??@see: ?org.apache.zookeeper.ZooKeeper????getData(String, Watcher, DataCallback, Object)\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/AsyncCallback.java:121: ?? - ??@see: ?org.apache.zookeeper.ZooKeeper????getConfig(boolean, DataCallback, Object)\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/AsyncCallback.java:121: ?? - ??@see: ?org.apache.zookeeper.ZooKeeper????getConfig(Watcher, DataCallback, Object)\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/AsyncCallback.java:328: ?? - ??@see: ?org.apache.zookeeper.ZooKeeper????multi(Iterable, MultiCallback, Object)\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/AsyncCallback.java:70: ?? - ??@see: ?org.apache.zookeeper.ZooKeeper????exists(String, boolean, StatCallback, Object)\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/AsyncCallback.java:70: ?? - ??@see: ?org.apache.zookeeper.ZooKeeper????exists(String, Watcher, StatCallback, Object)\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/AsyncCallback.java:70: ?? - ??@see: ?org.apache.zookeeper.ZooKeeper????setData(String, byte[], int, StatCallback, Object)\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/AsyncCallback.java:70: ?? - ??@see: ?org.apache.zookeeper.ZooKeeper????setACL(String, List, int, StatCallback, Object)\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/AsyncCallback.java:262: ?? - ??@see: ?org.apache.zookeeper.ZooKeeper????create(String, byte[], List, CreateMode, StringCallback, Object)\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/AsyncCallback.java:299: ?? - ??@see: ?org.apache.zookeeper.ZooKeeper????delete(String, int, VoidCallback, Object)\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/AsyncCallback.java:299: ?? - ??@see: ?org.apache.zookeeper.ZooKeeper????removeAllWatches(String, Watcher.WatcherType, boolean, VoidCallback, Object)\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/AsyncCallback.java:299: ?? - ??@see: ?org.apache.zookeeper.ZooKeeper????removeWatches(String, Watcher, Watcher.WatcherType, boolean, VoidCallback, Object)\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/AsyncCallback.java:299: ?? - ??@see: ?org.apache.zookeeper.ZooKeeper????sync(String, VoidCallback, Object)\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/AsyncCallback.java:299: ?? - ??@link: ?org.apache.zookeeper.ZooKeeper????delete(String, int, VoidCallback, Object)\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/server/ZKDatabase.java:513: ?? - @return ???????\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/server/util/CircularBuffer.java:70: ?? - @return ???????\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/server/persistence/FileTxnLog.java:318: ?? - @return ???????\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/server/persistence/FileTxnSnapLog.java:571: ?? - @return ???????\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/server/persistence/SnapStream.java:215: ?? - @return ???????\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/server/persistence/Util.java:264: ?? - @return ???????\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/server/persistence/Util.java:274: ?? - @return ???????\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/Learner.java:94: ?? - @return ???????\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/Leader.java:1201: ?? - @return ???????\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/LearnerMaster.java:131: ?? - @return ???????\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/Leader.java:265: ?? - @param argument \"qv,\" ???????\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/Leader.java:977: ?? - @param argument \"zxid,\" ???????\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/Leader.java:977: ?? - @param argument \"sid,\" ???????\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/LearnerHandler.java:1142: ?? - @return ???????\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumPeer.java:1949: ?? - @return ???????\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/cli/AclParser.java:37: ?? - @return ???????\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/cli/CliCommand.java:77: ?? - @return ???????\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/cli/CliCommand.java:85: ?? - @return ???????\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/cli/CliCommand.java:93: ?? - @return ???????\n/Users/maoling/workspaces//zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/cli/CliCommand.java:118: ?? - @return ???????\n{code}",
"Environment": "",
"Log Work": "maoling commented on pull request #1317: ZOOKEEPER-3789: fix the build warnings about @see,@link,@return found by IDEA\nURL: https://github.com/apache/zookeeper/pull/1317\n \n \n - more details in the [ZOOKEEPER-3789](https://issues.apache.org/jira/browse/ZOOKEEPER-3789)\n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;11/Apr/20 03:55;githubbot;600",
"Log Work__1": "ctubbsii commented on pull request #1317: ZOOKEEPER-3789: fix the build warnings about @see,@link,@return found by IDEA\nURL: https://github.com/apache/zookeeper/pull/1317#discussion_r407017082\n \n \n\n ##########\n File path: zookeeper-server/src/main/java/org/apache/zookeeper/AsyncCallback.java\n ##########\n @@ -62,10 +62,10 @@\n * @param ctx Whatever context object that we passed to asynchronous calls.\n * @param stat {@link Stat} object of the node on given path.\n *\n- * @see ZooKeeper#exists(String, boolean, StatCallback, Object)\n- * @see ZooKeeper#exists(String, Watcher, StatCallback, Object)\n- * @see ZooKeeper#setData(String, byte[], int, StatCallback, Object)\n- * @see ZooKeeper#setACL(String, List, int, StatCallback, Object)\n+ * @see ZooKeeper#exists(String, boolean, org.apache.zookeeper.AsyncCallback.StatCallback, Object)\n \n Review comment:\n I think it would be better to add an import statement for these. It makes it more readable.\n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;11/Apr/20 04:50;githubbot;600",
"Log Work__2": "ctubbsii commented on pull request #1317: ZOOKEEPER-3789: fix the build warnings about @see,@link,@return found by IDEA\nURL: https://github.com/apache/zookeeper/pull/1317#discussion_r407017397\n \n \n\n ##########\n File path: zookeeper-server/src/main/java/org/apache/zookeeper/jmx/ManagedUtil.java\n ##########\n @@ -53,7 +53,7 @@ private static boolean isLog4jJmxEnabled() {\n /**\n * Register the log4j JMX mbeans. Set system property\n * \"zookeeper.jmx.log4j.disable\" to true to disable registration.\n- * @see http://logging.apache.org/log4j/1.2/apidocs/index.html?org/apache/log4j/jmx/package-summary.html\n+ * @see \n \n Review comment:\n I don't think this will work. This will create a link around an empty region. I was pretty sure a raw URL was fine for the value for `@see`, but if you want to create an explicit link, you need to have something in between `` and ``\n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;11/Apr/20 04:50;githubbot;600",
"Log Work__3": "ctubbsii commented on pull request #1317: ZOOKEEPER-3789: fix the build warnings about @see,@link,@return found by IDEA\nURL: https://github.com/apache/zookeeper/pull/1317#discussion_r407017248\n \n \n\n ##########\n File path: zookeeper-server/src/main/java/org/apache/zookeeper/cli/AclParser.java\n ##########\n @@ -32,7 +32,6 @@\n /**\n * parse string into list of ACL\n * @param aclString\n- * @return\n \n Review comment:\n These are good, but the `@param aclString` is also not doing anything.\n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;11/Apr/20 04:50;githubbot;600",
"Log Work__4": "maoling commented on pull request #1317: ZOOKEEPER-3789: fix the build warnings about @see,@link,@return found by IDEA\nURL: https://github.com/apache/zookeeper/pull/1317#discussion_r410809553\n \n \n\n ##########\n File path: zookeeper-server/src/main/java/org/apache/zookeeper/AsyncCallback.java\n ##########\n @@ -62,10 +62,10 @@\n * @param ctx Whatever context object that we passed to asynchronous calls.\n * @param stat {@link Stat} object of the node on given path.\n *\n- * @see ZooKeeper#exists(String, boolean, StatCallback, Object)\n- * @see ZooKeeper#exists(String, Watcher, StatCallback, Object)\n- * @see ZooKeeper#setData(String, byte[], int, StatCallback, Object)\n- * @see ZooKeeper#setACL(String, List, int, StatCallback, Object)\n+ * @see ZooKeeper#exists(String, boolean, org.apache.zookeeper.AsyncCallback.StatCallback, Object)\n \n Review comment:\n please tell me what the concrete thing I should do here? :)\n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;19/Apr/20 04:10;githubbot;600",
"Log Work__5": "maoling commented on pull request #1317: ZOOKEEPER-3789: fix the build warnings about @see,@link,@return found by IDEA\nURL: https://github.com/apache/zookeeper/pull/1317#discussion_r410810607\n \n \n\n ##########\n File path: zookeeper-server/src/main/java/org/apache/zookeeper/cli/AclParser.java\n ##########\n @@ -32,7 +32,6 @@\n /**\n * parse string into list of ACL\n * @param aclString\n- * @return\n \n Review comment:\n - My IDEA doesn't complain about this although the `@param` is really useless\n - It's time to do more strict constraint in the `checkstyle-strict.xml `about javaDoc? Are you interested in working for this? \n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;19/Apr/20 04:18;githubbot;600",
"Log Work__6": "maoling commented on pull request #1317: ZOOKEEPER-3789: fix the build warnings about @see,@link,@return found by IDEA\nURL: https://github.com/apache/zookeeper/pull/1317#discussion_r410814292\n \n \n\n ##########\n File path: zookeeper-server/src/main/java/org/apache/zookeeper/jmx/ManagedUtil.java\n ##########\n @@ -53,7 +53,7 @@ private static boolean isLog4jJmxEnabled() {\n /**\n * Register the log4j JMX mbeans. Set system property\n * \"zookeeper.jmx.log4j.disable\" to true to disable registration.\n- * @see http://logging.apache.org/log4j/1.2/apidocs/index.html?org/apache/log4j/jmx/package-summary.html\n+ * @see \n \n Review comment:\n A raw URL still has build warning and I had fixed the empty region.\n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;19/Apr/20 04:45;githubbot;600",
"Log Work__7": "maoling commented on pull request #1317: ZOOKEEPER-3789: fix the build warnings about @see,@link,@return found by IDEA\nURL: https://github.com/apache/zookeeper/pull/1317#discussion_r410810607\n \n \n\n ##########\n File path: zookeeper-server/src/main/java/org/apache/zookeeper/cli/AclParser.java\n ##########\n @@ -32,7 +32,6 @@\n /**\n * parse string into list of ACL\n * @param aclString\n- * @return\n \n Review comment:\n - My IDEA doesn't complain about this although the `@param` is really useless\n - It's time to do more strict constraint in the `checkstyle-strict.xml `about javaDoc? Are you interested in working for this? @ctubbsii \n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;19/Apr/20 04:46;githubbot;600",
"Log Work__8": "maoling commented on pull request #1317: ZOOKEEPER-3789: fix the build warnings about @see,@link,@return found by IDEA\nURL: https://github.com/apache/zookeeper/pull/1317#discussion_r410815694\n \n \n\n ##########\n File path: zookeeper-server/src/main/java/org/apache/zookeeper/cli/AclParser.java\n ##########\n @@ -32,7 +32,6 @@\n /**\n * parse string into list of ACL\n * @param aclString\n- * @return\n \n Review comment:\n BTW, @ctubbsii Is your github avatar from the [Death Note](https://cn.bing.com/search?q=Death+Note&qs=n&FORM=BESBTB&sp=-1&pq=&sc=0-0&sk=&cvid=A5D97DC314B841378526D876581B4A2E&ensearch=1) ?\n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;19/Apr/20 04:56;githubbot;600",
"Log Work__9": "TisonKun commented on pull request #1317: ZOOKEEPER-3789: fix the build warnings about @see,@link,@return found by IDEA\nURL: https://github.com/apache/zookeeper/pull/1317#discussion_r410851473\n \n \n\n ##########\n File path: zookeeper-server/src/main/java/org/apache/zookeeper/cli/AclParser.java\n ##########\n @@ -32,7 +32,6 @@\n /**\n * parse string into list of ACL\n * @param aclString\n- * @return\n \n Review comment:\n > BTW, @ctubbsii Is your github avatar from the [Death Note](https://cn.bing.com/search?q=Death+Note&qs=n&FORM=BESBTB&sp=-1&pq=&sc=0-0&sk=&cvid=A5D97DC314B841378526D876581B4A2E&ensearch=1) ?\n \n I think it is \"L\" lol\n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;19/Apr/20 08:33;githubbot;600",
"Log Work__10": "ctubbsii commented on pull request #1317: ZOOKEEPER-3789: fix the build warnings about @see,@link,@return found by IDEA\nURL: https://github.com/apache/zookeeper/pull/1317#discussion_r410932881\n \n \n\n ##########\n File path: zookeeper-server/src/main/java/org/apache/zookeeper/AsyncCallback.java\n ##########\n @@ -62,10 +62,10 @@\n * @param ctx Whatever context object that we passed to asynchronous calls.\n * @param stat {@link Stat} object of the node on given path.\n *\n- * @see ZooKeeper#exists(String, boolean, StatCallback, Object)\n- * @see ZooKeeper#exists(String, Watcher, StatCallback, Object)\n- * @see ZooKeeper#setData(String, byte[], int, StatCallback, Object)\n- * @see ZooKeeper#setACL(String, List, int, StatCallback, Object)\n+ * @see ZooKeeper#exists(String, boolean, org.apache.zookeeper.AsyncCallback.StatCallback, Object)\n \n Review comment:\n ```java\n import org.apache.zookeeper.AsyncCallback.StatCallback;\n ```\n \n ```suggestion\n * @see ZooKeeper#exists(String, boolean, StatCallback, Object)\n ```\n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;19/Apr/20 15:46;githubbot;600",
"Log Work__11": "ctubbsii commented on pull request #1317: ZOOKEEPER-3789: fix the build warnings about @see,@link,@return found by IDEA\nURL: https://github.com/apache/zookeeper/pull/1317#discussion_r410933508\n \n \n\n ##########\n File path: zookeeper-server/src/main/java/org/apache/zookeeper/cli/AclParser.java\n ##########\n @@ -32,7 +32,6 @@\n /**\n * parse string into list of ACL\n * @param aclString\n- * @return\n \n Review comment:\n > * My IDEA doesn't complain about this although the `@param` is really useless\n \n Mine is Eclipse. It doesn't complain by default, but it can find them if you tune the settings. I'm not sure, but Javadoc's built-in `doclint` may also be able to find them.\n \n > BTW, @ctubbsii Is your github avatar from the [Death Note](https://cn.bing.com/search?q=Death+Note&qs=n&FORM=BESBTB&sp=-1&pq=&sc=0-0&sk=&cvid=A5D97DC314B841378526D876581B4A2E&ensearch=1) ?\n \n Of course. :smiley_cat:\n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;19/Apr/20 15:49;githubbot;600",
"Log Work__12": "maoling commented on a change in pull request #1317:\nURL: https://github.com/apache/zookeeper/pull/1317#discussion_r411367926\n\n\n\n##########\nFile path: zookeeper-server/src/main/java/org/apache/zookeeper/AsyncCallback.java\n##########\n@@ -62,10 +62,10 @@\n * @param ctx Whatever context object that we passed to asynchronous calls.\n * @param stat {@link Stat} object of the node on given path.\n *\n- * @see ZooKeeper#exists(String, boolean, StatCallback, Object)\n- * @see ZooKeeper#exists(String, Watcher, StatCallback, Object)\n- * @see ZooKeeper#setData(String, byte[], int, StatCallback, Object)\n- * @see ZooKeeper#setACL(String, List, int, StatCallback, Object)\n+ * @see ZooKeeper#exists(String, boolean, org.apache.zookeeper.AsyncCallback.StatCallback, Object)\n\nReview comment:\n - use this way, the checkstyle will view it as useless import?\n - I choose this way because I found some examples from the existing codes e:g Op.java#Line44\n `* @see ZooKeeper#create(String, byte[], ], java.util.List, Cr, CreateMode, e, org.apache.zookeeper.AsyncCallback.StringCallbaclback, Object)`\n\n\n\n\n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n\nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;20/Apr/20 13:16;githubbot;600",
"Log Work__13": "maoling commented on a change in pull request #1317:\nURL: https://github.com/apache/zookeeper/pull/1317#discussion_r411372897\n\n\n\n##########\nFile path: zookeeper-server/src/main/java/org/apache/zookeeper/cli/AclParser.java\n##########\n@@ -32,7 +32,6 @@\n /**\n * parse string into list of ACL\n * @param aclString\n- * @return\n\nReview comment:\n - Actually, `mvn clean package -DskipTests` can also find the same build warnings, not IDEA. I don't know the mechanism.\n - Although this patch has clean up these warnings, if we have no strict constraint on javaDoc. After some time, some codes which have nonstandard javaDocs will be merged again?\n - @ctubbsii @TisonKun Any of you have a free time to do this? :) \n Top priority for javaDoc is: 1.don't allow empty `@param` and empty `@return`; 2. @see and @link must meet specifications.\n\n\n\n\n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n\nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;20/Apr/20 13:23;githubbot;600",
"Log Work__14": "ctubbsii commented on a change in pull request #1317:\nURL: https://github.com/apache/zookeeper/pull/1317#discussion_r411543375\n\n\n\n##########\nFile path: zookeeper-server/src/main/java/org/apache/zookeeper/AsyncCallback.java\n##########\n@@ -62,10 +62,10 @@\n * @param ctx Whatever context object that we passed to asynchronous calls.\n * @param stat {@link Stat} object of the node on given path.\n *\n- * @see ZooKeeper#exists(String, boolean, StatCallback, Object)\n- * @see ZooKeeper#exists(String, Watcher, StatCallback, Object)\n- * @see ZooKeeper#setData(String, byte[], int, StatCallback, Object)\n- * @see ZooKeeper#setACL(String, List, int, StatCallback, Object)\n+ * @see ZooKeeper#exists(String, boolean, org.apache.zookeeper.AsyncCallback.StatCallback, Object)\n\nReview comment:\n > * use this way, the checkstyle will view it as useless import?\n \n Then checkstyle is mistaken. Perhaps it needs to be updated to a newer version? Or perhaps the rules are configured wrong? Or perhaps checkstyle is being run too soon (it should be run after the code is compiled)?\n \n > * I choose this way because I found some examples from the existing codes e:g Op.java#Line44\n > `* @see ZooKeeper#create(String, byte[], ], java.util.List, Cr, CreateMode, e, org.apache.zookeeper.AsyncCallback.StringCallbaclback, Object)`\n \n That's fine. It was only a suggestion.\n \n If it doesn't work out, then please disregard.\n \n\n\n\n\n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n\nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;20/Apr/20 17:04;githubbot;600",
"Log Work__15": "TisonKun commented on a change in pull request #1317:\nURL: https://github.com/apache/zookeeper/pull/1317#discussion_r411792369\n\n\n\n##########\nFile path: zookeeper-server/src/main/java/org/apache/zookeeper/cli/AclParser.java\n##########\n@@ -32,7 +32,6 @@\n /**\n * parse string into list of ACL\n * @param aclString\n- * @return\n\nReview comment:\n @maoling I'll check if checkstyle rules support guarding what you proposed.\n\n\n\n\n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n\nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;21/Apr/20 00:59;githubbot;600",
"Log Work__16": "TisonKun commented on a change in pull request #1317:\nURL: https://github.com/apache/zookeeper/pull/1317#discussion_r412884350\n\n\n\n##########\nFile path: zookeeper-server/src/main/java/org/apache/zookeeper/AsyncCallback.java\n##########\n@@ -62,10 +62,10 @@\n * @param ctx Whatever context object that we passed to asynchronous calls.\n * @param stat {@link Stat} object of the node on given path.\n *\n- * @see ZooKeeper#exists(String, boolean, StatCallback, Object)\n- * @see ZooKeeper#exists(String, Watcher, StatCallback, Object)\n- * @see ZooKeeper#setData(String, byte[], int, StatCallback, Object)\n- * @see ZooKeeper#setACL(String, List, int, StatCallback, Object)\n+ * @see ZooKeeper#exists(String, boolean, org.apache.zookeeper.AsyncCallback.StatCallback, Object)\n\nReview comment:\n > * use this way, the checkstyle will view it as useless import?\n \n No. Checkstyle should be happy with it.\n \n\n\n\n\n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n\nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;22/Apr/20 11:02;githubbot;600",
"Log Work__17": "TisonKun commented on a change in pull request #1317:\nURL: https://github.com/apache/zookeeper/pull/1317#discussion_r413813872\n\n\n\n##########\nFile path: zookeeper-server/src/main/java/org/apache/zookeeper/cli/AclParser.java\n##########\n@@ -32,7 +32,6 @@\n /**\n * parse string into list of ACL\n * @param aclString\n- * @return\n\nReview comment:\n @maoling it seems https://checkstyle.sourceforge.io/config_javadoc.html#NonEmptyAtclauseDescription works. Will open a ticket for investigating integrating it.\n\n\n\n\n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n\nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;23/Apr/20 13:58;githubbot;600",
"Log Work__18": "tisonkun commented on PR #1317:\nURL: https://github.com/apache/zookeeper/pull/1317#issuecomment-1473772295\n\n Closing...\n \n Long stale and code conflict. It needs another round.\n\n\n;17/Mar/23 12:41;githubbot;600",
"Log Work__19": "tisonkun closed pull request #1317: ZOOKEEPER-3789: fix the build warnings about @see,@link,@return found by IDEA\nURL: https://github.com/apache/zookeeper/pull/1317\n\n\n;17/Mar/23 12:41;githubbot;600",
"Original Estimate": "",
"Remaining Estimate": 0,
"Time Spent": 12000,
"Work Ratio": "",
"Σ Original Estimate": "",
"Σ Remaining Estimate": 0,
"Σ Time Spent": 12000,
"Security Level": "",
"Outward issue link (Blocker)": "",
"Inward issue link (Reference)": "ZOOKEEPER-3767",
"Inward issue link (Reference)__1": "",
"Outward issue link (Reference)": "",
"Outward issue link (Reference)__1": "",
"Attachment": "",
"Attachment__1": "",
"Custom field (Affects version (Component))": "",
"Custom field (Attachment count)": 0,
"Custom field (Blog - New Blog Administrators)": "",
"Custom field (Blog - New Blog PMC)": "",
"Custom field (Blog - Write access)": "",
"Custom field (Blog Administrator?)": "",
"Custom field (Blogs - Admin for blog)": "",
"Custom field (Blogs - Email Address)": "",
"Custom field (Blogs - Existing Blog Access Level)": "",
"Custom field (Blogs - Existing Blog Name)": "",
"Custom field (Blogs - New Blog Write Access)": "",
"Custom field (Blogs - Username)": "",
"Custom field (Bug Category)": "",
"Custom field (Bugzilla - Email Notification Address)": "",
"Custom field (Bugzilla - List of usernames)": "",
"Custom field (Bugzilla - PMC Name)": "",
"Custom field (Bugzilla - Project Name)": "",
"Custom field (Bugzilla Id)": "",
"Custom field (Bugzilla Id)__1": "",
"Custom field (Change Category)": "",
"Custom field (Complexity)": "",
"Custom field (Discovered By)": "",
"Custom field (Docs Text)": "",
"Custom field (Enable Automatic Patch Review)": false,
"Custom field (Epic Colour)": "",
"Custom field (Epic Link)": "",
"Custom field (Epic Name)": "",
"Custom field (Epic Status)": "",
"Custom field (Estimated Complexity)": "",
"Custom field (Evidence Of Open Source Adoption)": "",
"Custom field (Evidence Of Registration)": "",
"Custom field (Evidence Of Use On World Wide Web)": "",
"Custom field (Existing GitBox Approval)": "",
"Custom field (External issue ID)": "",
"Custom field (External issue URL)": "",
"Custom field (Fix version (Component))": "",
"Custom field (Flags)": "",
"Custom field (Git Notification Mailing List)": "",
"Custom field (Git Repository Import Path)": "",
"Custom field (Git Repository Name)": "",
"Custom field (Git Repository Type)": "",
"Custom field (GitHub Options)": "",
"Custom field (Github Integration)": "",
"Custom field (Github Integrations - Other)": "",
"Custom field (Global Rank)": 9223372036854776000,
"Custom field (INFRA - Subversion Repository Path)": "",
"Custom field (Initial Confluence Contributors)": "",
"Custom field (Last public comment date)": "Thu Apr 09 03:59:16 UTC 2020",
"Custom field (Level of effort)": "",
"Custom field (Machine Readable Info)": "",
"Custom field (Mentor)": "",
"Custom field (New-TLP-TLPName)": "",
"Custom field (Original story points)": "",
"Custom field (Parent Link)": "",
"Custom field (Priority)": "",
"Custom field (Project)": "",
"Custom field (Protected Branch)": "",
"Custom field (Rank)": "0|z0dftc:",
"Custom field (Rank (Obsolete))": 9223372036854776000,
"Custom field (Release Note)": "",
"Custom field (Review Date)": "",
"Custom field (Reviewer)": "",
"Custom field (Severity)": "",
"Custom field (Severity)__1": "",
"Custom field (Skill Level)": "",
"Custom field (Source Control Link)": "",
"Custom field (Space Description)": "",
"Custom field (Space Key)": "",
"Custom field (Space Name)": "",
"Custom field (Start Date)": "",
"Custom field (Tags)": "",
"Custom field (Tags)__1": "",
"Custom field (Target end)": "",
"Custom field (Target start)": "",
"Custom field (Team)": "",
"Custom field (Test and Documentation Plan)": "",
"Custom field (Testcase included)": "",
"Custom field (Tester)": "",
"Custom field (Workaround)": "",
"Comment": "09/Apr/20 03:59;ctubbsii;Cool! I'm not the only one who noticed this. :) Fixing all the javadoc warnings (and eventually, all non-javadoc compiler warnings, too) is something I have on my personal TODO list to fix soon. But, I'd be happy if somebody else got to it first. :);;;",
"Comment__1": "",
"Comment__2": "",
"Comment__3": "",
"Comment__4": "",
"Comment__5": "",
"Comment__6": "",
"Comment__7": "",
"Comment__8": "",
"Comment__9": "",
"Comment__10": "",
"Comment__11": "",
"Comment__12": "",
"Comment__13": "",
"Comment__14": "",
"Comment__15": ""
},
{
"Summary": "Apply modernizer-maven-plugin to build",
"Issue key": "ZOOKEEPER-3787",
"Issue id": 13296971,
"Parent id": "",
"Issue Type": "Improvement",
"Status": "In Progress",
"Project key": "ZOOKEEPER",
"Project name": "ZooKeeper",
"Project type": "software",
"Project lead": "phunt",
"Project description": "Apache ZooKeeper is a service for coordinating processes of distributed applications.",
"Project url": "http://zookeeper.apache.org",
"Priority": "Minor",
"Resolution": "",
"Assignee": "ctubbsii",
"Reporter": "ctubbsii",
"Creator": "ctubbsii",
"Created": "08/Apr/20 03:13",
"Updated": "15/Jun/23 21:09",
"Last Viewed": "12/Mar/24 11:56",
"Resolved": "",
"Affects Version/s": "",
"Affects Version/s__1": "",
"Affects Version/s__2": "",
"Component/s": "build",
"Component/s__1": "",
"Component/s__2": "",
"Due Date": "",
"Votes": 1,
"Labels": "",
"Labels__1": "",
"Description": "modernizer-maven-plugin can catch outdated Java coding paradigms that have been superseded by newer Java language features.\n\nApplying the recommended changes from this plugin can help a project avoid breakages, incompatibilities, and changes in behavior, across Java versions. It can also help reduce dependencies by suggesting changes that leverage built-in Java classes rather than commonly-used external libraries that were written to add convenient features before those features were added to Java itself.\n\nAdding the plugin to the build is simple, but working through all the items it catches is tedious. I've already begun this work.",
"Environment": "",
"Log Work": "",
"Log Work__1": "",
"Log Work__2": "",
"Log Work__3": "",
"Log Work__4": "",
"Log Work__5": "",
"Log Work__6": "",
"Log Work__7": "",
"Log Work__8": "",
"Log Work__9": "",
"Log Work__10": "",
"Log Work__11": "",
"Log Work__12": "",
"Log Work__13": "",
"Log Work__14": "",
"Log Work__15": "",
"Log Work__16": "",
"Log Work__17": "",
"Log Work__18": "",
"Log Work__19": "",
"Original Estimate": "",
"Remaining Estimate": "",
"Time Spent": "",
"Work Ratio": "",
"Σ Original Estimate": "",
"Σ Remaining Estimate": "",
"Σ Time Spent": "",
"Security Level": "",
"Outward issue link (Blocker)": "",
"Inward issue link (Reference)": "",
"Inward issue link (Reference)__1": "",
"Outward issue link (Reference)": "",
"Outward issue link (Reference)__1": "",
"Attachment": "",
"Attachment__1": "",
"Custom field (Affects version (Component))": "",
"Custom field (Attachment count)": 0,
"Custom field (Blog - New Blog Administrators)": "",
"Custom field (Blog - New Blog PMC)": "",
"Custom field (Blog - Write access)": "",
"Custom field (Blog Administrator?)": "",
"Custom field (Blogs - Admin for blog)": "",
"Custom field (Blogs - Email Address)": "",
"Custom field (Blogs - Existing Blog Access Level)": "",
"Custom field (Blogs - Existing Blog Name)": "",
"Custom field (Blogs - New Blog Write Access)": "",
"Custom field (Blogs - Username)": "",
"Custom field (Bug Category)": "",
"Custom field (Bugzilla - Email Notification Address)": "",
"Custom field (Bugzilla - List of usernames)": "",
"Custom field (Bugzilla - PMC Name)": "",
"Custom field (Bugzilla - Project Name)": "",
"Custom field (Bugzilla Id)": "",
"Custom field (Bugzilla Id)__1": "",
"Custom field (Change Category)": "",
"Custom field (Complexity)": "",
"Custom field (Discovered By)": "",
"Custom field (Docs Text)": "",
"Custom field (Enable Automatic Patch Review)": false,
"Custom field (Epic Colour)": "",
"Custom field (Epic Link)": "",
"Custom field (Epic Name)": "",
"Custom field (Epic Status)": "",
"Custom field (Estimated Complexity)": "",
"Custom field (Evidence Of Open Source Adoption)": "",
"Custom field (Evidence Of Registration)": "",
"Custom field (Evidence Of Use On World Wide Web)": "",
"Custom field (Existing GitBox Approval)": "",
"Custom field (External issue ID)": "",
"Custom field (External issue URL)": "",
"Custom field (Fix version (Component))": "",
"Custom field (Flags)": "",
"Custom field (Git Notification Mailing List)": "",
"Custom field (Git Repository Import Path)": "",
"Custom field (Git Repository Name)": "",
"Custom field (Git Repository Type)": "",
"Custom field (GitHub Options)": "",
"Custom field (Github Integration)": "",
"Custom field (Github Integrations - Other)": "",
"Custom field (Global Rank)": 9223372036854776000,
"Custom field (INFRA - Subversion Repository Path)": "",
"Custom field (Initial Confluence Contributors)": "",
"Custom field (Last public comment date)": "Thu Apr 09 02:49:02 UTC 2020",
"Custom field (Level of effort)": "",
"Custom field (Machine Readable Info)": "",
"Custom field (Mentor)": "",
"Custom field (New-TLP-TLPName)": "",
"Custom field (Original story points)": "",
"Custom field (Parent Link)": "",
"Custom field (Priority)": "",
"Custom field (Project)": "",
"Custom field (Protected Branch)": "",
"Custom field (Rank)": "0|z0de3k:",
"Custom field (Rank (Obsolete))": 9223372036854776000,
"Custom field (Release Note)": "",
"Custom field (Review Date)": "",
"Custom field (Reviewer)": "",
"Custom field (Severity)": "",
"Custom field (Severity)__1": "",
"Custom field (Skill Level)": "",
"Custom field (Source Control Link)": "",
"Custom field (Space Description)": "",
"Custom field (Space Key)": "",
"Custom field (Space Name)": "",
"Custom field (Start Date)": "",
"Custom field (Tags)": "",
"Custom field (Tags)__1": "",
"Custom field (Target end)": "",
"Custom field (Target start)": "",
"Custom field (Team)": "",
"Custom field (Test and Documentation Plan)": "",
"Custom field (Testcase included)": "",
"Custom field (Tester)": "",
"Custom field (Workaround)": "",
"Comment": "08/Apr/20 08:44;andor;Nice addition [~ctubbsii].\n\nCan we setup this plugin to generate warning messages only, so we could collaborate on the items?;;;",
"Comment__1": "09/Apr/20 02:49;ctubbsii;[~andor] Adding the plugin to the build is trivial. The only real effort is addressing the specific things it finds. I'm actually already done with the modernizer-maven-plugin stuff... but it depends on a series of related PRs that I have queued to improve the build and make it easier to build the project (which makes it easier to contribute).\n\nCurrently, I'm waiting on the next PR of mine to be merged (for ZOOKEEPER-3786), then I have one for ZOOKEEPER-3788, then another to fix the full-build and fatjar profiles and some Maven issues with the zookeeper-it module.\n\nOnly after those can I submit the PR for this issue before working on some other tasks I have queued.\n\nI could submit everything I have ready in one PR, but that would be a nightmare to review. I can't submit them as independent PRs, because that would be a nightmare to resolve the merge conflicts. So, I'm submitting them in sequence, trying to go for incremental improvements. But, it takes time to get PRs reviewed and then merged, so I have to be patient. :);;;",
"Comment__2": "",
"Comment__3": "",
"Comment__4": "",
"Comment__5": "",
"Comment__6": "",
"Comment__7": "",
"Comment__8": "",
"Comment__9": "",
"Comment__10": "",
"Comment__11": "",
"Comment__12": "",
"Comment__13": "",
"Comment__14": "",
"Comment__15": ""
},
{
"Summary": "Wrong message in IOException",
"Issue key": "ZOOKEEPER-3775",
"Issue id": 13295073,
"Parent id": "",
"Issue Type": "Bug",
"Status": "In Progress",
"Project key": "ZOOKEEPER",
"Project name": "ZooKeeper",
"Project type": "software",
"Project lead": "phunt",
"Project description": "Apache ZooKeeper is a service for coordinating processes of distributed applications.",
"Project url": "http://zookeeper.apache.org",
"Priority": "Trivial",
"Resolution": "",
"Assignee": "shireennagdive",
"Reporter": "lasaro",
"Creator": "lasaro",
"Created": "30/Mar/20 19:33",
"Updated": "09/Apr/20 07:57",
"Last Viewed": "12/Mar/24 11:56",
"Resolved": "",
"Affects Version/s": "",
"Affects Version/s__1": "",
"Affects Version/s__2": "",
"Component/s": "leaderElection",
"Component/s__1": "",
"Component/s__2": "",
"Due Date": "",
"Votes": 0,
"Labels": "pull-request-available",
"Labels__1": "",
"Description": "method run of QuorumCnxManager throws the following exception:\n\nif (length <= 0 || length > PACKETMAXSIZE) {\n throw new IOException(\"Received packet with invalid packet: \" + length);\n }\n\nInstead of the current string, the cause should be \"Received packet with invalid length: ",
"Environment": "",
"Log Work": "shireennagdive commented on issue #1307: ZOOKEEPER-3775: Wrong message in IOException\nURL: https://github.com/apache/zookeeper/pull/1307#issuecomment-610522466\n \n \n @maoling I have changed the title!\n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;07/Apr/20 17:34;githubbot;600",
"Log Work__1": "eolivelli commented on issue #1307: ZOOKEEPER-3775: Wrong message in IOException\nURL: https://github.com/apache/zookeeper/pull/1307#issuecomment-611147889\n \n \n retest this please\n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;08/Apr/20 19:28;githubbot;600",
"Log Work__2": "shireennagdive commented on issue #1307: ZOOKEEPER-3775: Wrong message in IOException\nURL: https://github.com/apache/zookeeper/pull/1307#issuecomment-611221896\n \n \n @eolivelli If you think this is a very small PR, then I can make this change as a part of another issue in JIRA. Feel free to close this.\n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;08/Apr/20 22:14;githubbot;600",
"Log Work__3": "eolivelli commented on issue #1307: ZOOKEEPER-3775: Wrong message in IOException\nURL: https://github.com/apache/zookeeper/pull/1307#issuecomment-611388168\n \n \n @shireennagdive \n yes it would be better\n thank you\n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;09/Apr/20 07:57;githubbot;600",
"Log Work__4": "eolivelli commented on pull request #1307: ZOOKEEPER-3775: Wrong message in IOException\nURL: https://github.com/apache/zookeeper/pull/1307\n \n \n \n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;09/Apr/20 07:57;githubbot;600",
"Log Work__5": "",
"Log Work__6": "",
"Log Work__7": "",
"Log Work__8": "",
"Log Work__9": "",
"Log Work__10": "",
"Log Work__11": "",
"Log Work__12": "",
"Log Work__13": "",
"Log Work__14": "",
"Log Work__15": "",
"Log Work__16": "",
"Log Work__17": "",
"Log Work__18": "",
"Log Work__19": "",
"Original Estimate": "",
"Remaining Estimate": 0,
"Time Spent": 3000,
"Work Ratio": "",
"Σ Original Estimate": "",
"Σ Remaining Estimate": 0,
"Σ Time Spent": 3000,
"Security Level": "",
"Outward issue link (Blocker)": "",
"Inward issue link (Reference)": "",
"Inward issue link (Reference)__1": "",
"Outward issue link (Reference)": "",
"Outward issue link (Reference)__1": "",
"Attachment": "",
"Attachment__1": "",
"Custom field (Affects version (Component))": "",
"Custom field (Attachment count)": 0,
"Custom field (Blog - New Blog Administrators)": "",
"Custom field (Blog - New Blog PMC)": "",
"Custom field (Blog - Write access)": "",
"Custom field (Blog Administrator?)": "",
"Custom field (Blogs - Admin for blog)": "",
"Custom field (Blogs - Email Address)": "",
"Custom field (Blogs - Existing Blog Access Level)": "",
"Custom field (Blogs - Existing Blog Name)": "",
"Custom field (Blogs - New Blog Write Access)": "",
"Custom field (Blogs - Username)": "",
"Custom field (Bug Category)": "",
"Custom field (Bugzilla - Email Notification Address)": "",
"Custom field (Bugzilla - List of usernames)": "",
"Custom field (Bugzilla - PMC Name)": "",
"Custom field (Bugzilla - Project Name)": "",
"Custom field (Bugzilla Id)": "",
"Custom field (Bugzilla Id)__1": "",
"Custom field (Change Category)": "",
"Custom field (Complexity)": "",
"Custom field (Discovered By)": "",
"Custom field (Docs Text)": "",
"Custom field (Enable Automatic Patch Review)": false,
"Custom field (Epic Colour)": "",
"Custom field (Epic Link)": "",
"Custom field (Epic Name)": "",
"Custom field (Epic Status)": "",
"Custom field (Estimated Complexity)": "",
"Custom field (Evidence Of Open Source Adoption)": "",
"Custom field (Evidence Of Registration)": "",
"Custom field (Evidence Of Use On World Wide Web)": "",
"Custom field (Existing GitBox Approval)": "",
"Custom field (External issue ID)": "",
"Custom field (External issue URL)": "",
"Custom field (Fix version (Component))": "",
"Custom field (Flags)": "",
"Custom field (Git Notification Mailing List)": "",
"Custom field (Git Repository Import Path)": "",
"Custom field (Git Repository Name)": "",
"Custom field (Git Repository Type)": "",
"Custom field (GitHub Options)": "",
"Custom field (Github Integration)": "",
"Custom field (Github Integrations - Other)": "",
"Custom field (Global Rank)": 9223372036854776000,
"Custom field (INFRA - Subversion Repository Path)": "",
"Custom field (Initial Confluence Contributors)": "",
"Custom field (Last public comment date)": "Wed Apr 08 21:27:50 UTC 2020",
"Custom field (Level of effort)": "",
"Custom field (Machine Readable Info)": "",
"Custom field (Mentor)": "",
"Custom field (New-TLP-TLPName)": "",
"Custom field (Original story points)": "",
"Custom field (Parent Link)": "",
"Custom field (Priority)": "",
"Custom field (Project)": "",
"Custom field (Protected Branch)": "",
"Custom field (Rank)": "0|z0d368:",
"Custom field (Rank (Obsolete))": 9223372036854776000,
"Custom field (Release Note)": "",
"Custom field (Review Date)": "",
"Custom field (Reviewer)": "",
"Custom field (Severity)": "",
"Custom field (Severity)__1": "",
"Custom field (Skill Level)": "",
"Custom field (Source Control Link)": "",
"Custom field (Space Description)": "",
"Custom field (Space Key)": "",
"Custom field (Space Name)": "",
"Custom field (Start Date)": "",
"Custom field (Tags)": "",
"Custom field (Tags)__1": "",
"Custom field (Target end)": "",
"Custom field (Target start)": "",
"Custom field (Team)": "",
"Custom field (Test and Documentation Plan)": "",
"Custom field (Testcase included)": "",
"Custom field (Tester)": "",
"Custom field (Workaround)": "",
"Comment": "05/Apr/20 03:48;shireennagdive;I would like to work on this. Please assign this to me [~lasaro];;;",
"Comment__1": "05/Apr/20 22:00;lasaro;Hi Shireen. I do not have the credentials needed to assign the JIRA. But given that it is a fairly simple issue, I would recommend that you create a PR and post it here and someone else will do it.\n\nCheers.;;;",
"Comment__2": "06/Apr/20 00:38;shireennagdive;[https://github.com/apache/zookeeper/pull/1307];;;",
"Comment__3": "08/Apr/20 18:04;shireennagdive;Hi [~lasaro], Is there something I need to do to schedule a Jenkins build for checking of all tests? I see that there are commits later than me having their Jenkins build done. Or is it something which is random and I should just wait for it? Thanks!;;;",
"Comment__4": "08/Apr/20 19:06;lasaro;Hi Shireen. I am not well versed in the processes followed by this project.\n\n[~phunt], as an active member, could you chip in here? Maybe assign the bug and trigger the build?\n\nCheers;;;",
"Comment__5": "08/Apr/20 19:18;phunt;[~lasaro] I added you to the contributor role - you should have increased privs in jira now. Also assigned this to you. Welcome aboard!\n\nI'm not sure why the build didn't trigger - [~eolivelli] do you know?;;;",
"Comment__6": "08/Apr/20 21:17;lasaro;Thank you, [~phunt]. But [~shireennagdive] has already provided the PR and is probably going to be more active in the project than me. Could you add her as a contributor as well so I can reassign to her?\n\nRegards;;;",
"Comment__7": "08/Apr/20 21:27;phunt;Done. Enjoy!;;;",
"Comment__8": "",
"Comment__9": "",
"Comment__10": "",
"Comment__11": "",
"Comment__12": "",
"Comment__13": "",
"Comment__14": "",
"Comment__15": ""
},
{
"Summary": "improve the output of the hidden password in digest mode and fix the hardcode of ACL Scheme",
"Issue key": "ZOOKEEPER-3768",
"Issue id": 13293140,
"Parent id": "",
"Issue Type": "Improvement",
"Status": "In Progress",
"Project key": "ZOOKEEPER",
"Project name": "ZooKeeper",
"Project type": "software",
"Project lead": "phunt",
"Project description": "Apache ZooKeeper is a service for coordinating processes of distributed applications.",
"Project url": "http://zookeeper.apache.org",
"Priority": "Minor",
"Resolution": "",
"Assignee": "maoling",
"Reporter": "maoling",
"Creator": "maoling",
"Created": "22/Mar/20 04:56",
"Updated": "28/Mar/20 09:55",
"Last Viewed": "12/Mar/24 11:56",
"Resolved": "",
"Affects Version/s": "",
"Affects Version/s__1": "",
"Affects Version/s__2": "",
"Component/s": "security",
"Component/s__1": "server",
"Component/s__2": "",
"Due Date": "",
"Votes": 0,
"Labels": "pull-request-available",
"Labels__1": "",
"Description": "",
"Environment": "",
"Log Work": "maoling commented on pull request #1297: ZOOKEEPER-3768:improve the output of the hidden password in digest mode and fix the hardcode of ACL Scheme\nURL: https://github.com/apache/zookeeper/pull/1297\n \n \n \n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;28/Mar/20 09:55;githubbot;600",
"Log Work__1": "",
"Log Work__2": "",
"Log Work__3": "",
"Log Work__4": "",
"Log Work__5": "",
"Log Work__6": "",
"Log Work__7": "",
"Log Work__8": "",
"Log Work__9": "",
"Log Work__10": "",
"Log Work__11": "",
"Log Work__12": "",
"Log Work__13": "",
"Log Work__14": "",
"Log Work__15": "",
"Log Work__16": "",
"Log Work__17": "",
"Log Work__18": "",
"Log Work__19": "",
"Original Estimate": "",
"Remaining Estimate": 0,
"Time Spent": 600,
"Work Ratio": "",
"Σ Original Estimate": "",
"Σ Remaining Estimate": 0,
"Σ Time Spent": 600,
"Security Level": "",
"Outward issue link (Blocker)": "",
"Inward issue link (Reference)": "",
"Inward issue link (Reference)__1": "",
"Outward issue link (Reference)": "",
"Outward issue link (Reference)__1": "",
"Attachment": "",
"Attachment__1": "",
"Custom field (Affects version (Component))": "",
"Custom field (Attachment count)": 0,
"Custom field (Blog - New Blog Administrators)": "",
"Custom field (Blog - New Blog PMC)": "",
"Custom field (Blog - Write access)": "",
"Custom field (Blog Administrator?)": "",
"Custom field (Blogs - Admin for blog)": "",
"Custom field (Blogs - Email Address)": "",
"Custom field (Blogs - Existing Blog Access Level)": "",
"Custom field (Blogs - Existing Blog Name)": "",
"Custom field (Blogs - New Blog Write Access)": "",
"Custom field (Blogs - Username)": "",
"Custom field (Bug Category)": "",
"Custom field (Bugzilla - Email Notification Address)": "",
"Custom field (Bugzilla - List of usernames)": "",
"Custom field (Bugzilla - PMC Name)": "",
"Custom field (Bugzilla - Project Name)": "",
"Custom field (Bugzilla Id)": "",
"Custom field (Bugzilla Id)__1": "",
"Custom field (Change Category)": "",
"Custom field (Complexity)": "",
"Custom field (Discovered By)": "",
"Custom field (Docs Text)": "",
"Custom field (Enable Automatic Patch Review)": false,
"Custom field (Epic Colour)": "",
"Custom field (Epic Link)": "",
"Custom field (Epic Name)": "",
"Custom field (Epic Status)": "",
"Custom field (Estimated Complexity)": "",
"Custom field (Evidence Of Open Source Adoption)": "",
"Custom field (Evidence Of Registration)": "",
"Custom field (Evidence Of Use On World Wide Web)": "",
"Custom field (Existing GitBox Approval)": "",
"Custom field (External issue ID)": "",
"Custom field (External issue URL)": "",
"Custom field (Fix version (Component))": "",
"Custom field (Flags)": "",
"Custom field (Git Notification Mailing List)": "",
"Custom field (Git Repository Import Path)": "",
"Custom field (Git Repository Name)": "",
"Custom field (Git Repository Type)": "",
"Custom field (GitHub Options)": "",
"Custom field (Github Integration)": "",
"Custom field (Github Integrations - Other)": "",
"Custom field (Global Rank)": 9223372036854776000,
"Custom field (INFRA - Subversion Repository Path)": "",
"Custom field (Initial Confluence Contributors)": "",
"Custom field (Last public comment date)": "2020-03-22 04:56:24.0",
"Custom field (Level of effort)": "",
"Custom field (Machine Readable Info)": "",
"Custom field (Mentor)": "",
"Custom field (New-TLP-TLPName)": "",
"Custom field (Original story points)": "",
"Custom field (Parent Link)": "",
"Custom field (Priority)": "",
"Custom field (Project)": "",
"Custom field (Protected Branch)": "",
"Custom field (Rank)": "0|z0crwo:",
"Custom field (Rank (Obsolete))": 9223372036854776000,
"Custom field (Release Note)": "",
"Custom field (Review Date)": "",
"Custom field (Reviewer)": "",
"Custom field (Severity)": "",
"Custom field (Severity)__1": "",
"Custom field (Skill Level)": "",
"Custom field (Source Control Link)": "",
"Custom field (Space Description)": "",
"Custom field (Space Key)": "",
"Custom field (Space Name)": "",
"Custom field (Start Date)": "",
"Custom field (Tags)": "",
"Custom field (Tags)__1": "",
"Custom field (Target end)": "",
"Custom field (Target start)": "",
"Custom field (Team)": "",
"Custom field (Test and Documentation Plan)": "",
"Custom field (Testcase included)": "",
"Custom field (Tester)": "",
"Custom field (Workaround)": "",
"Comment": "",
"Comment__1": "",
"Comment__2": "",
"Comment__3": "",
"Comment__4": "",
"Comment__5": "",
"Comment__6": "",
"Comment__7": "",
"Comment__8": "",
"Comment__9": "",
"Comment__10": "",
"Comment__11": "",
"Comment__12": "",
"Comment__13": "",
"Comment__14": "",
"Comment__15": ""
},
{
"Summary": "Update jUnit to 5.6",
"Issue key": "ZOOKEEPER-3732",
"Issue id": 13286021,
"Parent id": "",
"Issue Type": "Improvement",
"Status": "In Progress",
"Project key": "ZOOKEEPER",
"Project name": "ZooKeeper",
"Project type": "software",
"Project lead": "phunt",
"Project description": "Apache ZooKeeper is a service for coordinating processes of distributed applications.",
"Project url": "http://zookeeper.apache.org",
"Priority": "Major",
"Resolution": "",
"Assignee": "tamaas",
"Reporter": "tamaas",
"Creator": "tamaas",
"Created": "18/Feb/20 15:41",
"Updated": "23/Sep/20 21:01",
"Last Viewed": "12/Mar/24 11:56",
"Resolved": "",
"Affects Version/s": "3.6.0",
"Affects Version/s__1": "",
"Affects Version/s__2": "",
"Component/s": "",
"Component/s__1": "",
"Component/s__2": "",
"Due Date": "",
"Votes": 0,
"Labels": "junit5",
"Labels__1": "",
"Description": "jUnit 4 is limited to Java 7 features, jUnit 5 can use new elements of JDK8.\n\nIt's time to go forward and update our jUnit version to 5.6.",
"Environment": "",
"Log Work": "tamaashu commented on pull request #1265: ZOOKEEPER-3732: Update jUnit to 5.6 - WIP - please don't commit yet\nURL: https://github.com/apache/zookeeper/pull/1265\n \n \n Update jUnit version to 5.6, convert testing of minor projects, without touching zookeeper-server.\n \n Change-Id: Ib48f573af6e62174b52008e931f0b1b42155aa6f\n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;24/Feb/20 15:27;githubbot;600",
"Log Work__1": "tamaashu closed pull request #1265:\nURL: https://github.com/apache/zookeeper/pull/1265\n\n\n \n\n\n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n\nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;05/Jun/20 17:35;githubbot;600",
"Log Work__2": "tamaashu commented on pull request #1265:\nURL: https://github.com/apache/zookeeper/pull/1265#issuecomment-639656073\n\n\n I abandon this change to do update jUnit in a more incremental way instead of a big-bang release. Please check the Jira ticket.\n\n\n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n\nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;05/Jun/20 17:35;githubbot;600",
"Log Work__3": "",
"Log Work__4": "",
"Log Work__5": "",
"Log Work__6": "",
"Log Work__7": "",
"Log Work__8": "",
"Log Work__9": "",
"Log Work__10": "",
"Log Work__11": "",
"Log Work__12": "",
"Log Work__13": "",
"Log Work__14": "",
"Log Work__15": "",
"Log Work__16": "",
"Log Work__17": "",
"Log Work__18": "",
"Log Work__19": "",
"Original Estimate": "",
"Remaining Estimate": 0,
"Time Spent": 1800,
"Work Ratio": "",
"Σ Original Estimate": "",
"Σ Remaining Estimate": 0,
"Σ Time Spent": 64800,
"Security Level": "",
"Outward issue link (Blocker)": "",
"Inward issue link (Reference)": "",
"Inward issue link (Reference)__1": "",
"Outward issue link (Reference)": "CURATOR-582",
"Outward issue link (Reference)__1": "",
"Attachment": "",
"Attachment__1": "",
"Custom field (Affects version (Component))": "",
"Custom field (Attachment count)": 0,
"Custom field (Blog - New Blog Administrators)": "",
"Custom field (Blog - New Blog PMC)": "",
"Custom field (Blog - Write access)": "",
"Custom field (Blog Administrator?)": "",
"Custom field (Blogs - Admin for blog)": "",
"Custom field (Blogs - Email Address)": "",
"Custom field (Blogs - Existing Blog Access Level)": "",
"Custom field (Blogs - Existing Blog Name)": "",
"Custom field (Blogs - New Blog Write Access)": "",
"Custom field (Blogs - Username)": "",
"Custom field (Bug Category)": "",
"Custom field (Bugzilla - Email Notification Address)": "",
"Custom field (Bugzilla - List of usernames)": "",
"Custom field (Bugzilla - PMC Name)": "",
"Custom field (Bugzilla - Project Name)": "",
"Custom field (Bugzilla Id)": "",
"Custom field (Bugzilla Id)__1": "",
"Custom field (Change Category)": "",
"Custom field (Complexity)": "",
"Custom field (Discovered By)": "",
"Custom field (Docs Text)": "",
"Custom field (Enable Automatic Patch Review)": false,
"Custom field (Epic Colour)": "",
"Custom field (Epic Link)": "",
"Custom field (Epic Name)": "",
"Custom field (Epic Status)": "",
"Custom field (Estimated Complexity)": "",
"Custom field (Evidence Of Open Source Adoption)": "",
"Custom field (Evidence Of Registration)": "",
"Custom field (Evidence Of Use On World Wide Web)": "",
"Custom field (Existing GitBox Approval)": "",
"Custom field (External issue ID)": "",
"Custom field (External issue URL)": "",
"Custom field (Fix version (Component))": "",
"Custom field (Flags)": "",
"Custom field (Git Notification Mailing List)": "",
"Custom field (Git Repository Import Path)": "",
"Custom field (Git Repository Name)": "",
"Custom field (Git Repository Type)": "",
"Custom field (GitHub Options)": "",
"Custom field (Github Integration)": "",
"Custom field (Github Integrations - Other)": "",
"Custom field (Global Rank)": 9223372036854776000,
"Custom field (INFRA - Subversion Repository Path)": "",
"Custom field (Initial Confluence Contributors)": "",
"Custom field (Last public comment date)": "2020-02-18 15:41:34.0",
"Custom field (Level of effort)": "",
"Custom field (Machine Readable Info)": "",
"Custom field (Mentor)": "",
"Custom field (New-TLP-TLPName)": "",
"Custom field (Original story points)": "",
"Custom field (Parent Link)": "",
"Custom field (Priority)": "",
"Custom field (Project)": "",
"Custom field (Protected Branch)": "",
"Custom field (Rank)": "0|z0bmb4:",
"Custom field (Rank (Obsolete))": 9223372036854776000,
"Custom field (Release Note)": "",
"Custom field (Review Date)": "",
"Custom field (Reviewer)": "",
"Custom field (Severity)": "",
"Custom field (Severity)__1": "",
"Custom field (Skill Level)": "",
"Custom field (Source Control Link)": "",
"Custom field (Space Description)": "",
"Custom field (Space Key)": "",
"Custom field (Space Name)": "",
"Custom field (Start Date)": "",
"Custom field (Tags)": "",
"Custom field (Tags)__1": "",
"Custom field (Target end)": "",
"Custom field (Target start)": "",
"Custom field (Team)": "",
"Custom field (Test and Documentation Plan)": "",
"Custom field (Testcase included)": "",
"Custom field (Tester)": "",
"Custom field (Workaround)": "",
"Comment": "",
"Comment__1": "",
"Comment__2": "",
"Comment__3": "",
"Comment__4": "",
"Comment__5": "",
"Comment__6": "",
"Comment__7": "",
"Comment__8": "",
"Comment__9": "",
"Comment__10": "",
"Comment__11": "",
"Comment__12": "",
"Comment__13": "",
"Comment__14": "",
"Comment__15": ""
},
{
"Summary": "Testing and documenting secure and unsecure ZK client connection from the same JVM",
"Issue key": "ZOOKEEPER-3643",
"Issue id": 13273565,
"Parent id": "",
"Issue Type": "Test",
"Status": "In Progress",
"Project key": "ZOOKEEPER",
"Project name": "ZooKeeper",
"Project type": "software",
"Project lead": "phunt",
"Project description": "Apache ZooKeeper is a service for coordinating processes of distributed applications.",
"Project url": "http://zookeeper.apache.org",
"Priority": "Major",
"Resolution": "",
"Assignee": "symat",
"Reporter": "symat",
"Creator": "symat",
"Created": "10/Dec/19 09:25",
"Updated": "16/Jan/20 15:01",
"Last Viewed": "12/Mar/24 11:56",
"Resolved": "",
"Affects Version/s": "",
"Affects Version/s__1": "",
"Affects Version/s__2": "",
"Component/s": "",
"Component/s__1": "",
"Component/s__2": "",
"Due Date": "",
"Votes": 0,
"Labels": "pull-request-available",
"Labels__1": "",
"Description": "We are working in the ZooKeeper SSL integration in HBase. By default, one can enable ZooKeeper SSL client connections using Java System Properties. However, there are certain use-cases, when we need to connect to two ZooKeeper quorum from the same JVM (e.g. when connecting to two HBase clusters for data synchronization). It is possible, that one of the ZooKeeper quorum use SSL while the other doesn't.\n\nIn this case it is not possible to use Java System Properties, as those will be affecting both ZooKeeper client connections. These use-cases require code modifications e.g. in HBase to use custom ZooKeeper client configurations. We need to add unit test in ZooKeeper to verify that it works and also make sense to document this use-case to help other open source projects to start using ZooKeeper SSL.",
"Environment": "",
"Log Work": "symat commented on pull request #1170: ZOOKEEPER-3643: Testing and documenting secure and unsecure ZK client connections\nURL: https://github.com/apache/zookeeper/pull/1170\n \n \n We are working in the ZooKeeper SSL integration in HBase. By default, one can enable ZooKeeper SSL client connections using Java System Properties. However, there are certain use-cases, when we need to connect to two ZooKeeper quorum from the same JVM (e.g. when connecting to two HBase clusters for data synchronization). It is possible, that one of the ZooKeeper quorum use SSL while the other doesn't.\n \n In this case it is not possible to use Java System Properties, as those will be affecting both ZooKeeper client connections. These use-cases require code modifications e.g. in HBase to use custom ZooKeeper client configurations. We need to add unit test in ZooKeeper to verify that it works and also make sense to document this use-case to help other open source projects to start using ZooKeeper SSL.\n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;10/Dec/19 12:18;githubbot;600",
"Log Work__1": "eolivelli commented on pull request #1170: ZOOKEEPER-3643: Testing and documenting secure and unsecure ZK client connections\nURL: https://github.com/apache/zookeeper/pull/1170#discussion_r356120687\n \n \n\n ##########\n File path: zookeeper-server/src/test/java/org/apache/zookeeper/test/ClientSSLTest.java\n ##########\n @@ -138,6 +118,55 @@ public void testClientServerSSL(boolean useSecurePort) throws Exception {\n }\n }\n \n+ /**\n+ * This test covers the case when from the same JVM we connect to both secure and unsecure\n+ * clusters. In this case we can't use the Java System Properties, but we need to specify client\n+ * configuration.\n+ *\n+ * In this test the servers has two client ports open, one used only for secure connection and one\n+ * used only for unsecure connections. (the client port unification is disabled)\n+ */\n+ @Test\n+ public void testClientCanConnectBothSecureAndUnsecure() throws Exception {\n+\n+ // to make sure the test is testing the case we want, we disable client port unification in the\n+ // server, and also disable the property which would instruct the client to connect using SSL\n+ System.clearProperty(NettyServerCnxnFactory.PORT_UNIFICATION_KEY);\n+ System.clearProperty(ZKClientConfig.SECURE_CLIENT);\n+\n+ final int SERVER_COUNT = 3;\n+ final int[] clientPorts = new int[SERVER_COUNT];\n+ int[] secureClientPorts = new int[SERVER_COUNT];\n+\n+ MainThread[] mt = startThreeNodeSSLCluster(clientPorts, secureClientPorts);\n+\n+ // Servers have been set up. Now go test if both secure and unsecure connection is successful.\n+ for (int i = 0; i < SERVER_COUNT; i++) {\n+\n+ // testing the secure connection, also do some simple operation to verify that it works\n+ ZKClientConfig secureClientConfig = new ZKClientConfig();\n+ secureClientConfig.setProperty(ZKClientConfig.SECURE_CLIENT, \"true\");\n+ ZooKeeper zkSecure = ClientBase.createZKClient(\"127.0.0.1:\" + secureClientPorts[i], TIMEOUT, secureClientConfig);\n+ zkSecure.create(\"/test\", \"\".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);\n \n Review comment:\n Is there a way to check that we are using a secure connection?\n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;10/Dec/19 15:55;githubbot;600",
"Log Work__2": "symat commented on pull request #1170: ZOOKEEPER-3643: Testing and documenting secure and unsecure ZK client connections\nURL: https://github.com/apache/zookeeper/pull/1170#discussion_r356567078\n \n \n\n ##########\n File path: zookeeper-server/src/test/java/org/apache/zookeeper/test/ClientSSLTest.java\n ##########\n @@ -138,6 +118,55 @@ public void testClientServerSSL(boolean useSecurePort) throws Exception {\n }\n }\n \n+ /**\n+ * This test covers the case when from the same JVM we connect to both secure and unsecure\n+ * clusters. In this case we can't use the Java System Properties, but we need to specify client\n+ * configuration.\n+ *\n+ * In this test the servers has two client ports open, one used only for secure connection and one\n+ * used only for unsecure connections. (the client port unification is disabled)\n+ */\n+ @Test\n+ public void testClientCanConnectBothSecureAndUnsecure() throws Exception {\n+\n+ // to make sure the test is testing the case we want, we disable client port unification in the\n+ // server, and also disable the property which would instruct the client to connect using SSL\n+ System.clearProperty(NettyServerCnxnFactory.PORT_UNIFICATION_KEY);\n+ System.clearProperty(ZKClientConfig.SECURE_CLIENT);\n+\n+ final int SERVER_COUNT = 3;\n+ final int[] clientPorts = new int[SERVER_COUNT];\n+ int[] secureClientPorts = new int[SERVER_COUNT];\n+\n+ MainThread[] mt = startThreeNodeSSLCluster(clientPorts, secureClientPorts);\n+\n+ // Servers have been set up. Now go test if both secure and unsecure connection is successful.\n+ for (int i = 0; i < SERVER_COUNT; i++) {\n+\n+ // testing the secure connection, also do some simple operation to verify that it works\n+ ZKClientConfig secureClientConfig = new ZKClientConfig();\n+ secureClientConfig.setProperty(ZKClientConfig.SECURE_CLIENT, \"true\");\n+ ZooKeeper zkSecure = ClientBase.createZKClient(\"127.0.0.1:\" + secureClientPorts[i], TIMEOUT, secureClientConfig);\n+ zkSecure.create(\"/test\", \"\".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);\n \n Review comment:\n Thanks, it's a great question!\n \n To initiate SSL connection (instead of a non-secure one) is a decision taken in the actual Client Socket implementation. (When we are creating a new ZooKeeper client session, it is not enough to request to have SSL connection in the client config, but we also have to use Netty instead of NIO, otherwise we will not have an SSL connection)\n \n For the tests it would be possible extract this information by extending the `ZooKeeperTestable` class, but I think it is actually an information that can be important even for the users of the Java Client API. So I propose a new method on the `ZooKeeper` class. See my implementation in the next commit.\n \n What do you think?\n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;11/Dec/19 12:22;githubbot;600",
"Log Work__3": "symat commented on pull request #1170: ZOOKEEPER-3643: Testing and documenting secure and unsecure ZK client connections\nURL: https://github.com/apache/zookeeper/pull/1170#discussion_r356569639\n \n \n\n ##########\n File path: zookeeper-server/src/test/java/org/apache/zookeeper/test/ClientSSLTest.java\n ##########\n @@ -138,6 +118,55 @@ public void testClientServerSSL(boolean useSecurePort) throws Exception {\n }\n }\n \n+ /**\n+ * This test covers the case when from the same JVM we connect to both secure and unsecure\n+ * clusters. In this case we can't use the Java System Properties, but we need to specify client\n+ * configuration.\n+ *\n+ * In this test the servers has two client ports open, one used only for secure connection and one\n+ * used only for unsecure connections. (the client port unification is disabled)\n+ */\n+ @Test\n+ public void testClientCanConnectBothSecureAndUnsecure() throws Exception {\n+\n+ // to make sure the test is testing the case we want, we disable client port unification in the\n+ // server, and also disable the property which would instruct the client to connect using SSL\n+ System.clearProperty(NettyServerCnxnFactory.PORT_UNIFICATION_KEY);\n+ System.clearProperty(ZKClientConfig.SECURE_CLIENT);\n+\n+ final int SERVER_COUNT = 3;\n+ final int[] clientPorts = new int[SERVER_COUNT];\n+ int[] secureClientPorts = new int[SERVER_COUNT];\n+\n+ MainThread[] mt = startThreeNodeSSLCluster(clientPorts, secureClientPorts);\n+\n+ // Servers have been set up. Now go test if both secure and unsecure connection is successful.\n+ for (int i = 0; i < SERVER_COUNT; i++) {\n+\n+ // testing the secure connection, also do some simple operation to verify that it works\n+ ZKClientConfig secureClientConfig = new ZKClientConfig();\n+ secureClientConfig.setProperty(ZKClientConfig.SECURE_CLIENT, \"true\");\n+ ZooKeeper zkSecure = ClientBase.createZKClient(\"127.0.0.1:\" + secureClientPorts[i], TIMEOUT, secureClientConfig);\n+ zkSecure.create(\"/test\", \"\".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);\n \n Review comment:\n I marked the new method in the Javadoc with the `@since 3.6` tag. Do you think it is OK? Or we should be more specific like 3.6.0?\n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;11/Dec/19 12:29;githubbot;600",
"Log Work__4": "symat commented on pull request #1170: ZOOKEEPER-3643: Testing and documenting secure and unsecure ZK client connections\nURL: https://github.com/apache/zookeeper/pull/1170#discussion_r356582122\n \n \n\n ##########\n File path: zookeeper-server/src/test/java/org/apache/zookeeper/test/ClientSSLTest.java\n ##########\n @@ -138,6 +118,55 @@ public void testClientServerSSL(boolean useSecurePort) throws Exception {\n }\n }\n \n+ /**\n+ * This test covers the case when from the same JVM we connect to both secure and unsecure\n+ * clusters. In this case we can't use the Java System Properties, but we need to specify client\n+ * configuration.\n+ *\n+ * In this test the servers has two client ports open, one used only for secure connection and one\n+ * used only for unsecure connections. (the client port unification is disabled)\n+ */\n+ @Test\n+ public void testClientCanConnectBothSecureAndUnsecure() throws Exception {\n+\n+ // to make sure the test is testing the case we want, we disable client port unification in the\n+ // server, and also disable the property which would instruct the client to connect using SSL\n+ System.clearProperty(NettyServerCnxnFactory.PORT_UNIFICATION_KEY);\n+ System.clearProperty(ZKClientConfig.SECURE_CLIENT);\n+\n+ final int SERVER_COUNT = 3;\n+ final int[] clientPorts = new int[SERVER_COUNT];\n+ int[] secureClientPorts = new int[SERVER_COUNT];\n+\n+ MainThread[] mt = startThreeNodeSSLCluster(clientPorts, secureClientPorts);\n+\n+ // Servers have been set up. Now go test if both secure and unsecure connection is successful.\n+ for (int i = 0; i < SERVER_COUNT; i++) {\n+\n+ // testing the secure connection, also do some simple operation to verify that it works\n+ ZKClientConfig secureClientConfig = new ZKClientConfig();\n+ secureClientConfig.setProperty(ZKClientConfig.SECURE_CLIENT, \"true\");\n+ ZooKeeper zkSecure = ClientBase.createZKClient(\"127.0.0.1:\" + secureClientPorts[i], TIMEOUT, secureClientConfig);\n+ zkSecure.create(\"/test\", \"\".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);\n \n Review comment:\n @anmolnar suggested `3.6.0`, to be a bit more consistent with the existing tags. \n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;11/Dec/19 12:56;githubbot;600",
"Log Work__5": "asf-ci commented on issue #1170: ZOOKEEPER-3643: Testing and documenting secure and unsecure ZK client connections\nURL: https://github.com/apache/zookeeper/pull/1170#issuecomment-564527847\n \n \n \n Refer to this link for build results (access rights to CI server needed): \n https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build-maven/1708/\n \n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;11/Dec/19 12:57;githubbot;600",
"Log Work__6": "symat commented on issue #1170: ZOOKEEPER-3643: Testing and documenting secure and unsecure ZK client connections\nURL: https://github.com/apache/zookeeper/pull/1170#issuecomment-573663983\n \n \n @eolivelli what do you think the suggested improvement on the Java client API?\n \n @anmolnar PTAL\n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;13/Jan/20 13:30;githubbot;600",
"Log Work__7": "eolivelli commented on pull request #1170: ZOOKEEPER-3643: Testing and documenting secure and unsecure ZK client connections\nURL: https://github.com/apache/zookeeper/pull/1170#discussion_r365857473\n \n \n\n ##########\n File path: zookeeper-server/src/main/java/org/apache/zookeeper/ClientCnxn.java\n ##########\n @@ -1679,6 +1680,13 @@ States getState() {\n return state;\n }\n \n+ /**\n+ * Returns true if SSL connection was requested and the actual ClientCnxnSocket supports SSL\n+ */\n+ public boolean isSSL() {\n \n Review comment:\n I would go for 'isSecure'\n \n But honestly I don't see value in having this method.\n \n How will the application benefit from this API?\n \n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;13/Jan/20 15:14;githubbot;600",
"Log Work__8": "symat commented on pull request #1170: ZOOKEEPER-3643: Testing and documenting secure and unsecure ZK client connections\nURL: https://github.com/apache/zookeeper/pull/1170#discussion_r367466370\n \n \n\n ##########\n File path: zookeeper-server/src/main/java/org/apache/zookeeper/ClientCnxn.java\n ##########\n @@ -1679,6 +1680,13 @@ States getState() {\n return state;\n }\n \n+ /**\n+ * Returns true if SSL connection was requested and the actual ClientCnxnSocket supports SSL\n+ */\n+ public boolean isSSL() {\n \n Review comment:\n well... I actually added this after your comment / change request. I thought you would think this to be a good idea :)\n > Is there a way to check that we are using a secure connection?\n \n I can imagine a use-case, when the application wants to really verify that the channel is secure before sending any sensitive data to ZooKeeper. You can simply override the SSL related config with a system property when you start the application (even by accident, simply just by forgetting to specify the system property to use Netty socket implementation), and then you run your application assuming you use SSL, but you don't.\n \n But anyway, I don't want to make the API more complex... if you think it is unnecessary, we can drop it and revert my last commit. \n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;16/Jan/20 15:01;githubbot;600",
"Log Work__9": "",
"Log Work__10": "",
"Log Work__11": "",
"Log Work__12": "",
"Log Work__13": "",
"Log Work__14": "",
"Log Work__15": "",
"Log Work__16": "",
"Log Work__17": "",
"Log Work__18": "",
"Log Work__19": "",
"Original Estimate": "",
"Remaining Estimate": 0,
"Time Spent": 5400,
"Work Ratio": "",
"Σ Original Estimate": "",
"Σ Remaining Estimate": 0,
"Σ Time Spent": 5400,
"Security Level": "",
"Outward issue link (Blocker)": "",
"Inward issue link (Reference)": "",
"Inward issue link (Reference)__1": "",
"Outward issue link (Reference)": "",
"Outward issue link (Reference)__1": "",
"Attachment": "",
"Attachment__1": "",
"Custom field (Affects version (Component))": "",
"Custom field (Attachment count)": 0,
"Custom field (Blog - New Blog Administrators)": "",
"Custom field (Blog - New Blog PMC)": "",
"Custom field (Blog - Write access)": "",
"Custom field (Blog Administrator?)": "",
"Custom field (Blogs - Admin for blog)": "",
"Custom field (Blogs - Email Address)": "",
"Custom field (Blogs - Existing Blog Access Level)": "",
"Custom field (Blogs - Existing Blog Name)": "",
"Custom field (Blogs - New Blog Write Access)": "",
"Custom field (Blogs - Username)": "",
"Custom field (Bug Category)": "",
"Custom field (Bugzilla - Email Notification Address)": "",
"Custom field (Bugzilla - List of usernames)": "",
"Custom field (Bugzilla - PMC Name)": "",
"Custom field (Bugzilla - Project Name)": "",
"Custom field (Bugzilla Id)": "",
"Custom field (Bugzilla Id)__1": "",
"Custom field (Change Category)": "",
"Custom field (Complexity)": "",
"Custom field (Discovered By)": "",
"Custom field (Docs Text)": "",
"Custom field (Enable Automatic Patch Review)": false,
"Custom field (Epic Colour)": "",
"Custom field (Epic Link)": "",
"Custom field (Epic Name)": "",
"Custom field (Epic Status)": "",
"Custom field (Estimated Complexity)": "",
"Custom field (Evidence Of Open Source Adoption)": "",
"Custom field (Evidence Of Registration)": "",
"Custom field (Evidence Of Use On World Wide Web)": "",
"Custom field (Existing GitBox Approval)": "",
"Custom field (External issue ID)": "",
"Custom field (External issue URL)": "",
"Custom field (Fix version (Component))": "",
"Custom field (Flags)": "",
"Custom field (Git Notification Mailing List)": "",
"Custom field (Git Repository Import Path)": "",
"Custom field (Git Repository Name)": "",
"Custom field (Git Repository Type)": "",
"Custom field (GitHub Options)": "",
"Custom field (Github Integration)": "",
"Custom field (Github Integrations - Other)": "",
"Custom field (Global Rank)": 9223372036854776000,
"Custom field (INFRA - Subversion Repository Path)": "",
"Custom field (Initial Confluence Contributors)": "",
"Custom field (Last public comment date)": "2019-12-10 09:25:05.0",
"Custom field (Level of effort)": "",
"Custom field (Machine Readable Info)": "",
"Custom field (Mentor)": "",
"Custom field (New-TLP-TLPName)": "",
"Custom field (Original story points)": "",
"Custom field (Parent Link)": "",
"Custom field (Priority)": "",
"Custom field (Project)": "",
"Custom field (Protected Branch)": "",
"Custom field (Rank)": "0|z09igg:",
"Custom field (Rank (Obsolete))": 9223372036854776000,
"Custom field (Release Note)": "",
"Custom field (Review Date)": "",
"Custom field (Reviewer)": "",
"Custom field (Severity)": "",
"Custom field (Severity)__1": "",
"Custom field (Skill Level)": "",
"Custom field (Source Control Link)": "",
"Custom field (Space Description)": "",
"Custom field (Space Key)": "",
"Custom field (Space Name)": "",
"Custom field (Start Date)": "",
"Custom field (Tags)": "",
"Custom field (Tags)__1": "",
"Custom field (Target end)": "",
"Custom field (Target start)": "",
"Custom field (Team)": "",
"Custom field (Test and Documentation Plan)": "",
"Custom field (Testcase included)": "",
"Custom field (Tester)": "",
"Custom field (Workaround)": "",
"Comment": "",
"Comment__1": "",
"Comment__2": "",
"Comment__3": "",
"Comment__4": "",
"Comment__5": "",
"Comment__6": "",
"Comment__7": "",
"Comment__8": "",
"Comment__9": "",
"Comment__10": "",
"Comment__11": "",
"Comment__12": "",
"Comment__13": "",
"Comment__14": "",
"Comment__15": ""
},
{
"Summary": "ZK digest ACL permissions gets overridden",
"Issue key": "ZOOKEEPER-3617",
"Issue id": 13268474,
"Parent id": "",
"Issue Type": "Bug",
"Status": "In Progress",
"Project key": "ZOOKEEPER",
"Project name": "ZooKeeper",
"Project type": "software",
"Project lead": "phunt",
"Project description": "Apache ZooKeeper is a service for coordinating processes of distributed applications.",
"Project url": "http://zookeeper.apache.org",
"Priority": "Major",
"Resolution": "",
"Assignee": "maoling",
"Reporter": "vrinda",
"Creator": "vrinda",
"Created": "15/Nov/19 05:28",
"Updated": "15/Jun/23 21:09",
"Last Viewed": "12/Mar/24 11:56",
"Resolved": "",
"Affects Version/s": "3.4.9",
"Affects Version/s__1": "3.5.5",
"Affects Version/s__2": "",
"Component/s": "security",
"Component/s__1": "server",
"Component/s__2": "",
"Due Date": "",
"Votes": 0,
"Labels": "pull-request-available",
"Labels__1": "",
"Description": "I was able to add one user with /crdwa/ access.\n The moment I add another user with read-only access- /r/. The first user - /user1/\n gets overridden with read-only access. Please see the output below :\n\n \n{code:java}\nWatchedEvent state:SyncConnected type:None path:null\n[zk: localhost:2181(CONNECTED) 0] addauth digest user1:password1\n[zk: localhost:2181(CONNECTED) 1] setAcl /newznode auth:user1:password1:crwad\ncZxid = 0xe\nctime = Thu Nov 07 13:29:43 IST 2019\nmZxid = 0xe\nmtime = Thu Nov 07 13:29:43 IST 2019\npZxid = 0xe\ncversion = 0\ndataVersion = 0\naclVersion = 1\nephemeralOwner = 0x0\ndataLength = 8\nnumChildren = 0\n[zk: localhost:2181(CONNECTED) 2] getAcl /newznode\n'digest,'user1:XDkd2dsEuhc9ImU3q8pa8UOdtpI=\n: cdrwa\n[zk: localhost:2181(CONNECTED) 3] addauth digest user2:password2\n[zk: localhost:2181(CONNECTED) 4] setAcl /newznode auth:user2:password2:r\ncZxid = 0xe\nctime = Thu Nov 07 13:29:43 IST 2019\nmZxid = 0xe\nmtime = Thu Nov 07 13:29:43 IST 2019\npZxid = 0xe\ncversion = 0\ndataVersion = 0\naclVersion = 2\nephemeralOwner = 0x0\ndataLength = 8\nnumChildren = 0\nzk: localhost:2181(CONNECTED) 5] getAcl /newznode\n'digest,'user1:XDkd2dsEuhc9ImU3q8pa8UOdtpI=\n: r\n'digest,'user2:lo/iTtNMP+gEZlpUNaCqLYO3i5U=\n: r\n{code}\n \n\nIf setAcl for both the users at the same time. I get both users duplicated, one with readonly and another with cdrwa permissions, as below:\n\n \n{code:java}\n[zk: localhost:2181(CONNECTED) 1] getAcl /zk_test\n'world,'anyone\n: cdrwa\n[zk: localhost:2181(CONNECTED) 2] addauth digest user1:password1\n[zk: localhost:2181(CONNECTED) 3] addauth digest user2:password2\n[zk: localhost:2181(CONNECTED) 5] \nsetAcl /zk_test auth:user2:password2:r,auth:user1:password1:cdrwa \ncZxid = 0x2\nctime = Wed Nov 13 20:14:08 IST 2019\nmZxid = 0x2\nmtime = Wed Nov 13 20:14:08 IST 2019\npZxid = 0x2\ncversion = 0\ndataVersion = 0\naclVersion = 2\nephemeralOwner = 0x0\ndataLength = 7\nnumChildren = 0\n[zk: localhost:2181(CONNECTED) 7] getAcl /zk_test\n'digest,'user1:XDkd2dsEuhc9ImU3q8pa8UOdtpI=\n: r\n'digest,'user2:lo/iTtNMP+gEZlpUNaCqLYO3i5U=\n: r\n'digest,'user1:XDkd2dsEuhc9ImU3q8pa8UOdtpI=\n: cdrwa\n'digest,'user2:lo/iTtNMP+gEZlpUNaCqLYO3i5U=\n: cdrwa\n{code}",
"Environment": "",
"Log Work": "maoling commented on pull request #1302: ZOOKEEPER-3617: ZK digest ACL permissions gets overridden\nURL: https://github.com/apache/zookeeper/pull/1302\n \n \n - more details in the [ZOOKEEPER-3617](https://issues.apache.org/jira/browse/ZOOKEEPER-3617)\n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;30/Mar/20 06:29;githubbot;600",
"Log Work__1": "",
"Log Work__2": "",
"Log Work__3": "",
"Log Work__4": "",
"Log Work__5": "",
"Log Work__6": "",
"Log Work__7": "",
"Log Work__8": "",
"Log Work__9": "",
"Log Work__10": "",
"Log Work__11": "",
"Log Work__12": "",
"Log Work__13": "",
"Log Work__14": "",
"Log Work__15": "",
"Log Work__16": "",
"Log Work__17": "",
"Log Work__18": "",
"Log Work__19": "",
"Original Estimate": "",
"Remaining Estimate": 0,
"Time Spent": 600,
"Work Ratio": "",
"Σ Original Estimate": "",
"Σ Remaining Estimate": 0,
"Σ Time Spent": 600,
"Security Level": "",
"Outward issue link (Blocker)": "",
"Inward issue link (Reference)": "",
"Inward issue link (Reference)__1": "",
"Outward issue link (Reference)": "",
"Outward issue link (Reference)__1": "",
"Attachment": "",
"Attachment__1": "",
"Custom field (Affects version (Component))": "",
"Custom field (Attachment count)": 0,
"Custom field (Blog - New Blog Administrators)": "",
"Custom field (Blog - New Blog PMC)": "",
"Custom field (Blog - Write access)": "",
"Custom field (Blog Administrator?)": "",
"Custom field (Blogs - Admin for blog)": "",
"Custom field (Blogs - Email Address)": "",
"Custom field (Blogs - Existing Blog Access Level)": "",
"Custom field (Blogs - Existing Blog Name)": "",
"Custom field (Blogs - New Blog Write Access)": "",
"Custom field (Blogs - Username)": "",
"Custom field (Bug Category)": "",
"Custom field (Bugzilla - Email Notification Address)": "",
"Custom field (Bugzilla - List of usernames)": "",
"Custom field (Bugzilla - PMC Name)": "",
"Custom field (Bugzilla - Project Name)": "",
"Custom field (Bugzilla Id)": "",
"Custom field (Bugzilla Id)__1": "",
"Custom field (Change Category)": "",
"Custom field (Complexity)": "",
"Custom field (Discovered By)": "",
"Custom field (Docs Text)": "",
"Custom field (Enable Automatic Patch Review)": false,
"Custom field (Epic Colour)": "",
"Custom field (Epic Link)": "",
"Custom field (Epic Name)": "",
"Custom field (Epic Status)": "",
"Custom field (Estimated Complexity)": "",
"Custom field (Evidence Of Open Source Adoption)": "",
"Custom field (Evidence Of Registration)": "",
"Custom field (Evidence Of Use On World Wide Web)": "",
"Custom field (Existing GitBox Approval)": "",
"Custom field (External issue ID)": "",
"Custom field (External issue URL)": "",
"Custom field (Fix version (Component))": "",
"Custom field (Flags)": "",
"Custom field (Git Notification Mailing List)": "",
"Custom field (Git Repository Import Path)": "",
"Custom field (Git Repository Name)": "",
"Custom field (Git Repository Type)": "",
"Custom field (GitHub Options)": "",
"Custom field (Github Integration)": "",
"Custom field (Github Integrations - Other)": "",
"Custom field (Global Rank)": 9223372036854776000,
"Custom field (INFRA - Subversion Repository Path)": "",
"Custom field (Initial Confluence Contributors)": "",
"Custom field (Last public comment date)": "Thu Oct 15 01:48:17 UTC 2020",
"Custom field (Level of effort)": "",
"Custom field (Machine Readable Info)": "",
"Custom field (Mentor)": "",
"Custom field (New-TLP-TLPName)": "",
"Custom field (Original story points)": "",
"Custom field (Parent Link)": "",
"Custom field (Priority)": "",
"Custom field (Project)": "",
"Custom field (Protected Branch)": "",
"Custom field (Rank)": "0|z08n1s:",
"Custom field (Rank (Obsolete))": 9223372036854776000,
"Custom field (Release Note)": "",
"Custom field (Review Date)": "",
"Custom field (Reviewer)": "",
"Custom field (Severity)": "",
"Custom field (Severity)__1": "",
"Custom field (Skill Level)": "",
"Custom field (Source Control Link)": "",
"Custom field (Space Description)": "",
"Custom field (Space Key)": "",
"Custom field (Space Name)": "",
"Custom field (Start Date)": "",
"Custom field (Tags)": "",
"Custom field (Tags)__1": "",
"Custom field (Target end)": "",
"Custom field (Target start)": "",
"Custom field (Team)": "",
"Custom field (Test and Documentation Plan)": "",
"Custom field (Testcase included)": "",
"Custom field (Tester)": "",
"Custom field (Workaround)": "",
"Comment": "29/Feb/20 08:49;maoling;[~vrinda]\n\nI am Looking, If it's really a bug, I will push a PR to fix it asap!;;;",
"Comment__1": "14/Oct/20 06:59;chelam;[~maoling], Could you please let us know if the issue is fixed?\n\n \n\n ;;;",
"Comment__2": "15/Oct/20 01:48;maoling;[~chelam] I had a fixed patch and that PR is still pending to be reviewed.;;;",
"Comment__3": "",
"Comment__4": "",
"Comment__5": "",
"Comment__6": "",
"Comment__7": "",
"Comment__8": "",
"Comment__9": "",
"Comment__10": "",
"Comment__11": "",
"Comment__12": "",
"Comment__13": "",
"Comment__14": "",
"Comment__15": ""
},
{
"Summary": "add a new documentation: zookeeperCodingGuide.md",
"Issue key": "ZOOKEEPER-3616",
"Issue id": 13268279,
"Parent id": 13216608,
"Issue Type": "Sub-task",
"Status": "In Progress",
"Project key": "ZOOKEEPER",
"Project name": "ZooKeeper",
"Project type": "software",
"Project lead": "phunt",
"Project description": "Apache ZooKeeper is a service for coordinating processes of distributed applications.",
"Project url": "http://zookeeper.apache.org",
"Priority": "Minor",
"Resolution": "",
"Assignee": "maoling",
"Reporter": "maoling",
"Creator": "maoling",
"Created": "14/Nov/19 10:54",
"Updated": "18/Nov/19 04:01",
"Last Viewed": "12/Mar/24 11:56",
"Resolved": "",
"Affects Version/s": "",
"Affects Version/s__1": "",
"Affects Version/s__2": "",
"Component/s": "documentation",
"Component/s__1": "",
"Component/s__2": "",
"Due Date": "",
"Votes": 0,
"Labels": "pull-request-available",
"Labels__1": "",
"Description": "",
"Environment": "",
"Log Work": "maoling commented on pull request #1148: ZOOKEEPER-3616:add a new documentation: zookeeperCodingGuide.md\nURL: https://github.com/apache/zookeeper/pull/1148\n \n \n - I refer the code guide of [Bookkeeper](https://github.com/apache/bookkeeper/blob/master/site/community/coding_guide.md). Looking forward to others‘ supplements\n - more details in the [ZOOKEEPER-3616](https://issues.apache.org/jira/browse/ZOOKEEPER-3616)\n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;18/Nov/19 04:01;githubbot;600",
"Log Work__1": "",
"Log Work__2": "",
"Log Work__3": "",
"Log Work__4": "",
"Log Work__5": "",
"Log Work__6": "",
"Log Work__7": "",
"Log Work__8": "",
"Log Work__9": "",
"Log Work__10": "",
"Log Work__11": "",
"Log Work__12": "",
"Log Work__13": "",
"Log Work__14": "",
"Log Work__15": "",
"Log Work__16": "",
"Log Work__17": "",
"Log Work__18": "",
"Log Work__19": "",
"Original Estimate": "",
"Remaining Estimate": 0,
"Time Spent": 600,
"Work Ratio": "",
"Σ Original Estimate": "",
"Σ Remaining Estimate": 0,
"Σ Time Spent": 600,
"Security Level": "",
"Outward issue link (Blocker)": "",
"Inward issue link (Reference)": "",
"Inward issue link (Reference)__1": "",
"Outward issue link (Reference)": "",
"Outward issue link (Reference)__1": "",
"Attachment": "",
"Attachment__1": "",
"Custom field (Affects version (Component))": "",
"Custom field (Attachment count)": 0,
"Custom field (Blog - New Blog Administrators)": "",
"Custom field (Blog - New Blog PMC)": "",
"Custom field (Blog - Write access)": "",
"Custom field (Blog Administrator?)": "",
"Custom field (Blogs - Admin for blog)": "",
"Custom field (Blogs - Email Address)": "",
"Custom field (Blogs - Existing Blog Access Level)": "",
"Custom field (Blogs - Existing Blog Name)": "",
"Custom field (Blogs - New Blog Write Access)": "",
"Custom field (Blogs - Username)": "",
"Custom field (Bug Category)": "",
"Custom field (Bugzilla - Email Notification Address)": "",
"Custom field (Bugzilla - List of usernames)": "",
"Custom field (Bugzilla - PMC Name)": "",
"Custom field (Bugzilla - Project Name)": "",
"Custom field (Bugzilla Id)": "",
"Custom field (Bugzilla Id)__1": "",
"Custom field (Change Category)": "",
"Custom field (Complexity)": "",
"Custom field (Discovered By)": "",
"Custom field (Docs Text)": "",
"Custom field (Enable Automatic Patch Review)": false,
"Custom field (Epic Colour)": "",
"Custom field (Epic Link)": "",
"Custom field (Epic Name)": "",
"Custom field (Epic Status)": "",
"Custom field (Estimated Complexity)": "",
"Custom field (Evidence Of Open Source Adoption)": "",
"Custom field (Evidence Of Registration)": "",
"Custom field (Evidence Of Use On World Wide Web)": "",
"Custom field (Existing GitBox Approval)": "",
"Custom field (External issue ID)": "",
"Custom field (External issue URL)": "",
"Custom field (Fix version (Component))": "",
"Custom field (Flags)": "",
"Custom field (Git Notification Mailing List)": "",
"Custom field (Git Repository Import Path)": "",
"Custom field (Git Repository Name)": "",
"Custom field (Git Repository Type)": "",
"Custom field (GitHub Options)": "",
"Custom field (Github Integration)": "",
"Custom field (Github Integrations - Other)": "",
"Custom field (Global Rank)": 9223372036854776000,
"Custom field (INFRA - Subversion Repository Path)": "",
"Custom field (Initial Confluence Contributors)": "",
"Custom field (Last public comment date)": "2019-11-14 10:54:23.0",
"Custom field (Level of effort)": "",
"Custom field (Machine Readable Info)": "",
"Custom field (Mentor)": "",
"Custom field (New-TLP-TLPName)": "",
"Custom field (Original story points)": "",
"Custom field (Parent Link)": "",
"Custom field (Priority)": "",
"Custom field (Project)": "",
"Custom field (Protected Branch)": "",
"Custom field (Rank)": "0|z08lug:",
"Custom field (Rank (Obsolete))": 9223372036854776000,
"Custom field (Release Note)": "",
"Custom field (Review Date)": "",
"Custom field (Reviewer)": "",
"Custom field (Severity)": "",
"Custom field (Severity)__1": "",
"Custom field (Skill Level)": "",
"Custom field (Source Control Link)": "",
"Custom field (Space Description)": "",
"Custom field (Space Key)": "",
"Custom field (Space Name)": "",
"Custom field (Start Date)": "",
"Custom field (Tags)": "",
"Custom field (Tags)__1": "",
"Custom field (Target end)": "",
"Custom field (Target start)": "",
"Custom field (Team)": "",
"Custom field (Test and Documentation Plan)": "",
"Custom field (Testcase included)": "",
"Custom field (Tester)": "",
"Custom field (Workaround)": "",
"Comment": "",
"Comment__1": "",
"Comment__2": "",
"Comment__3": "",
"Comment__4": "",
"Comment__5": "",
"Comment__6": "",
"Comment__7": "",
"Comment__8": "",
"Comment__9": "",
"Comment__10": "",
"Comment__11": "",
"Comment__12": "",
"Comment__13": "",
"Comment__14": "",
"Comment__15": ""
},
{
"Summary": "addWatch api supports all watch event type, strengthen the corresponding CLI and add a documentation",
"Issue key": "ZOOKEEPER-3611",
"Issue id": 13267446,
"Parent id": "",
"Issue Type": "Improvement",
"Status": "In Progress",
"Project key": "ZOOKEEPER",
"Project name": "ZooKeeper",
"Project type": "software",
"Project lead": "phunt",
"Project description": "Apache ZooKeeper is a service for coordinating processes of distributed applications.",
"Project url": "http://zookeeper.apache.org",
"Priority": "Major",
"Resolution": "",
"Assignee": "maoling",
"Reporter": "maoling",
"Creator": "maoling",
"Created": "11/Nov/19 10:54",
"Updated": "17/Dec/19 09:37",
"Last Viewed": "12/Mar/24 11:56",
"Resolved": "",
"Affects Version/s": "",
"Affects Version/s__1": "",
"Affects Version/s__2": "",
"Component/s": "",
"Component/s__1": "",
"Component/s__2": "",
"Due Date": "",
"Votes": 0,
"Labels": "pull-request-available",
"Labels__1": "",
"Description": "",
"Environment": "",
"Log Work": "maoling commented on pull request #1149: ZOOKEEPER-3611:addWatch api supports all watch event type, strengthen the corresponding CLI and add a documentation\nURL: https://github.com/apache/zookeeper/pull/1149\n \n \n - add three new modes: `STANDARD_CHILD`,`STANDARD_DATA`, `STANDARD_EXIST` to `addWatch()` api to keep behavior and semantics consistency with the original tradational one-time watch. For example: `zk.getChildren(path, watch, stat);` equals to `zk.addWatch(path, watch, STANDARD_CHILD);`\n - make the CLI: `addWatch` more user friendly and add a doc.\n - more details in the [ZOOKEEPER-3611](https://issues.apache.org/jira/browse/ZOOKEEPER-3611)\n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;18/Nov/19 08:01;githubbot;600",
"Log Work__1": "Randgalt commented on issue #1149: ZOOKEEPER-3611:addWatch api supports all watch event type, strengthen the corresponding CLI and add a documentation\nURL: https://github.com/apache/zookeeper/pull/1149#issuecomment-555075287\n \n \n This PR is missing some changes. DataTree's `addWatch()` method needs to be updated. Currently it adds the watcher to both `dataWatches` and `childWatches`. This means that there actually is no distinction between STANDARD_CHILD, STANDARD_DATA, STANDARD_EXIST.\n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;18/Nov/19 15:48;githubbot;600",
"Log Work__2": "Randgalt commented on pull request #1149: ZOOKEEPER-3611:addWatch api supports all watch event type, strengthen the corresponding CLI and add a documentation\nURL: https://github.com/apache/zookeeper/pull/1149#discussion_r347457248\n \n \n\n ##########\n File path: zookeeper-server/src/test/java/org/apache/zookeeper/test/AddWatchTest.java\n ##########\n @@ -0,0 +1,204 @@\n+/**\n+ * Licensed to the Apache Software Foundation (ASF) under one\n+ * or more contributor license agreements. See the NOTICE file\n+ * distributed with this work for additional information\n+ * regarding copyright ownership. The ASF licenses this file\n+ * to you under the Apache License, Version 2.0 (the\n+ * \"License\"); you may not use this file except in compliance\n+ * with the License. You may obtain a copy of the License at\n+ * Build result: FAILURE
[...truncated 1001.66 KB...][JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/PreCommit-ZOOKEEPER-github-pr-build-maven/pom.xml to org.apache.zookeeper/parent/3.7.0-SNAPSHOT/parent-3.7.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/PreCommit-ZOOKEEPER-github-pr-build-maven/zookeeper-recipes/zookeeper-recipes-lock/pom.xml to org.apache.zookeeper/zookeeper-recipes-lock/3.7.0-SNAPSHOT/zookeeper-recipes-lock-3.7.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/PreCommit-ZOOKEEPER-github-pr-build-maven/zookeeper-contrib/pom.xml to org.apache.zookeeper/zookeeper-contrib/3.7.0-SNAPSHOT/zookeeper-contrib-3.7.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/PreCommit-ZOOKEEPER-github-pr-build-maven/zookeeper-client/pom.xml to org.apache.zookeeper/zookeeper-client/3.7.0-SNAPSHOT/zookeeper-client-3.7.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/PreCommit-ZOOKEEPER-github-pr-build-maven/zookeeper-jute/pom.xml to org.apache.zookeeper/zookeeper-jute/3.7.0-SNAPSHOT/zookeeper-jute-3.7.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/PreCommit-ZOOKEEPER-github-pr-build-maven/zookeeper-jute/target/zookeeper-jute-3.7.0-SNAPSHOT.jar to org.apache.zookeeper/zookeeper-jute/3.7.0-SNAPSHOT/zookeeper-jute-3.7.0-SNAPSHOT.jar[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/PreCommit-ZOOKEEPER-github-pr-build-maven/zookeeper-jute/target/zookeeper-jute-3.7.0-SNAPSHOT-tests.jar to org.apache.zookeeper/zookeeper-jute/3.7.0-SNAPSHOT/zookeeper-jute-3.7.0-SNAPSHOT-tests.jar[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/PreCommit-ZOOKEEPER-github-pr-build-maven/zookeeper-jute/target/zookeeper-jute-3.7.0-SNAPSHOT-sources.jar to org.apache.zookeeper/zookeeper-jute/3.7.0-SNAPSHOT/zookeeper-jute-3.7.0-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/PreCommit-ZOOKEEPER-github-pr-build-maven/zookeeper-jute/target/zookeeper-jute-3.7.0-SNAPSHOT-javadoc.jar to org.apache.zookeeper/zookeeper-jute/3.7.0-SNAPSHOT/zookeeper-jute-3.7.0-SNAPSHOT-javadoc.jar[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/PreCommit-ZOOKEEPER-github-pr-build-maven/zookeeper-recipes/zookeeper-recipes-queue/pom.xml to org.apache.zookeeper/zookeeper-recipes-queue/3.7.0-SNAPSHOT/zookeeper-recipes-queue-3.7.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/PreCommit-ZOOKEEPER-github-pr-build-maven/zookeeper-docs/pom.xml to org.apache.zookeeper/zookeeper-docs/3.7.0-SNAPSHOT/zookeeper-docs-3.7.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/PreCommit-ZOOKEEPER-github-pr-build-maven/zookeeper-docs/target/zookeeper-docs-3.7.0-SNAPSHOT.jar to org.apache.zookeeper/zookeeper-docs/3.7.0-SNAPSHOT/zookeeper-docs-3.7.0-SNAPSHOT.jar[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/PreCommit-ZOOKEEPER-github-pr-build-maven/zookeeper-docs/target/zookeeper-docs-3.7.0-SNAPSHOT-tests.jar to org.apache.zookeeper/zookeeper-docs/3.7.0-SNAPSHOT/zookeeper-docs-3.7.0-SNAPSHOT-tests.jar[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/PreCommit-ZOOKEEPER-github-pr-build-maven/zookeeper-docs/target/zookeeper-docs-3.7.0-SNAPSHOT-sources.jar to org.apache.zookeeper/zookeeper-docs/3.7.0-SNAPSHOT/zookeeper-docs-3.7.0-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/PreCommit-ZOOKEEPER-github-pr-build-maven/zookeeper-recipes/pom.xml to org.apache.zookeeper/zookeeper-recipes/3.7.0-SNAPSHOT/zookeeper-recipes-3.7.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/PreCommit-ZOOKEEPER-github-pr-build-maven/zookeeper-client/zookeeper-client-c/pom.xml to org.apache.zookeeper/zookeeper-client-c/3.7.0-SNAPSHOT/zookeeper-client-c-3.7.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/PreCommit-ZOOKEEPER-github-pr-build-maven/zookeeper-contrib/zookeeper-contrib-rest/pom.xml to org.apache.zookeeper/zookeeper-contrib-rest/3.7.0-SNAPSHOT/zookeeper-contrib-rest-3.7.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/PreCommit-ZOOKEEPER-github-pr-build-maven/zookeeper-assembly/pom.xml to org.apache.zookeeper/zookeeper-assembly/3.7.0-SNAPSHOT/zookeeper-assembly-3.7.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/PreCommit-ZOOKEEPER-github-pr-build-maven/zookeeper-contrib/zookeeper-contrib-zooinspector/pom.xml to org.apache.zookeeper/zookeeper-contrib-zooinspector/3.7.0-SNAPSHOT/zookeeper-contrib-zooinspector-3.7.0-SNAPSHOT.pomchannel stopped[SpotBugs] Skipping execution of recorder since overall result is 'FAILURE'Setting status of 3c05834a4ff2ca88c55c2ae9b63b7b1f4cd76d9f to FAILURE with url https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build-maven/1743/ and message: 'FAILURE 'Using context: JenkinsMaven\n \n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;17/Dec/19 08:46;githubbot;600",
"Log Work__16": "maoling commented on issue #1149: ZOOKEEPER-3611:addWatch api supports all watch event type, strengthen the corresponding CLI and add a documentation\nURL: https://github.com/apache/zookeeper/pull/1149#issuecomment-555859965\n \n \n @Randgalt \n \n - > This PR is missing some changes. DataTree's addWatch() method needs to be updated. Currently it adds the watcher to both dataWatches and childWatches. \n \n Yes, it is. I have changed it. Think further, it don't affect the correctness of watch, the client cannot trigger twice, so I don't find this bug in the original patch.\n \n - > Or, alternatively, addWatch() can be changed to return a Stat object and STANDARD_EXIST would be an alias for exists(path, watcher).\n \n I pick up this solution.\n \n - An obstacle I met is: when switch `PERSISTENT` watch to `STANDARD` watch in the same session. For example:\n ```\n [zk: localhost:2181(CONNECTED) 25] addWatch -p /test-watch\n [zk: localhost:2181(CONNECTED) 26] set /test-watch \"foo\"\n WATCHER::\n WatchedEvent state:SyncConnected type:NodeDataChanged path:/test-watch\n [zk: localhost:2181(CONNECTED) 27] addWatch -c /test-watch\n [zk: localhost:2181(CONNECTED) 28] set /test-watch \"foo\"\n WATCHER::\n WatchedEvent state:SyncConnected type:NodeDataChanged path:/test-watch\n [zk: localhost:2181(CONNECTED) 29] create /test-watch/ch-88\n WATCHER::\n WatchedEvent state:SyncConnected type:NodeChildrenChanged path:/test-watch\n Created /test-watch/ch-88\n ```\n when adding a child watch, it can also leave a data watch one that node. Switching `STANDARD` watch to `PERSISTENT` watch doesn't have that problem. Between that switch, we need a `removeWatch` to clean up the `PERSISTENT` watch. I also want to implement: a watch can override the previous PERSISTENT watch automatically on the server side, but it needs to change more codes.\n \n \n - The behavior of `PERSISTENT` watch is a little confused: it can also be triggered when its child has changed(first level). Overlap with `PERSISTENT_RECURSIVE`? It should only be fired when changes made by itself?\n \n - addWatch api needs to check the null watch. `e.g zk.addWatch(BASE_PATH, null, STANDARD_CHILD);`\n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;17/Dec/19 08:47;githubbot;600",
"Log Work__17": "boromee commented on issue #1149: ZOOKEEPER-3611:addWatch api supports all watch event type, strengthen the corresponding CLI and add a documentation\nURL: https://github.com/apache/zookeeper/pull/1149#issuecomment-566454198\n \n \n unsubscribe\n \n \n \n \n ---Original---\n From: \"ASF CI System\"PreCommit-ZOOKEEPER-github-pr-build-maven/org.apache.zookeeper:zookeeper: 1
\n \n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;17/Dec/19 09:37;githubbot;600",
"Log Work__19": "",
"Original Estimate": "",
"Remaining Estimate": 0,
"Time Spent": 11400,
"Work Ratio": "",
"Σ Original Estimate": "",
"Σ Remaining Estimate": 0,
"Σ Time Spent": 11400,
"Security Level": "",
"Outward issue link (Blocker)": "",
"Inward issue link (Reference)": "ZOOKEEPER-3281",
"Inward issue link (Reference)__1": "ZOOKEEPER-1416",
"Outward issue link (Reference)": "",
"Outward issue link (Reference)__1": "",
"Attachment": "",
"Attachment__1": "",
"Custom field (Affects version (Component))": "",
"Custom field (Attachment count)": 0,
"Custom field (Blog - New Blog Administrators)": "",
"Custom field (Blog - New Blog PMC)": "",
"Custom field (Blog - Write access)": "",
"Custom field (Blog Administrator?)": "",
"Custom field (Blogs - Admin for blog)": "",
"Custom field (Blogs - Email Address)": "",
"Custom field (Blogs - Existing Blog Access Level)": "",
"Custom field (Blogs - Existing Blog Name)": "",
"Custom field (Blogs - New Blog Write Access)": "",
"Custom field (Blogs - Username)": "",
"Custom field (Bug Category)": "",
"Custom field (Bugzilla - Email Notification Address)": "",
"Custom field (Bugzilla - List of usernames)": "",
"Custom field (Bugzilla - PMC Name)": "",
"Custom field (Bugzilla - Project Name)": "",
"Custom field (Bugzilla Id)": "",
"Custom field (Bugzilla Id)__1": "",
"Custom field (Change Category)": "",
"Custom field (Complexity)": "",
"Custom field (Discovered By)": "",
"Custom field (Docs Text)": "",
"Custom field (Enable Automatic Patch Review)": false,
"Custom field (Epic Colour)": "",
"Custom field (Epic Link)": "",
"Custom field (Epic Name)": "",
"Custom field (Epic Status)": "",
"Custom field (Estimated Complexity)": "",
"Custom field (Evidence Of Open Source Adoption)": "",
"Custom field (Evidence Of Registration)": "",
"Custom field (Evidence Of Use On World Wide Web)": "",
"Custom field (Existing GitBox Approval)": "",
"Custom field (External issue ID)": "",
"Custom field (External issue URL)": "",
"Custom field (Fix version (Component))": "",
"Custom field (Flags)": "",
"Custom field (Git Notification Mailing List)": "",
"Custom field (Git Repository Import Path)": "",
"Custom field (Git Repository Name)": "",
"Custom field (Git Repository Type)": "",
"Custom field (GitHub Options)": "",
"Custom field (Github Integration)": "",
"Custom field (Github Integrations - Other)": "",
"Custom field (Global Rank)": 9223372036854776000,
"Custom field (INFRA - Subversion Repository Path)": "",
"Custom field (Initial Confluence Contributors)": "",
"Custom field (Last public comment date)": "Tue Nov 12 02:24:30 UTC 2019",
"Custom field (Level of effort)": "",
"Custom field (Machine Readable Info)": "",
"Custom field (Mentor)": "",
"Custom field (New-TLP-TLPName)": "",
"Custom field (Original story points)": "",
"Custom field (Parent Link)": "",
"Custom field (Priority)": "",
"Custom field (Project)": "",
"Custom field (Protected Branch)": "",
"Custom field (Rank)": "0|z08gpc:",
"Custom field (Rank (Obsolete))": 9223372036854776000,
"Custom field (Release Note)": "",
"Custom field (Review Date)": "",
"Custom field (Reviewer)": "",
"Custom field (Severity)": "",
"Custom field (Severity)__1": "",
"Custom field (Skill Level)": "",
"Custom field (Source Control Link)": "",
"Custom field (Space Description)": "",
"Custom field (Space Key)": "",
"Custom field (Space Name)": "",
"Custom field (Start Date)": "",
"Custom field (Tags)": "",
"Custom field (Tags)__1": "",
"Custom field (Target end)": "",
"Custom field (Target start)": "",
"Custom field (Team)": "",
"Custom field (Test and Documentation Plan)": "",
"Custom field (Testcase included)": "",
"Custom field (Tester)": "",
"Custom field (Workaround)": "",
"Comment": "11/Nov/19 13:31;randgalt;It occurs to me that the new ZooKeeper.addWatch() API could be extended to support all watch types as well. Thoughts?;;;",
"Comment__1": "12/Nov/19 02:24;maoling;[~randgalt]\n\nYep, let me try this job :);;;",
"Comment__2": "",
"Comment__3": "",
"Comment__4": "",
"Comment__5": "",
"Comment__6": "",
"Comment__7": "",
"Comment__8": "",
"Comment__9": "",
"Comment__10": "",
"Comment__11": "",
"Comment__12": "",
"Comment__13": "",
"Comment__14": "",
"Comment__15": ""
},
{
"Summary": "support the complete linearizable read and multiply read consistency level",
"Issue key": "ZOOKEEPER-3600",
"Issue id": 13265507,
"Parent id": "",
"Issue Type": "New Feature",
"Status": "In Progress",
"Project key": "ZOOKEEPER",
"Project name": "ZooKeeper",
"Project type": "software",
"Project lead": "phunt",
"Project description": "Apache ZooKeeper is a service for coordinating processes of distributed applications.",
"Project url": "http://zookeeper.apache.org",
"Priority": "Major",
"Resolution": "",
"Assignee": "maoling",
"Reporter": "maoling",
"Creator": "maoling",
"Created": "31/Oct/19 10:44",
"Updated": "02/Sep/22 11:58",
"Last Viewed": "12/Mar/24 11:56",
"Resolved": "",
"Affects Version/s": "3.6.3",
"Affects Version/s__1": "3.7.0",
"Affects Version/s__2": "",
"Component/s": "documentation",
"Component/s__1": "java client",
"Component/s__2": "server",
"Due Date": "",
"Votes": 0,
"Labels": "pull-request-available",
"Labels__1": "",
"Description": "",
"Environment": "",
"Log Work": "maoling commented on pull request #1137: ZOOKEEPER-3600:[WIP]support the complete Linearizability Read\nURL: https://github.com/apache/zookeeper/pull/1137\n \n \n - this is still a work in the progress,Plz don't review before removing the WIP tag\n - more details in the [ZOOKEEPER-3600](https://issues.apache.org/jira/browse/ZOOKEEPER-3600)\n \n----------------------------------------------------------------\nThis is an automated message from the Apache Git Service.\nTo respond to the message, please log on to GitHub and use the\nURL above to go to the specific comment.\n \nFor queries about this service, please contact Infrastructure at:\nusers@infra.apache.org\n;07/Nov/19 07:12;githubbot;600",
"Log Work__1": "eolivelli commented on code in PR #1137:\nURL: https://github.com/apache/zookeeper/pull/1137#discussion_r961597059\n\n\n##########\nzookeeper-server/src/main/java/org/apache/zookeeper/ZooKeeper.java:\n##########\n@@ -2026,6 +2031,87 @@ public void getData(final String path, Watcher watcher, DataCallback cb, Object\n cnxn.queuePacket(h, new ReplyHeader(), request, response, cb, clientPath, serverPath, ctx, wcb);\n }\n \n+ /**\n+ * TODO\n+ * @param path\n+ * @param watcher\n+ * @param readMode\n+ * @return\n+ * @throws KeeperException\n+ * @throws InterruptedException\n+ * @since\n+ */\n+ public CompletableFuture