# ZooKeeper 3.4.5 Release Notes

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

These release notes include new developer and user facing incompatibilities, features, and major improvements.

- Changes

## Changes Since 3.4.4

Changes Since ZooKeeper 3.4.4

Issue | Notes
--- | ---
ZOOKEEPER-1550 | ZooKeeperSaslClient does not finish anonymous login on OpenJDK
ZOOKEEPER-1376 | zkServer.sh does not correctly check for $SERVER_JVMFLAGS
ZOOKEEPER-1560 | Zookeeper client hangs on creation of large nodes

## Changes Since 3.4.3

Changes Since ZooKeeper 3.4.3

Issue | Notes
--- | ---
ZOOKEEPER-1496 | Ephemeral node not getting cleared even after client has exited
ZOOKEEPER-1048 | addauth command does not work in cli_mt/cli_st
ZOOKEEPER-1163 | Memory leak in zk_hashtable.c:do_insert_watcher_object()
ZOOKEEPER-1210 | Can't build ZooKeeper RPM with RPM >
ZOOKEEPER-1236 | Security uses proprietary Sun APIs
ZOOKEEPER-1256 | ClientPortBindTest is failing on Mac OS X
ZOOKEEPER-1277 | servers stop serving when lower 32bits of zxid roll over
ZOOKEEPER-1307 | zkCli.sh is exiting when an Invalid ACL exception is thrown from setACL command through client
ZOOKEEPER-1318 | In Python binding, get_children (and get and exists, and probably others) with expired session doesn't raise exception properly
ZOOKEEPER-1339 | C clien doesn't build with --enable-debug
ZOOKEEPER-1344 | ZooKeeper client multi-update command is not considering the Chroot request
ZOOKEEPER-1354 | AuthTest.testBadAuthThenSendOtherCommands fails intermittently
ZOOKEEPER-1361 | Leader.lead iterates over 'learners' set without proper synchronisation
ZOOKEEPER-1380 | zkperl: _zk_release_watch doesn't remove items properly from the watch list
ZOOKEEPER-1384 | test-cppunit overrides LD_LIBRARY_PATH and fails if gcc is in non-standard location
ZOOKEEPER-1386 | avoid flaky URL redirection in "ant javadoc" : replace "http://java.sun.com/javase/6/docs/api/" with "http://download.oracle.com/javase/6/docs/api/"
ZOOKEEPER-1395 | node-watcher double-free redux
ZOOKEEPER-1403 | zkCli.sh script quoting issue
ZOOKEEPER-1406 | dpkg init scripts don't restart - missing check_priv_sep_dir
ZOOKEEPER-1412 | java client watches inconsistently triggered on reconnect
ZOOKEEPER-1419 | Leader election never settles for a 5-node cluster
ZOOKEEPER-1427 | Writing to local files is done non-atomically
ZOOKEEPER-1431 | zkpython: async calls leak memory
ZOOKEEPER-1437 | Client uses session before SASL authentication complete
ZOOKEEPER-1463 | external inline function is not compatible with C99
ZOOKEEPER-1465 | Cluster availability following new leader election takes a long time with large datasets - is correlated to dataset size
ZOOKEEPER-1466 | QuorumCnxManager.shutdown missing synchronization
ZOOKEEPER-1471 | Jute generates invalid C++ code
ZOOKEEPER-1480 | ClientCnxn(1161) can't get the current zk server add, so that - Session 0x for server null, unexpected error
ZOOKEEPER-1483 | Fix leader election recipe documentation
ZOOKEEPER-1489 | Data loss after truncate on transaction log
ZOOKEEPER-1490 | If the configured log directory does not exist zookeeper will not start. Better to create the directory and start
ZOOKEEPER-1493 | C Client: zookeeper_process doesn't invoke completion callback if zookeeper_close has been called
ZOOKEEPER-1494 | C client: socket leak after receive timeout in zookeeper_interest()
ZOOKEEPER-1496 | Ephemeral node not getting cleared even after client has exited
ZOOKEEPER-1501 | Nagios plugin always returns OK when it cannot connect to zookeeper
ZOOKEEPER-1514 | FastLeaderElection - leader ignores the round information when joining a quorum
ZOOKEEPER-1521 | LearnerHandler initLimit/syncLimit problems specifying follower socket timeout limits
ZOOKEEPER-1522 | intermittent failures in Zab test due to NPE in recursiveDelete test function
ZOOKEEPER-1536 | c client : memory leak in winport.c
ZOOKEEPER-1321 | Add number of client connections metric in JMX and srvr
ZOOKEEPER-1377 | add support for dumping a snapshot file content (similar to LogFormatter)
ZOOKEEPER-1389 | it would be nice if start-foreground used exec $JAVA in order to get rid of the intermediate shell process
ZOOKEEPER-1390 | some expensive debug code not protected by a check for debug
ZOOKEEPER-1433 | improve ZxidRolloverTest (test seems flakey)
ZOOKEEPER-1454 | Document how to run autoreconf if cppunit is installed in a non-standard directory
ZOOKEEPER-1481 | allow the C cli to run exists with a watcher
ZOOKEEPER-1497 | Allow server-side SASL login with JAAS configuration to be programmatically set (rather than only by reading JAAS configuration file)
ZOOKEEPER-1503 | remove redundant JAAS configuration code in SaslAuthTest and SaslAuthFailTest
ZOOKEEPER-1510 | Should not log SASL errors for non-secure usage
ZOOKEEPER-1450 | Backport ZOOKEEPER-1294 fix to 3.4 and 3.3

