ZooKeeper 3.2.0 Release Notes
These release notes include new developer and user facing incompatibilities, features, and major improvements.
Note that there is a user visible semantic change to an existing API in this release: ZOOKEEPER-444 "perms definition for PERMS_ALL differ in C and java", a bug fix which required a change to the JAVA definition of ALL to include ADMIN.
See 3.0 release notes and migration instructions if you are upgrading from version 2 of ZooKeeper (SourceForge) to version 3 or later.
Changes Since ZooKeeper 3.1
| Issue | Notes |
|---|---|
| Incompatibilities | |
| ZOOKEEPER-444 | perms definition for PERMS_ALL differ in C and java |
| New Feature | |
| ZOOKEEPER-29 | Flexible quorums |
| ZOOKEEPER-36 | REST access to ZooKeeper |
| ZOOKEEPER-78 | added a high level protocol/feature - for easy Leader Election or exclusive Write Lock creation |
| ZOOKEEPER-237 | Add a Chroot request |
| ZOOKEEPER-361 | integrate cppunit testing as part of hudson patch process. |
| ZOOKEEPER-378 | contribution of Net::ZooKeeper Perl module |
| ZOOKEEPER-383 | Asynchronous version of createLedger() |
| ZOOKEEPER-395 | Python bindings |
| Task | |
| ZOOKEEPER-440 | update the performance documentation in forrest |
| Bug | |
| ZOOKEEPER-94 | JMX tests are needed to verify that the JMX MBeans work properly |
| ZOOKEEPER-192 | trailing whitespace in config file can cause number format exceptions |
| ZOOKEEPER-196 | doxygen comment for state argument of watcher_fn typedef and implementation differ ("...one of the *_STATE constants, otherwise -1") |
| ZOOKEEPER-244 | AsyncOpsTest fails when running consecutively |
| ZOOKEEPER-273 | Zookeeper c client build should not depend on CPPUNIT |
| ZOOKEEPER-281 | autoreconf fails for /zookeeper-3.0.1/src/c/ |
| ZOOKEEPER-298 | some excecutables (scripts typ.) are not marked as such in tar generated by "ant tar" |
| ZOOKEEPER-299 | server startup scripts fail on a mac. |
| ZOOKEEPER-300 | zk jmx code is calling printStackTrace when creating bean name (should not be) |
| ZOOKEEPER-303 | Bin scripts don't work on Mac |
| ZOOKEEPER-309 | core dump using zoo_get_acl() |
| ZOOKEEPER-318 | remove locking in zk_hashtable.c or add locking in collect_keys() |
| ZOOKEEPER-319 | add locking around auth info in zhandle_t |
| ZOOKEEPER-320 | call auth completion in free_completions() |
| ZOOKEEPER-325 | FLENewEpoch test fails. |
| ZOOKEEPER-326 | standalone server ignores tickTime configuration |
| ZOOKEEPER-330 | zookeeper standalone server does not startup with just a port and datadir. |
| ZOOKEEPER-332 | c client issues (memory leaks) reported by valgrind |
| ZOOKEEPER-333 | helgrind thread issues identified in mt c client code |
| ZOOKEEPER-334 | bookkeeper benchmark (testclient.java) has compiling errros. |
| ZOOKEEPER-340 | binaryinputarchive throws out runtimeexceptions for unreasonable length datastructures. |
| ZOOKEEPER-341 | regression in QuorumPeerMain, tickTime from config is lost, cannot start quorum |
| ZOOKEEPER-344 | doIO in NioServerCnxn: Exception causing close of session : cause is "read error" |
| ZOOKEEPER-346 | remove the kill command fro mthe client port. |
| ZOOKEEPER-347 | zkfuse uses non-standard String |
| ZOOKEEPER-348 | Creating node with path ending in "/" with sequence flag set |
| ZOOKEEPER-355 | make validatePath non public in Zookeeper client api. |
| ZOOKEEPER-360 | WeakHashMap in Bookie.java causes NPE |
| ZOOKEEPER-362 | Issues with FLENewEpochTest |
| ZOOKEEPER-363 | NPE when recovering ledger with no hint |
| ZOOKEEPER-365 | javadoc is wrong for setLast in LedgerHandle |
| ZOOKEEPER-367 | RecoveryTest failure - "unreasonable length" IOException |
| ZOOKEEPER-370 | Fix critical problems reported by findbugs |
| ZOOKEEPER-374 | Uninitialized struct variable in C causes warning which is treated as an error |
| ZOOKEEPER-375 | zoo_add_auth only retains most recent auth on re-sync |
| ZOOKEEPER-376 | ant test target re-compiles cppunit code every time |
| ZOOKEEPER-377 | running ant cppunit tests, a failure still results in BUILD SUCCESSFUL |
| ZOOKEEPER-379 | cppunit tests failed during hudson patch tests |
| ZOOKEEPER-382 | zookeeper cpp tests fails on 64 bit machines with gcc 4.1.2 |
| ZOOKEEPER-384 | keeper exceptions missing path |
| ZOOKEEPER-385 | crctest failed on hudson patch test |
| ZOOKEEPER-391 | bookeeper mainline code should not be calling printStackTrace |
| ZOOKEEPER-396 | race condition in zookeeper client library between zookeeper_close and zoo_synchronous api |
| ZOOKEEPER-400 | Issues with procedure to close ledger |
| ZOOKEEPER-402 | zookeeper c library segfaults on data for a node in zookeeper being null. |
| ZOOKEEPER-404 | nightly build failed on hudson. |
| ZOOKEEPER-405 | nullpointer exception in zookeeper java shell. |
| ZOOKEEPER-411 | Building zookeeper fails on RHEL 5 64 bit during test-cppunit |
| ZOOKEEPER-415 | zookeeper c tests hang. |
| ZOOKEEPER-416 | BookKeeper jar includes unnecessary files |
| ZOOKEEPER-417 | stray message problem when changing servers |
| ZOOKEEPER-419 | Reference counting bug in Python bindings causes abort errors |
| ZOOKEEPER-421 | zkpython run_tests.sh is missing #! |
| ZOOKEEPER-427 | ZooKeeper server unexpectedly high CPU utilisation |
| ZOOKEEPER-433 | getacl on root znode (/) fails |
| ZOOKEEPER-435 | allow "super" admin digest based auth to be configurable |
| ZOOKEEPER-438 | addauth fails to register auth on new client that's not yet connected |
| ZOOKEEPER-446 | some traces of the host auth scheme left |
| ZOOKEEPER-448 | png files do nto work with forrest. |
| ZOOKEEPER-449 | sesssionmoved in java code and ZCLOSING in C have the same value. |
| ZOOKEEPER-450 | emphemeral cleanup not happening with session timeout |
| ZOOKEEPER-452 | zookeeper performance graph should have percentage of reads rather than percentage of writes - zkperfRW-3.2.jpg |
| ZOOKEEPER-453 | Worker is not removed in QuorumCnxManager upon crash |
| ZOOKEEPER-454 | allow compilation with jdk1.5 |
| ZOOKEEPER-455 | zookeeper c client crashes with chroot specified in the string. |
| Improvement | |
| ZOOKEEPER-60 | Get cppunit tests running as part of Hudson CI |
| ZOOKEEPER-148 | add jdiff support to zookeeper release process |
| ZOOKEEPER-264 | docs should include a state transition diagram for client state |
| ZOOKEEPER-274 | Document options to connect Jconsole remotely |
| ZOOKEEPER-279 | Allow specialization of quorum config parsing (e.g. variable expansion in zoo.cfg) |
| ZOOKEEPER-288 | Cleanup and fixes to BookKeeper |
| ZOOKEEPER-292 | commit configure scripts (autotools) to svn for c projects and include in release |
| ZOOKEEPER-305 | Replace timers with semaphores in FLENewEpochTest |
| ZOOKEEPER-306 | Add BookKeeper documentation |
| ZOOKEEPER-307 | Log exception stack traces |
| ZOOKEEPER-314 | add wiki docs for bookeeper. |
| ZOOKEEPER-315 | add forrest docs for bookkeeper. |
| ZOOKEEPER-327 | document effects (latency) of storing large amounts of data in znodes |
| ZOOKEEPER-329 | document how to integrate 3rd party authentication into ZK server ACLs |
| ZOOKEEPER-336 | single bad client can cause server to stop accepting connections |
| ZOOKEEPER-337 | improve logging in leader election lookForLeader method when address resolution fails |
| ZOOKEEPER-342 | improve configuration code - remove static config and use java properties |
| ZOOKEEPER-343 | add tests that specifically verify the zkmain and qpmain classes |
| ZOOKEEPER-345 | the CLIs should allow addAuth to be invoked |
| ZOOKEEPER-349 | to automate patch testing |
| ZOOKEEPER-356 | Masking bookie failure during writes to a ledger |
| ZOOKEEPER-358 | Throw exception when ledger does not exist |
| ZOOKEEPER-371 | to implement jdiff |
| ZOOKEEPER-373 | One thread per bookie |
| ZOOKEEPER-380 | bookkeeper should have a streaming api so that its easier to store checpoints/snapshots in bookkeeper. |
| ZOOKEEPER-381 | The ZooKeeper front page tells us nothing about what ZooKeeper does |
| ZOOKEEPER-386 | improve java cli shell |
| ZOOKEEPER-389 | add help/usage to the c shell cli.c |
| ZOOKEEPER-392 | Change log4j properties |
| ZOOKEEPER-403 | cleanup javac compiler warnings |
| ZOOKEEPER-406 | address all findbugs warnings in mainline java code |
| ZOOKEEPER-422 | Java CLI should support ephemeral and sequential node creation |
| ZOOKEEPER-428 | logging should be makred as warn rathen than error in NIOServerCnxn. |
| ZOOKEEPER-431 | Expose methods to ease ZK integration |
| ZOOKEEPER-432 | Various improvements to zkpython bindings |
| ZOOKEEPER-434 | the java shell should indicate connection status on command prompt |
| ZOOKEEPER-437 | Variety of Documentation Updates |
| ZOOKEEPER-443 | trace logging in watch notification not wrapped with istraceneabled - inefficient |
| Subtask | |
| ZOOKEEPER-350 | to run rats for releaseaudit |
| ZOOKEEPER-351 | to run checkstyle |
| ZOOKEEPER-352 | to add standard ant targets required by test-patch.sh script |
| ZOOKEEPER-353 | javadoc warnings needs to be fixed |
| ZOOKEEPER-354 | to fix javadoc warning in the source files |
| ZOOKEEPER-407 | address all findbugs warnings in org.apache.zookeeper.server.quorum.** packages |
| ZOOKEEPER-408 | address all findbugs warnings in persistence classes |
| ZOOKEEPER-409 | address all findbugs warnings in jute related classes |
| ZOOKEEPER-410 | address all findbugs warnings in client/server classes |


