ZooKeeper 3.3.0 Release Notes
These release notes include new developer and user facing incompatibilities, features, and major improvements.
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.2
Issue | Notes |
---|---|
Sub-task | |
ZOOKEEPER-397 | mainline tests conversion |
Bug | |
ZOOKEEPER-3 | syncLimit has slightly different comments in the class header, and > inline with the variable. |
ZOOKEEPER-59 | Synchronized block in NIOServerCnxn |
ZOOKEEPER-86 | intermittent test failure of org.apache.zookeeper.test.AsyncTest |
ZOOKEEPER-121 | SyncRequestProcessor is not closing log stream during shutdown |
ZOOKEEPER-287 | high cpu utilization caused by nioserver factory thread |
ZOOKEEPER-413 | two flaws need addressing in the c tests that can cause false positive failures |
ZOOKEEPER-420 | build/test should not require install in zkpython |
ZOOKEEPER-457 | Make ZookeeperMain public, support for HBase (and other) embedded clients |
ZOOKEEPER-460 | bad testRetry in cppunit tests (hudson failure) |
ZOOKEEPER-466 | crash on zookeeper_close() when using auth with empty cert |
ZOOKEEPER-467 | Change log level in BookieHandle |
ZOOKEEPER-468 | avoid compile warning in send_auth_info() |
ZOOKEEPER-469 | make sure CPPUNIT_CFLAGS isn't overwritten |
ZOOKEEPER-470 | include unistd.h for sleep() in c tests |
ZOOKEEPER-475 | FLENewEpochTest failed on nightly builds. |
ZOOKEEPER-477 | zkCleanup.sh is flaky |
ZOOKEEPER-479 | QuorumHierarchical does not count groups correctly |
ZOOKEEPER-480 | FLE should perform leader check when node is not leading and add vote of follower |
ZOOKEEPER-481 | Add lastMessageSent to QuorumCnxManager |
ZOOKEEPER-482 | ignore sigpipe in testRetry to avoid silent immediate failure |
ZOOKEEPER-483 | ZK fataled on me, and ugly |
ZOOKEEPER-484 | Clients get SESSION MOVED exception when switching from follower to a leader. |
ZOOKEEPER-485 | need ops documentation that details supervision of ZK server processes |
ZOOKEEPER-487 | setdata on root (/) crashes the servers. |
ZOOKEEPER-489 | findbugs on hudson.zones.a.o has jumped way up (2k+) |
ZOOKEEPER-490 | the java docs for session creation are misleading/incomplete |
ZOOKEEPER-491 | Prevent zero-weight servers from being elected |
ZOOKEEPER-493 | patch for command line setquota |
ZOOKEEPER-495 | c client logs an invalid error when zookeeper_init is called with chroot |
ZOOKEEPER-498 | Unending Leader Elections : WAN configuration |
ZOOKEEPER-499 | electionAlg should default to FLE (3) - regression |
ZOOKEEPER-501 | CnxManagerTest failed on hudson |
ZOOKEEPER-502 | bookkeeper create calls completion too many times |
ZOOKEEPER-503 | race condition in asynchronous create |
ZOOKEEPER-504 | ClassCastException in LedgerManagementProcessor |
ZOOKEEPER-505 | testAsyncCreateClose is badly broken |
ZOOKEEPER-508 | proposals and commits for DIFF and Truncate messages from the leader to followers is buggy. |
ZOOKEEPER-509 | Truncating of logs does not work right at the followers. |
ZOOKEEPER-510 | zkpython lumps all exceptions as IOError, needs specialized exceptions for KeeperException types |
ZOOKEEPER-511 | bad error handling in FollowerHandler.sendPackets |
ZOOKEEPER-512 | FLE election fails to elect leader |
ZOOKEEPER-514 | test failure on trunk in testCnxManager - NPE |
ZOOKEEPER-519 | Followerhandler should close the socket if it gets an exception on a write. |
ZOOKEEPER-524 | DBSizeTest is not really testing anything |
ZOOKEEPER-527 | hudson trunk failure in quota test |
ZOOKEEPER-528 | c client exists() call with watch on large number of nodes (>100k) causes connection loss |
ZOOKEEPER-530 | Memory corruption: Zookeeper c client IPv6 implementation does not honor struct sockaddr_in6 size |
ZOOKEEPER-531 | Hudson trunk failure in heirarchical quorum test (interrupt problem) |
ZOOKEEPER-532 | java compiler should be target Java 1.5 |
ZOOKEEPER-533 | ant error running clean twice |
ZOOKEEPER-534 | The test target in contib/bookkeeper does not depend on jar target. |
ZOOKEEPER-535 | ivy task does not enjoy being defined twice (build error) |
ZOOKEEPER-537 | The zookeeper jar includes the java source files |
ZOOKEEPER-538 | zookeeper.async causes python to segfault |
ZOOKEEPER-540 | zkpython needs better tracking of handle validity |
ZOOKEEPER-541 | zkpython limited to 256 handles |
ZOOKEEPER-542 | c-client can spin when server unresponsive |
ZOOKEEPER-547 | Sanity check in QuorumCnxn Manager and quorum communication port. |
ZOOKEEPER-548 | zookeeper.ZooKeeperException not added to the module in zkpython |
ZOOKEEPER-551 | unnecessary SetWatches message on new session |
ZOOKEEPER-554 | zkpython can segfault when statting a deleted node |
ZOOKEEPER-557 | Upload Zookeeper jars to a public maven repository |
ZOOKEEPER-558 | server "sent" stats not being updated |
ZOOKEEPER-562 | c client can flood server with pings if tcp send queue filled |
ZOOKEEPER-563 | ant test for recipes is broken. |
ZOOKEEPER-566 | "reqs" four letter word (command port) returns no information |
ZOOKEEPER-567 | javadoc for getchildren2 needs to mention "new in 3.3.0" |
ZOOKEEPER-568 | SyncRequestProcessor snapping too frequently - counts non-log events as log events |
ZOOKEEPER-569 | Failure of elected leader can lead to never-ending leader election |
ZOOKEEPER-570 | AsyncHammerTest is broken, callbacks need to validate rc parameter |
ZOOKEEPER-573 | the dump 4letterword is not formatting sessionids in hex |
ZOOKEEPER-574 | the documentation on snapcount in the admin guide has the wrong default |
ZOOKEEPER-576 | docs need to be updated for session moved exception and how to handle it |
ZOOKEEPER-582 | ZooKeeper can revert to old data when a snapshot is created outside of normal processing |
ZOOKEEPER-586 | c client does not compile under cygwin |
ZOOKEEPER-587 | client should log timeout negotiated with server |
ZOOKEEPER-588 | remove unnecessary/annoying log of tostring error in Request.toString() |
ZOOKEEPER-589 | When create a znode, a NULL ACL parameter cannot be accepted |
ZOOKEEPER-591 | The C Client cannot exit properly in some situation |
ZOOKEEPER-593 | java client api does not allow client to access negotiated session timeout |
ZOOKEEPER-596 | The last logged zxid calculated by zookeeper servers could cause problems in leader election if data gets corrupted. |
ZOOKEEPER-597 | ASyncHammerTest is failing intermittently on hudson trunk |
ZOOKEEPER-600 | TODO pondering about allocation behavior in zkpython may be removed |
ZOOKEEPER-604 | zk needs to prevent export of any symbol not listed in their api |
ZOOKEEPER-606 | bin scripts don't work in cygwin (spaces in paths) |
ZOOKEEPER-609 | ObserverTest failure "zk should not be connected expected not same" |
ZOOKEEPER-610 | cleanup final fields, esp those used for locking |
ZOOKEEPER-611 | hudson build failiure |
ZOOKEEPER-614 | Improper synchronisation in getClientCnxnCount |
ZOOKEEPER-615 | wrong javadoc for create with a sequence flag |
ZOOKEEPER-617 | improve cluster setup documentation in forrest |
ZOOKEEPER-619 | hudson test failure in QuorumTest -- timeout error |
ZOOKEEPER-620 | hudson is not reporting compiler warning correctly |
ZOOKEEPER-621 | hudson failure ZooKeeper-trunk/621 - clover issue |
ZOOKEEPER-622 | Test for pending watches in send_set_watches should be moved |
ZOOKEEPER-623 | ClientBase in bookkeeper.util requires junit |
ZOOKEEPER-624 | The C Client cause core dump when receive error data from Zookeeper Server |
ZOOKEEPER-626 | ensure the c/java cli's print xid/sessionid/etc... in hex |
ZOOKEEPER-627 | zkpython arbitrarily restricts the size of a 'get' to 512 bytes |
ZOOKEEPER-629 | FLELostMessageTest assumes that the first zxid on a startup of quorum is -1. |
ZOOKEEPER-630 | Trunk has duplicate ObserverTest.java files |
ZOOKEEPER-644 | Nightly build failed on hudson. |
ZOOKEEPER-647 | hudson failure in testLeaderShutdown |
ZOOKEEPER-656 | SledgeHammer test - thread.run() deprecated |
ZOOKEEPER-663 | hudson failure in ZKDatabaseCorruptionTest |
ZOOKEEPER-667 | java client doesn't allow ipv6 numeric connect string |
ZOOKEEPER-668 | Close method in LedgerInputStream doesn't do anything |
ZOOKEEPER-669 | watchedevent tostring should clearly output the state/type/path |
ZOOKEEPER-673 | Fix observer documentation regarding leader election |
ZOOKEEPER-677 | c client doesn't allow ipv6 numeric connect string |
ZOOKEEPER-681 | Minor doc issue re unset maxClientCnxns |
ZOOKEEPER-682 | Event is not processed when the watcher is set to watch "/" if chrooted |
ZOOKEEPER-683 | LogFormatter fails to parse transactional log files |
ZOOKEEPER-684 | Race in LENonTerminateTest |
ZOOKEEPER-687 | LENonterminatetest fails on some machines. |
ZOOKEEPER-688 | explain session expiration better in the docs & faq |
ZOOKEEPER-689 | release build broken - ivysettings.xml not copied during "package" |
ZOOKEEPER-691 | Interface changed for NIOServer.Factory |
ZOOKEEPER-693 | TestObserver stuck in tight notification loop in FLE |
ZOOKEEPER-696 | NPE in the hudson logs, seems nioservercnxn closed twice |
ZOOKEEPER-698 | intermittent JMX test failures due to not verifying QuorumPeer shutdown |
ZOOKEEPER-708 | zkpython failing due to undefined symbol deallocate_String_vector |
ZOOKEEPER-709 | bookkeeper build failing with missing factory |
ZOOKEEPER-710 | permanent ZSESSIONMOVED error after client app reconnects to zookeeper cluster |
ZOOKEEPER-718 | the fatjar is missing libraries |
Improvement | |
ZOOKEEPER-62 | Generally improve logging to enable debuggability in the field. |
ZOOKEEPER-152 | Improve unit tests for leader election |
ZOOKEEPER-158 | Leader and followers increase cpu utilization upon loss of a follower |
ZOOKEEPER-283 | Add more javadocs to BookKeeper |
ZOOKEEPER-311 | handle small path lengths in zoo_create() |
ZOOKEEPER-425 | Add OSGi metadata to zookeeper.jar |
ZOOKEEPER-426 | Windows versions of zookeeper scripts |
ZOOKEEPER-436 | Bookies should auto register to ZooKeeper |
ZOOKEEPER-447 | zkServer.sh doesn't allow different config files to be specified on the command line |
ZOOKEEPER-456 | CREATOR_ALL_ACL has unnecessary PERMS.ADMIN in the declartion. |
ZOOKEEPER-461 | Condense ledger configuration in ZooKeeper |
ZOOKEEPER-471 | update zkperl for 3.2.x branch |
ZOOKEEPER-472 | Making DataNode not instantiate a HashMap when the node is ephmeral |
ZOOKEEPER-473 | cleanup junit tests to eliminate false positives due to "socket reuse" and failure to close client |
ZOOKEEPER-476 | upgrade junit library from 4.4 to 4.6 |
ZOOKEEPER-486 | Improve bookie performance for large number of ledgers |
ZOOKEEPER-488 | to fix src/c/tests/zkServer.sh script to add clover in classpath |
ZOOKEEPER-506 | QuorumBase should use default leader election |
ZOOKEEPER-507 | BookKeeper client re-write |
ZOOKEEPER-529 | Use Ivy to pull dependencies and also generate pom |
ZOOKEEPER-543 | Tests for ZooKeeper examples |
ZOOKEEPER-544 | improve client testability - allow test client to access connected server location |
ZOOKEEPER-549 | Refactor Followers and related classes into a Peer->Follower hierarchy in preparation for Observers |
ZOOKEEPER-555 | Add stat information to GetChildrenResponse |
ZOOKEEPER-560 | inefficient request handling in NIOServerCnxn |
ZOOKEEPER-561 | inefficient buffer management, inefficient gc, in NIOServer request handling |
ZOOKEEPER-564 | Give more feedback on that current flow of events in java client logs |
ZOOKEEPER-565 | Revisit some java client log messages |
ZOOKEEPER-572 | add ability for operator to examine state of watches currently registered with a server |
ZOOKEEPER-579 | zkpython needs more test coverage for ACL code paths |
ZOOKEEPER-595 | A means of asking quorum what conifguration it is running with |
ZOOKEEPER-599 | Changes to FLE and QuorumCnxManager to support Observers |
ZOOKEEPER-601 | allow configuration of session timeout min/max bounds |
ZOOKEEPER-607 | improve bookkeeper overview |
ZOOKEEPER-608 | Receipt of ACK from observer should not be logged as ERROR |
ZOOKEEPER-612 | Make Zookeeper C client can be compiled by gcc of early version |
ZOOKEEPER-632 | add some documentation or FAQ on how to do rolling upgrade |
ZOOKEEPER-633 | Fetch netty using ivy for bookkeeper |
ZOOKEEPER-638 | upgrade ivy to 2.1.0 final from 2.1.0 release candidate |
ZOOKEEPER-640 | make build.xml more configurable to ease packaging for linux distros |
ZOOKEEPER-648 | Fix releaseaudit warning count to zero |
ZOOKEEPER-651 | Log exception trace in QuorumCnxManager.SendWorker |
ZOOKEEPER-655 | StringBuffer -> StringBuilder - conversion of references as necessary |
ZOOKEEPER-658 | update forrest docs - AuthFLE no longer supported |
ZOOKEEPER-664 | BookKeeper API documentation |
ZOOKEEPER-665 | Add BookKeeper streaming documentation |
ZOOKEEPER-672 | typo nits across documentation |
ZOOKEEPER-692 | upgrade junit to latest version (4.8.1) |
ZOOKEEPER-717 | add a preferred list to the instancemanager |
New Feature | |
ZOOKEEPER-368 | Observers: core functionality |
ZOOKEEPER-496 | zookeeper-tree utility for export, import and incremental updates |
ZOOKEEPER-539 | generate eclipse project via ant target |
ZOOKEEPER-550 | Java Queue Recipe |
ZOOKEEPER-635 | Server supports listening on a specified network address |
ZOOKEEPER-678 | Browser application to view and edit the contents of a zookeeper instance |
Task | |
ZOOKEEPER-224 | Deploy ZooKeeper jars/artifacts to a Maven Repository |
ZOOKEEPER-516 | add support for 10 minute test ie "pre-commit" test |
ZOOKEEPER-521 | include autotools (autoconf/automake) in NOTICE file |
Test | |
ZOOKEEPER-394 | Converting JUnit tests into TestNG controlled environment |
ZOOKEEPER-518 | DEBUG message for outstanding proposals in leader should be moved to trace. |