## Changes Since ZooKeeper 3.4.2

Changes Since ZooKeeper 3.4.2

Issue | Notes
--- | ---
ZOOKEEPER-1089 | zkServer.sh status does not work due to invalid option of nc.
ZOOKEEPER-1345 | Add a .gitignore file with general exclusions and Eclipse project files excluded.
ZOOKEEPER-1343 | getEpochToPropose should check if lastAcceptedEpoch is greater or equal than epoch.
ZOOKEEPER-850 | replaces log4j with slf4j code (also in contrib for bookkeeper, zooinspector, rest,loggraph), added slf4j dependencies into several ivy.xml files. You must add slf4j-api-1.6.1.jar and slf4j-log4j12-1.6.1.jar (bridge from sl4j to log4j) to the classpath, if not using the standard scripts. log4j remains as the final logger yet, there is still work to do: remove programmatic access to the log4j api from certain classes (which add appenders or configure log4j at runtime), or move them to contrib
ZOOKEEPER-1358 | In StaticHostProviderTest.java, testNextDoesNotSleepForZero tests that hostProvider.next(0) doesn't sleep by checking that the latency of this call is less than 10sec
ZOOKEEPER-1351 | Invalid test verification in MultiTransactionTest.
ZOOKEEPER-973 | bind() could fail on Leader because it does not setReuseAddress on its ServerSocket.
ZOOKEEPER-1367 | Data inconsistencies and unexpired ephemeral nodes after cluster restart.
ZOOKEEPER-1353 | C client test suite fails consistently.
ZOOKEEPER-1373 | Hardcoded SASL login context name clashes with Hadoop security configuration override.
ZOOKEEPER-1352 | server.InvalidSnapshotTest is using connection timeouts that are too short.
ZOOKEEPER-1336 | javadoc for multi is confusing, references functionality that doesn't seem to exis
ZOOKEEPER-1340 | multi problem - typical user operations are generating ERROR level messages in the server.
ZOOKEEPER-1374 | C client multi-threaded test suite fails to compile on ARM architectures.
ZOOKEEPER-1337 | multi's "Transaction" class is missing tests.
ZOOKEEPER-1338 | class cast exceptions may be thrown by multi ErrorResult class (invalid equals)
ZOOKEEPER-1322 | Cleanup/fix logging in Quorum code.
ZOOKEEPER-1327 | There are still remnants of hadoop urls.

## Changes Since ZooKeeper 3.4.1

Changes Since ZooKeeper 3.4.1

Issue | Notes
--- | ---
ZOOKEEPER-1333 | NPE in FileTxnSnapLog when restarting a cluster.
ZOOKEEPER-1323 | c client doesn't compile on freebsd

## Changes Since ZooKeeper 3.4.0

Changes Since ZooKeeper 3.4.0

Issue | Notes
--- | ---
ZOOKEEPER-1311 | ZooKeeper test jar is broken
ZOOKEEPER-1305 | zookeeper.c:prepend_string func can dereference null ptr
ZOOKEEPER-1316 | zookeeper_init leaks memory if chroot is just '/'
ZOOKEEPER-1315 | zookeeper_init always reports sessionPasswd=hidden
ZOOKEEPER-1317 | Possible segfault in zookeeper_init.
ZOOKEEPER-1319 | Missing data after restarting+expanding a cluster.
ZOOKEEPER-1269 | Multi deserialization issues.

## Changes Since ZooKeeper 3.3.0

Changes Since ZooKeeper 3.3.0

Issue | Notes
--- | ---
Sub-Tasks |
ZOOKEEPER-1239 | add logging/stats to identify fsync stalls.
ZOOKEEPER-1208 | Ephemeral node not removed after the client session is long gone.
ZOOKEEPER-784 | server-side functionality for read-only mode. This is not thoroughly tested. Avoid using it in production. This is also at risk of being removed from the feature set later.
ZOOKEEPER-798 | Fixup loggraph for FLE changes
ZOOKEEPER-839 | deleteRecursive does not belong to the other methods
ZOOKEEPER-908 | Remove code duplication and inconsistent naming in ClientCnxn.Packet creation
ZOOKEEPER-909 | Extract NIO specific code from ClientCnxn
ZOOKEEPER-966 | Client side for multi
ZOOKEEPER-967 | Server side decoding and function dispatch
ZOOKEEPER-968 | Database multi-update
ZOOKEEPER-1042 | Generate zookeeper test jar for maven installation
ZOOKEEPER-1081 | modify leader/follower code to correctly deal with new leader
ZOOKEEPER-1082 | modify leader election to correctly take into account current epoch
ZOOKEEPER-1150 | fix for this patch to compile on windows...
ZOOKEEPER-1160 | test timeouts are too small
ZOOKEEPER-1201 | Clean SaslServerCallbackHandler.java
Bug Fixes |
ZOOKEEPER-1268 | problems with read only mode, intermittent test failures and ERRORs in the log.
ZOOKEEPER-1271 | testEarlyLeaderAbandonment failing on solaris - clients not retrying connection.
ZOOKEEPER-1192 | Leader.waitForEpochAck() checks waitingForNewEpoch instead of checking electionFinished.
ZOOKEEPER-1246 | Dead code in PrepRequestProcessor catch Exception block.
ZOOKEEPER-1264 | FollowerResyncConcurrencyTest failing intermittently.
ZOOKEEPER-1270 | testEarlyLeaderAbandonment failing intermittently, quorum formed, no serving.
ZOOKEEPER-1291 | AcceptedEpoch not updated at leader before it proposes the epoch to followers.
ZOOKEEPER-1282 | Learner.java not following Zab 1.0 protocol - setCurrentEpoch should be done upon receipt of NEWLEADER (before acking it) and not upon receipt of UPTODATE.
ZOOKEEPER-335 | zookeeper servers should commit the new leader txn to their logs.
ZOOKEEPER-418 | Need nifty zookeeper browser
ZOOKEEPER-603 | zkpython should do a better job of freeing memory under error conditions
ZOOKEEPER-662 | Too many CLOSE_WAIT socket state on a server
ZOOKEEPER-690 | AsyncTestHammer test fails on hudson.
ZOOKEEPER-719 | Add throttling to BookKeeper client
ZOOKEEPER-720 | Use zookeeper-{version}-sources.jar instead of zookeeper-{version}-src.jar to publish sources in the Maven repository
ZOOKEEPER-722 | zkServer.sh uses sh's builtin echo on BSD, behaves incorrectly.
ZOOKEEPER-731 | Zookeeper#delete , #create - async versions miss a verb in the javadoc
ZOOKEEPER-734 | QuorumPeerTestBase.java and ZooKeeperServerMainTest.java do not handle windows path correctly
ZOOKEEPER-735 | cppunit test testipv6 assumes that the machine is ipv6 enabled.
ZOOKEEPER-737 | some 4 letter words may fail with netcat (nc)
ZOOKEEPER-738 | zookeeper.jute.h fails to compile with -pedantic
ZOOKEEPER-741 | root level create on REST proxy fails
ZOOKEEPER-742 | Deallocatng None on writes
ZOOKEEPER-746 | learner outputs session id to log in dec (should be hex)
ZOOKEEPER-749 | OSGi metadata not included in binary only jar
ZOOKEEPER-750 | move maven artifacts into "dist-maven" subdir of the release (package target)
ZOOKEEPER-758 | zkpython segfaults on invalid acl with missing key
ZOOKEEPER-763 | Deadlock on close w/ zkpython / c client
ZOOKEEPER-764 | Observer elected leader due to inconsistent voting view
ZOOKEEPER-766 | forrest recipes docs don't mention the lock/queue recipe implementations available in the release
ZOOKEEPER-769 | Leader can treat observers as quorum members
ZOOKEEPER-772 | zkpython segfaults when watcher from async get children is invoked.
ZOOKEEPER-774 | Recipes tests are slightly outdated: they do not compile against JUnit 4.8
ZOOKEEPER-777 | setting acl on a non existant node should return no node error
ZOOKEEPER-782 | Incorrect C API documentation for Watches
ZOOKEEPER-783 | committedLog in ZKDatabase is not properly synchronized
ZOOKEEPER-787 | groupId in deployed pom is wrong
ZOOKEEPER-790 | Last processed zxid set prematurely while establishing leadership
ZOOKEEPER-792 | zkpython memory leak
ZOOKEEPER-794 | Callbacks are not invoked when the client is closed
ZOOKEEPER-795 | eventThread isn't shutdown after a connection "session expired" event coming
ZOOKEEPER-796 | zkServer.sh should support an external PIDFILE variable
ZOOKEEPER-800 | zoo_add_auth returns ZOK if zookeeper handle is in ZOO_CLOSED_STATE
ZOOKEEPER-804 | c unit tests failing due to "assertion cptr failed"
ZOOKEEPER-813 | maven install is broken due to incorrect organisation
ZOOKEEPER-814 | monitoring scripts are missing apache license headers
ZOOKEEPER-820 | update c unit tests to ensure "zombie" java server processes don't cause failure
ZOOKEEPER-822 | Leader election taking a long time to complete
ZOOKEEPER-831 | BookKeeper: Throttling improved for reads
ZOOKEEPER-844 | handle auth failure in java client
ZOOKEEPER-846 | zookeeper client doesn't shut down cleanly on the close call
ZOOKEEPER-854 | BookKeeper does not compile due to changes in the ZooKeeper code
ZOOKEEPER-855 | clientPortBindAddress should be clientPortAddress
ZOOKEEPER-861 | Missing the test SSL certificate used for running junit tests.
ZOOKEEPER-867 | ClientTest is failing on hudson - fd cleanup
ZOOKEEPER-870 | Zookeeper trunk build broken.
ZOOKEEPER-874 | FileTxnSnapLog.restore does not call listener
ZOOKEEPER-880 | QuorumCnxManager$SendWorker grows without bounds
ZOOKEEPER-881 | ZooKeeperServer.loadData loads database twice
ZOOKEEPER-882 | Startup loads last transaction from snapshot
ZOOKEEPER-884 | Remove LedgerSequence references from BookKeeper documentation and comments in tests
ZOOKEEPER-888 | c-client / zkpython: Double free corruption on node watcher
ZOOKEEPER-893 | ZooKeeper high cpu usage when invalid requests
ZOOKEEPER-897 | C Client seg faults during close
ZOOKEEPER-898 | C Client might not cleanup correctly during close
ZOOKEEPER-902 | Fix findbug issue in trunk "Malicious code vulnerability"
ZOOKEEPER-904 | super digest is not actually acting as a full superuser
ZOOKEEPER-913 | Version parser fails to parse "3.3.2-dev" from build.xml.
ZOOKEEPER-917 | Leader election selected incorrect leader
ZOOKEEPER-919 | Ephemeral nodes remains in one of ensemble after deliberate SIGKILL
ZOOKEEPER-921 | zkPython incorrectly checks for existence of required ACL elements
ZOOKEEPER-937 | test -e not available on solaris /bin/sh
ZOOKEEPER-957 | zkCleanup.sh doesn't do anything
ZOOKEEPER-958 | Flag to turn off autoconsume in hedwig c++ client
ZOOKEEPER-961 | Watch recovery after disconnection when connection string contains a prefix
ZOOKEEPER-962 | leader/follower coherence issue when follower is receiving a DIFF
ZOOKEEPER-963 | Make Forrest work with JDK6
ZOOKEEPER-965 | Need a multi-update command to allow multiple znodes to be updated safely
ZOOKEEPER-975 | new peer goes in LEADING state even if ensemble is online
ZOOKEEPER-976 | ZooKeeper startup script doesn't use JAVA_HOME
ZOOKEEPER-981 | Hang in zookeeper_close() in the multi-threaded C client
ZOOKEEPER-983 | running zkServer.sh start remotely using ssh hangs
ZOOKEEPER-985 | Test BookieRecoveryTest fails on trunk.
ZOOKEEPER-1006 | QuorumPeer "Address already in use" -- regression in 3.3.3
ZOOKEEPER-1007 | iarchive leak in C client
ZOOKEEPER-1013 | zkServer.sh usage message should mention all startup options
ZOOKEEPER-1027 | chroot not transparent in zoo_create()
ZOOKEEPER-1028 | In python bindings, zookeeper.set2() should return a stat dict but instead returns None
ZOOKEEPER-1033 | c client should install includes into INCDIR/zookeeper, not INCDIR/c-client-src
ZOOKEEPER-1034 | perl bindings should automatically find the zookeeper c-client headers
ZOOKEEPER-1046 | Creating a new sequential node results in a ZNODEEXISTS error
ZOOKEEPER-1049 | Session expire/close flooding renders heartbeats to delay significantly
ZOOKEEPER-1051 | SIGPIPE in Zookeeper 0.3.* when send'ing after cluster disconnection
ZOOKEEPER-1052 | Findbugs warning in QuorumPeer.ResponderThread.run()
ZOOKEEPER-1055 | check for duplicate ACLs in addACL() and create()
ZOOKEEPER-1058 | fix typo in opToString for getData
ZOOKEEPER-1059 | stat command isses on non-existing node causes NPE
ZOOKEEPER-1060 | QuorumPeer takes a long time to shutdown
ZOOKEEPER-1061 | Zookeeper stop fails if start called twice
ZOOKEEPER-1063 | Dubious synchronization in Zookeeper and ClientCnxnSocketNIO classes
ZOOKEEPER-1068 | Documentation and default config suggest incorrect location for Zookeeper state
ZOOKEEPER-1069 | Calling shutdown() on a QuorumPeer too quickly can lead to a corrupt log
ZOOKEEPER-1073 | address a documentation issue in ZOOKEEPER-1030
ZOOKEEPER-1074 | zkServer.sh is missing nohup/sleep, which are necessary for remote invocation
ZOOKEEPER-1076 | some quorum tests are unnecessarily extending QuorumBase
ZOOKEEPER-1083 | Javadoc for WatchedEvent not being generated
ZOOKEEPER-1086 | zookeeper test jar has non mavenised dependency.
ZOOKEEPER-1087 | ForceSync VM arguement not working when set to "no"
ZOOKEEPER-1088 | delQuota does not remove the quota node and subesquent setquota calls for that path will fail
ZOOKEEPER-1090 | Race condition while taking snapshot can lead to not restoring data tree correctly
ZOOKEEPER-1091 | when the chrootPath of ClientCnxn is not null and the Watches of zooKeeper is not null and the method primeConnection(SelectionKey k) of ClientCnxn Occurred again for some reason ,then the wrong watcher clientPath is sended to server
ZOOKEEPER-1097 | Quota is not correctly rehydrated on snapshot reload
ZOOKEEPER-1101 | Upload zookeeper-test maven artifacts to maven repository.
ZOOKEEPER-1108 | Various bugs in zoo_add_auth in C
ZOOKEEPER-1109 | Zookeeper service is down when SyncRequestProcessor meets any exception.
ZOOKEEPER-1111 | JMXEnv uses System.err instead of logging
ZOOKEEPER-1119 | zkServer stop command incorrectly reading comment lines in zoo.cfg
ZOOKEEPER-1124 | Multiop submitted to non-leader always fails due to timeout
ZOOKEEPER-1136 | NEW_LEADER should be queued not sent to match the Zab 1.0 protocol on the twiki
ZOOKEEPER-1138 | release audit failing for a number of new files
ZOOKEEPER-1139 | jenkins is reporting two warnings, fix these
ZOOKEEPER-1140 | server shutdown is not stopping threads
ZOOKEEPER-1141 | zkpython fails tests under python 2.4
ZOOKEEPER-1142 | incorrect stat output
ZOOKEEPER-1144 | ZooKeeperServer not starting on leader due to a race condition
ZOOKEEPER-1145 | ObserverTest.testObserver fails at particular point after several runs of ant junt.run -Dtestcase
ZOOKEEPER-1146 | significant regression in client (c/python) performance
ZOOKEEPER-1152 | Exceptions thrown from handleAuthentication can cause buffer corruption issues in NIOServer
ZOOKEEPER-1154 | Data inconsistency when the node(s) with the highest zxid is not present at the time of leader election
ZOOKEEPER-1156 | Log truncation truncating log too much - can cause data loss
ZOOKEEPER-1165 | better eclipse support in tests
ZOOKEEPER-1168 | ZooKeeper fails to run with IKVM
ZOOKEEPER-1171 | fix build for java 7
ZOOKEEPER-1174 | FD leak when network unreachable
ZOOKEEPER-1181 | Fix problems with Kerberos TGT renewal
ZOOKEEPER-1185 | Send AuthFailed event to client if SASL authentication fails
ZOOKEEPER-1189 | For an invalid snapshot file(less than 10bytes size) RandomAccessFile stream is leaking.
ZOOKEEPER-1190 | ant package is not including many of the bin scripts in the package (zkServer.sh for example)
ZOOKEEPER-1195 | SASL authorizedID being incorrectly set: should use getHostName() rather than getServiceName()
ZOOKEEPER-1203 | Zookeeper systest is missing Junit Classes
ZOOKEEPER-1206 | Sequential node creation does not use always use digits in node name given certain Locales.
ZOOKEEPER-1212 | zkServer.sh stop action is not conformat with LSB para 20.2 Init Script Actions
ZOOKEEPER-1237 | ERRORs being logged when queued responses are sent after socket has closed.
Improvements |
ZOOKEEPER-494 | zookeeper should install include headers in /usr/local/include/zookeeper
ZOOKEEPER-500 | Async methods shouldnt throw exceptions
ZOOKEEPER-631 | zkpython's C code could do with a style clean-up
ZOOKEEPER-636 | configure.ac has instructions which override the contents of CFLAGS and CXXFLAGS.
ZOOKEEPER-724 | Improve junit test integration - log harness information
ZOOKEEPER-733 | use netty to handle client connections
ZOOKEEPER-765 | Add python example script
ZOOKEEPER-773 | Log visualisation
ZOOKEEPER-788 | Add server id to message logs
ZOOKEEPER-789 | Improve FLE log messages
ZOOKEEPER-797 | c client source with AI_ADDRCONFIG cannot be compiled with early glibc
ZOOKEEPER-809 | Improved REST Interface
ZOOKEEPER-821 | Add ZooKeeper version information to zkpython
ZOOKEEPER-853 | Make zookeeper.is_unrecoverable return True or False and not an integer
ZOOKEEPER-862 | Hedwig created ledgers with hardcoded Bookkeeper ensemble and quorum size. Make these a server config parameter instead.
ZOOKEEPER-864 | Hedwig C++ client improvements
ZOOKEEPER-891 | Allow non-numeric version strings
ZOOKEEPER-905 | enhance zkServer.sh for easier zookeeper automation-izing
ZOOKEEPER-926 | Fork Hadoop common's test-patch.sh and modify for Zookeeper
ZOOKEEPER-977 | passing null for path_buffer in zoo_create
ZOOKEEPER-980 | allow configuration parameters for log4j.properties
ZOOKEEPER-993 | Code improvements
ZOOKEEPER-997 | ZkClient ignores command if there are any space in front of it
ZOOKEEPER-1018 | The connection permutation in get_addrs uses a weak and inefficient shuffle
ZOOKEEPER-1025 | zkCli is overly sensitive to to spaces.
ZOOKEEPER-1030 | Increase default for maxClientCnxns
ZOOKEEPER-1094 | Small improvements to LeaderElection and Vote classes
ZOOKEEPER-1095 | Simple leader election recipe
ZOOKEEPER-1103 | In QuorumTest, use the same "for ( .. try { break } catch { } )" pattern in testFollowersStartAfterLeaders as in testSessionMove.
ZOOKEEPER-1104 | CLONE - In QuorumTest, use the same "for ( .. try { break } catch { } )" pattern in testFollowersStartAfterLeaders as in testSessionMove.
ZOOKEEPER-1143 | quorum send & recv workers are missing thread names
ZOOKEEPER-1153 | Deprecate AuthFLE and LE
ZOOKEEPER-1166 | Please add a few svn:ignore properties
ZOOKEEPER-1169 | Fix compiler (eclipse) warnings in (generated) jute code
ZOOKEEPER-1243 | New 4lw for short simple monitoring ldck
Features |
ZOOKEEPER-464 | Need procedure to garbage collect ledgers
ZOOKEEPER-465 | Ledger size in bytes
ZOOKEEPER-546 | add "diskless" ensemble support
ZOOKEEPER-712 | Bookie recovery
ZOOKEEPER-729 | Recursively delete a znode - zkCli.sh rmr /node
ZOOKEEPER-744 | Add monitoring four-letter word
ZOOKEEPER-747 | Add C# generation to Jute
ZOOKEEPER-775 | A large scale pub/sub system
ZOOKEEPER-799 | Add tools and recipes for monitoring as a contrib
ZOOKEEPER-808 | Web-based Administrative Interface
ZOOKEEPER-859 | Native Windows version of C client
ZOOKEEPER-938 | Support Kerberos authentication of clients.
ZOOKEEPER-992 | MT Native Version of Windows C Client
ZOOKEEPER-999 | Create an package integration project
ZOOKEEPER-1012 | support distinct JVMFLAGS for zookeeper server in zkServer.sh and zookeeper client in zkCli.sh
ZOOKEEPER-1020 | Implement function in C client to determine which host you're currently connected to.
ZOOKEEPER-1107 | automating log and snapshot cleaning
Tasks |
ZOOKEEPER-754 | numerous misspellings "succesfully"
ZOOKEEPER-1149 | users cannot migrate from 3.4->3.3->3.4 server code against a single datadir
Tests |
ZOOKEEPER-239 | ZooKeeper System Tests