Release 3.4.6 - 2014-03-10 

Backward compatible changes:

BUGFIXES:

  ZOOKEEPER-1474. Cannot build Zookeeper with IBM Java: use of Sun
  MXBean classes (Adalberto Medeiros via phunt)

  ZOOKEEPER-1596. Zab1_0Test should ensure that the file is closed
  (Enis Soztutar via phunt)

  ZOOKEEPER-1513. "Unreasonable length" exception while starting a
  server (Skye W-M via phunt)

  ZOOKEEPER-1581. change copyright in notice to 2012 (breed via phunt)

  ZOOKEEPER-753. log4j dependency in the pom needs to have exclusion
  lists (Sean Busbey via phunt)

  ZOOKEEPER-1553. Findbugs configuration is missing some dependencies
  (Sean Busbey via phunt)

  ZOOKEEPER-1478. Small bug in QuorumTest.testFollowersStartAfterLeader( )
  (Alexander Shraer via fpj, breed, phunt)

  ZOOKEEPER-1387. Wrong epoch file created
  (Benjamin Busjaeger via breed, phunt)

  ZOOKEEPER-1578. org.apache.zookeeper.server.quorum.Zab1_0Test failed due to
  hard code with 33556 port. (Li Ping via mahadev)

  ZOOKEEPER-1334. Zookeeper 3.4.x is not OSGi compliant - MANIFEST.MF
  is flawed (Claus Ibsen via phunt)
  
  ZOOKEEPER-1535. ZK Shell/Cli re-executes last command on exit 
  (Edward Ribeiro via camille)

  ZOOKEEPER-1495. ZK client hangs when using a function not available
  on the server. (Skye W-M via phunt)

  ZOOKEEPER-1613. The documentation still points to 2008 in the
  copyright notice (Edward Ribeiro via phunt)

  ZOOKEEPER-1562. Memory leaks in zoo_multi API
  (Deepak Jagtap via phunt)

  ZOOKEEPER-1645. ZooKeeper OSGi package imports not complete
  (Arnoud Glimmerveen via phunt)

  ZOOKEEPER-1648. Fix WatcherTest in JDK7
  (Thawan Kooburat via phunt)

  ZOOKEEPER-1606. intermittent failures in ZkDatabaseCorruptionTest on
  jenkins (lixiaofeng via phunt)

  ZOOKEEPER-1647. OSGi package import/export changes not applied to
  bin-jar (Arnoud Glimmerveen via phunt)

  ZOOKEEPER-1633. Introduce a protocol version to connection initiation
  message (Alexander Shraer via michim)

  ZOOKEEPER-1697.  large snapshots can cause continuous quorum failure
  (phunt via fpj)

  ZOOKEEPER-1706. Typo in Double Barriers example (Jingguo Yao via fpj)
  
  ZOOKEEPER-1642. Leader Loading Database Twice (fpj via camille)
  
  ZOOKEEPER-1663. scripts don't work when path contains spaces (Amichai Rothman via camille)

  ZOOKEEPER-1714 perl client segfaults if ZOO_READ_ACL_UNSAFE constant is used
  (Botond Hejj via camille)
  
  ZOOKEEPER-1719. zkCli.sh, zkServer.sh and zkEnv.sh regression caused by ZOOKEEPER-1663
  (Marshall McMullen via camille)
  
  ZOOKEEPER-1702. ZooKeeper client may write operation packets before
  receiving successful response to connection request, can cause TCP
  RST (Chris Nauroth via phunt)

  ZOOKEEPER-1629. testTransactionLogCorruption occasionally fails. (shralex via camille)

  ZOOKEEPER-1731. Unsynchronized access to ServerCnxnFactory.connectionBeans results in 
  deadlock. (Dave Latham via camille)

  ZOOKEEPER-1713. wrong time calculation in zkfuse.cc (german via fpj)

  ZOOKEEPER-1379. 'printwatches, redo, history and connect '. client commands always print usage. This is not necessary (edward via fpj)

  ZOOKEEPER-1448: Node+Quota creation in transaction log can crash leader startup (Botond Hejj via fpj) 
 
  ZOOKEEPER-1664. Kerberos auth doesn't work with native platform GSS integration. (Boaz Kelmer via camille) 

  ZOOKEEPER-1750. Race condition producing NPE in NIOServerCnxn.toString
  (Rakesh R via michim)

  ZOOKEEPER-1754. Read-only server allows to create znode (Rakesh R via fpj)

  ZOOKEEPER-1751. ClientCnxn#run could miss the second ping or connection get
  dropped before a ping. (Jeffrey Zhong  via mahadev)

  ZOOKEEPER-1657. Increased CPU usage by unnecessary SASL checks (Philip K. Warren via fpj)

  ZOOKEEPER-1753. ClientCnxn is not properly releasing the resources, 
                  which are used to ping RwServer (Rakesh R via fpj)

  ZOOKEEPER-1096. Leader communication should listen on specified IP, not wildcard address (Jared Cantwell, German Blanco via fpj)

  ZOOKEEPER-87. Follower does not shut itself down if its too far behind the leader. (German Blanco via fpj)

  ZOOKEEPER-1603. StaticHostProviderTest testUpdateClientMigrateOrNot hangs (fpj)

  ZOOKEEPER-1696. Fail to run zookeeper client on Weblogic application server.
  (Jeffrey Zhong via mahadev)

  ZOOKEEPER-1770. NullPointerException in SnapshotFormatter
  (Germán Blanco via phunt)

  ZOOKEEPER-732. Improper translation of error into Python exception (Andrei Savu, Lei Zhang, fpj via fpj)

  ZOOKEEPER-1551. Observers ignore txns that come after snapshot and UPTODATE
  (thawan, fpj via thawan)

  ZOOKEEPER-1774. QuorumPeerMainTest fails consistently with
  "complains about host" assertion failure (phunt)

  ZOOKEEPER-877. zkpython does not work with python3.1
  (Daniel Enman via phunt)
  
  ZOOKEEPER-1624. PrepRequestProcessor abort multi-operation incorrectly. (thawan via camille)

  ZOOKEEPER-1610. Some classes are using == or != to compare
  Long/String objects instead of .equals() (Edward Ribeiro via phunt)

  ZOOKEEPER-1646. mt c client tests fail on Ubuntu Raring (phunt)

  ZOOKEEPER-1558. Leader should not snapshot uncommitted state (fpj)

  ZOOKEEPER-1732. ZooKeeper server unable to join established
  ensemble (German Blanco via fpj)

  ZOOKEEPER-1667. Watch event isn't handled correctly when 
  a client reestablish to a server (jacky007, fpj via fpj)

  ZOOKEEPER-1799. SaslAuthFailDesignatedClientTest.testAuth fails
  frequently on SUSE (Jeffrey Zhong via phunt)

  ZOOKEEPER-1557. jenkins jdk7 test failure in
  testBadSaslAuthNotifiesWatch (Eugene Koontz via phunt)

  ZOOKEEPER-1744. clientPortAddress breaks "zkServer.sh status"
  (Nick Ohanian via phunt)

  ZOOKEEPER-1798. Fix race condition in testNormalObserverRun
  (thawan, fpj via thawan)

  ZOOKEEPER-1808. Add version to FLE notifications for 3.4 branch (fpj)
  
  ZOOKEEPER-1812. ZooInspector reconnection always fails if first
  connection fails (Benjamin Jaton via phunt)

  ZOOKEEPER-1597. Windows build failing (michim via fpj)

  ZOOKEEPER-1817. Fix don't care for b3.4 (fpj)

  ZOOKEEPER-1653. zookeeper fails to start because of inconsistent
  epoch (michim via fpj)

  ZOOKEEPER-1821. very ugly warning when compiling load_gen.c
  (german blanco via fpj)

  ZOOKEEPER-1632. fix memory leaks in cli_st (fpj via michim)

  ZOOKEEPER-1459. Standalone ZooKeeperServer is not closing 
  the transaction log files on shutdown (Rakesh R via fpj)

  ZOOKEEPER-1019. zkfuse doesn't list dependency on boost in README
  (Raul Gutierrez Segales via michim)

  ZOOKEEPER-1834. Catch IOException in FileTxnLog (fpj via michim)
  
  ZOOKEEPER-1382. Zookeeper server holds onto dead/expired session ids in the watch data structures
  (Germán Blanco and Michael Morello via camille)

  ZOOKEEPER-1837. Fix JMXEnv checks (potential race conditions)
  (Germán Blanco via fpj)

  ZOOKEEPER-1839. Deadlock in NettyServerCnxn (Rakesh R via michim)

  ZOOKEEPER-1622. session ids will be negative in the year 2022
  (Eric Newton via phunt)

  ZOOKEEPER-1756. zookeeper_interest() in C client can return a timeval of 0
  (Eric Lindvall via michim)

  ZOOKEEPER-1388. Client side 'PathValidation' is missing for the
  multi-transaction api. (Rakesh R via marshallm, phunt)

  ZOOKEEPER-1841. problem in QuorumTest (Germán via fpj)

  ZOOKEEPER-1733 FLETest#testLE is flaky oo.l windows boxes 
  (michim, Jeffrey Zhong via fpj)

  ZOOKEEPER-1849. Need to properly tear down tests in various
  cases (Germán via fpj) 

  ZOOKEEPER-1179. NettyServerCnxn does not properly close
  socket on 4 letter word requests (Rakesh R, Germán Blanco
  via fpj)

  ZOOKEEPER-1852. ServerCnxnFactory instance is not properly
  cleanedup (Rakesh R via fpj)

  ZOOKEEPER-1414. QuorumPeerMainTest.testQuorum, testBadPackets are failing
  intermittently (Rakesh R via michim)

  ZOOKEEPER-1057. zookeeper c-client, connection to offline server fails to
  successfully fallback to second zk host (Germán Blanco via michim)

  ZOOKEEPER-1857. PrepRequestProcessotTest doesn't shutdown ZooKeeper server
  (Germán Blanco via michim)

  ZOOKEEPER-1238. when the linger time was changed for NIO the patch missed
  Netty (Skye Wanderman-Milne via fpj)

  ZOOKEEPER-1837. Fix JMXEnv checks (potential race conditions)
  (Germán Blanco via fpj)

  ZOOKEEPER-1858. JMX checks - potential race conditions while stopping
  and starting server (Rakesh R via fpj)

  ZOOKEEPER-1867. Bug in ZkDatabaseCorruptionTest (fpj)
 
  ZOOKEEPER-1872. QuorumPeer is not shutdown in few cases
  (Rakesh R via fpj)

  ZOOKEEPER-1573. Unable to load database due to missing parent node
  (Vinayakumar B via phunt, fpj)

  ZOOKEEPER-1811. The ZooKeeperSaslClient service name principal is
  hardcoded to "zookeeper" (Harsh J via phunt)

  ZOOKEEPER-1873. Unnecessarily InstanceNotFoundException is coming when
  unregister failed jmxbeans (Rakesh R via michim)

  ZOOKEEPER-1844. TruncateTest fails on windows (Rakesh R via fpj)
  
  ZOOKEEPER-1755. Concurrent operations of four letter 'dump' ephemeral 
  command and killSession causing NPE (Rakesh R via camille)

IMPROVEMENTS:

  ZOOKEEPER-1564. Allow JUnit test build with IBM Java
    (Paulo Ricardo Paz Vital via phunt)

  ZOOKEEPER-1598. Ability to support more digits in the version string
  (Raja Aluri via phunt)

  ZOOKEEPER-1583. Document maxClientCnxns in conf/zoo_sample.cfg
  (Christopher Tubbs via phunt)

  ZOOKEEPER-1584. Adding mvn-install target for deploying the
  zookeeper artifacts to .m2 repository (Ashish Singh via phunt)

  ZOOKEEPER-1324. Remove Duplicate NEWLEADER packets from the
  Leader to the Follower. (thawan, fpj via fpj)

  ZOOKEEPER-1615. minor typos in ZooKeeper Programmer's Guide web page
  (Evan Zacks via phunt)

  ZOOKEEPER-1552. Enable sync request processor in Observer (thawan, fpj)

  ZOOKEEPER-1758. Add documentation for zookeeper.observer.syncEnabled flag 
  (thawan, fpj via thawan)

  ZOOKEEPER-1771. ZooInspector authentication (Benjamin Jaton via phunt)

  ZOOKEEPER-1627. Add org.apache.zookeeper.common to exported packages
  in OSGi MANIFEST (Arnoud Glimmerveen via phunt)
  
  ZOOKEEPER-1666. Avoid Reverse DNS lookup if the hostname in 
  connection string is literal IP address. (George Cao via camille)
 
  ZOOKEEPER-1786. ZooKeeper data model documentation is incorrect
  (Niraj Tolia via fpj)

  ZOOKEEPER-1715. Upgrade netty version (Sean Bridges via michim)

  ZOOKEEPER-1430. add maven deploy support to the build
  (Giridharan Kesavan via phunt)

Release 3.4.5 - 2012-09-30

Backward compatible changes:

BUGFIXES:

  ZOOKEEPER-1376. zkServer.sh does not correctly check for
  $SERVER_JVMFLAGS (Skye W-M via henryr)

  ZOOKEEPER-1550. ZooKeeperSaslClient does not finish anonymous login on
  OpenJDK. (Eugene Koontz via mahadev)


Release 3.4.4 - 2012-09-17 

Backward compatible changes:

BUGFIXES:

  ZOOKEEPER-1466. QuorumCnxManager.shutdown missing synchronization.
  (Patrick Hunt via mahadev)

  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/" (Eugene Koontz via camille) 
  
  ZOOKEEPER-1354. AuthTest.testBadAuthThenSendOtherCommands fails
  intermittently (phunt via camille)
 
  ZOOKEEPER-1277. servers stop serving when lower 32bits of zxid roll
  over (phunt)

  ZOOKEEPER-1412. java client watches inconsistently triggered on
  reconnect (phunt)

  ZOOKEEPER-1344. ZooKeeper client multi-update command is not
  considering the Chroot request (Rakesh R via phunt)
  
  ZOOKEEPER-1307. zkCli.sh is exiting when an Invalid ACL exception is
  thrown from setACL command through client (Kavita Sharma via phunt)
  
  ZOOKEEPER-1390. some expensive debug code not protected by a check
  for debug (breed via camille)
  
  ZOOKEEPER-1406. dpkg init scripts don't restart - missing
  check_priv_sep_dir (Chris Beauchamp via phunt)
   
  ZOOKEEPER-1403. zkCli.sh script quoting issue (James Page via phunt)
   
  ZOOKEEPER-1384. test-cppunit overrides LD_LIBRARY_PATH and fails if
  gcc is in non-standard location (Jay Shrauner via phunt)
  
  ZOOKEEPER-1419. Leader election never settles for a 5-node cluster
  (flavio via camille)
  
  ZOOKEEPER-1256. ClientPortBindTest is failing on Mac OS X
  (Daniel Gómez Ferro via phunt)

  ZOOKEEPER-1433. improve ZxidRolloverTest (test seems flakey) (phunt via henryr)

  ZOOKEEPER-1395. node-watcher double-free redux (Mike Lundy via henryr)
  
  ZOOKEEPER-1450. Backport of ZOOKEEPER-1294 fix to 3.4 and 3.3 (Norman Bishop via camille)

  ZOOKEEPER-1048. addauth command does not work in cli_mt/cli_st (allengao via michim)

  ZOOKEEPER-1339. C client doesn't build with --enable-debug (Eric Liang via michim)
   
  ZOOKEEPER-1318. In Python binding, get_children (and get and exists, and probably others)
  with expired session doesn't raise exception properly (henryr via michim)

  ZOOKEEPER-1431. zkpython async calls leak memory (Kapil Thangavelu and Andre Cruz via henryr)

  ZOOKEEPER-1163. Memory leak in zk_hashtable.c:do_insert_watcher_object()
  (Anupam Chanda via michim)

  ZOOKEEPER-1490. If the configured log directory does not exist
    zookeeper will not start. Better to create the directory and start
    (suja s via phunt)

  ZOOKEEPER-1210. Can't build ZooKeeper RPM with RPM >= 4.6.0 (i.e. on
    RHEL 6 and Fedora >= 10) (Tadeusz Andrzej Kadłubowski via phunt)

  ZOOKEEPER-1236. Security uses proprietary Sun APIs
    (Adalberto Medeiros via phunt)

  ZOOKEEPER-1471. Jute generates invalid C++ code
    (Michi Mutsuzaki via phunt)
  
  ZOOKEEPER-1465. Cluster availability following new leader election 
    takes a long time with large datasets - is correlated to dataset size
    (fpj and Thawan Kooburat via camille)

  ZOOKEEPER-1427. Writing to local files is done non-atomically (phunt)

  ZOOKEEPER-1489. Data loss after truncate on transaction log (phunt)

  ZOOKEEPER-1521. LearnerHandler initLimit/syncLimit problems
    specifying follower socket timeout limits (phunt)

  ZOOKEEPER-1493. C Client: zookeeper_process doesn't invoke
    completion callback if zookeeper_close has been called
    (Michi Mutsuzaki via phunt and mahadev)

  ZOOKEEPER-1522. intermittent failures in Zab test due to NPE in
    recursiveDelete test function (phunt via flavio)

  ZOOKEEPER-1514. FastLeaderElection - leader ignores the round
  information when joining a quorum (flavio via henryr)

  ZOOKEEPER-1536 c client : memory leak in winport.c (brooklin via michim)

  ZOOKEEPER-1481 allow the C cli to run exists with a watcher (phunt via michim)

  ZOOKEEPER-1380. zkperl: _zk_release_watch doesn't remove items properly from
  the watch list. (Botond Hejj via mahadev)

  ZOOKEEPER-1501. Nagios plugin always returns OK when it cannot connect to
  zookeeper. (Brian Sutherland via mahadev)

  ZOOKEEPER-1494. C client: socket leak after receive timeout in
  zookeeper_interest() (Michi Mutsuzaki via mahadev)

  ZOOKEEPER-1483. Fix leader election recipe documentation. (Michi Mutsuzaki
  via mahadev)

  ZOOKEEPER-1496. Ephemeral node not getting cleared even after client has
  exited (Rakesh R via mahadev)

IMPROVEMENTS:

  ZOOKEEPER-1389. it would be nice if start-foreground used exec $JAVA
  in order to get rid of the intermediate shell process
  (Roman Shaposhnik via phunt)

  ZOOKEEPER-1377. add support for dumping a snapshot file content (similar to LogFormatter). (phunt via camille)

  ZOOKEEPER-1454. Document how to run autoreconf if cppunit is
    installed in a non-standard directory (Michi Mutsuzaki via phunt)

  ZOOKEEPER-1503. remove redundant JAAS configuration code in SaslAuthTest and
    SaslAuthFailTest (Eugene Koontz via phunt)

  ZOOKEEPER-1510. Should not log SASL errors for non-secure usage
    (Todd Lipcon via phunt)

  ZOOKEEPER-1497. Allow server-side SASL login with JAAS configuration
  to be programmatically set (rather than only by reading JAAS
  configuration file) (Matteo Bertozzi via phunt)
 
  ZOOKEEPER-1437. Client uses session before SASL authentication complete.
  (Eugene Koontz via mahadev)

  ZOOKEEPER-1361. Leader.lead iterates over 'learners' set without proper
  synchronisation. (Henry Robinson via mahadev)

Release 3.4.3 - 2012-02-06

Backward compatible changes:

BUGFIXES: 

  ZOOKEEPER-1089. zkServer.sh status does not work due to invalid
  option of nc (Roman Shaposhnik via phunt)

  ZOOKEEPER-1345. Add a .gitignore file with general exclusions and
  Eclipse project files excluded (Harsh J via phunt)

  ZOOKEEPER-1343. getEpochToPropose should check if lastAcceptedEpoch is greater or equal than epoch (fpj via breed)
  
  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 (Alex Shraer via camille)
  
  ZOOKEEPER-1351. invalid test verification in MultiTransactionTest (phunt via camille)

  ZOOKEEPER-973. bind() could fail on Leader because it does not
  setReuseAddress on its ServerSocket (Harsh J via phunt)

  ZOOKEEPER-1367. Data inconsistencies and unexpired ephemeral nodes after cluster restart.
  (Bejamin Reed via mahadev)

  ZOOKEEPER-1353. C client test suite fails consistently.
  (Clint Byrum via mahadev)

  ZOOKEEPER-1373. Hardcoded SASL login context name clashes with Hadoop security 
  configuration override. (Eugene Koontz and Thomas Weise via mahadev)

  ZOOKEEPER-1352. server.InvalidSnapshotTest is using connection timeouts that 
  are too short. (phunt via mahadev)

  ZOOKEEPER-1336. javadoc for multi is confusing, references functionality that doesn't 
  seem to exist (phunt via mahadev)

  ZOOKEEPER-1340. multi problem - typical user operations are 
  generating ERROR level messages in the server (phunt via mahadev)

  ZOOKEEPER-1374. C client multi-threaded test suite fails to 
  compile on ARM architectures. (James Page via mahadev)

  ZOOKEEPER-1337. multi's "Transaction" class is missing tests.
  (phunt and camille via mahadev)

  ZOOKEEPER-1338. class cast exceptions may be thrown by multi 
  ErrorResult class (invalid equals) (phunt via mahadev)

IMPROVEMENTS:
 
  ZOOKEEPER-1322. Cleanup/fix logging in Quorum code. (phunt via mahadev)
 
  ZOOKEEPER-1327. there are still remnants of hadoop urls.
  (Harsh J via mahadev)


Release 3.4.2 - 2011-12-21

Backward compatible changes:

BUGFIXES: 

  ZOOKEEPER-1323. c client doesn't compile on freebsd
  (michi mutsuzaki via phunt)

  ZOOKEEPER-1333. NPE in FileTxnSnapLog when restarting a cluster.
  (Patrick Hunt and Andrew Mc Nair via mahadev)

Release 3.4.1 - 2011-12-12

Backward compatible changes:

BUGFIXES: 

  ZOOKEEPER-1311. ZooKeeper test jar is broken (Ivan Kelly via phunt)

  ZOOKEEPER-1305. zookeeper.c:prepend_string func can dereference null ptr.
  (Daniel Lescohier via mahadev)

  ZOOKEEPER-1316. zookeeper_init leaks memory if chroot is just '/'.
  (Akira Kitada via mahadev)

  ZOOKEEPER-1315. zookeeper_init always reports sessionPasswd=<hidden>.
  (Akira Kitada via mahadev)

  ZOOKEEPER-1317. Possible segfault in zookeeper_init. 
  (Akira Kitada via mahadev)

  ZOOKEEPER-1319. Missing data after restarting+expanding a cluster.
  (Patrick Hunt and Ben Reed via mahadev)

  ZOOKEEPER-1269. Multi deserialization issues (Camille Fournier via 
  mahadev)

Release 3.4.0 - 2011-10-25

Non-backward compatible changes:

BUGFIXES: 

Backward compatible changes:

BUGFIXES: 

  ZOOKEEPER-735. cppunit test testipv6 assumes that the machine is ipv6
  enabled. (mahadev)

  ZOOKEEPER-720. Use zookeeper-{version}-sources.jar instead of
  zookeeper-{version}-src.jar to publish sources in the Maven repository
  (paolo via phunt)

  ZOOKEEPER-722. zkServer.sh uses sh's builtin echo on BSD, behaves
  incorrectly. (Ivan Kelly via phunt)

  ZOOKEEPER-741. root level create on REST proxy fails (phunt)

  ZOOKEEPER-631. zkpython's C code could do with a style clean-up
  (henry robinson via phunt)
  
  ZOOKEEPER-746. learner outputs session id to log in dec (phunt via
  henryr)

  ZOOKEEPER-738. zookeeper.jute.h fails to compile with -pedantic
  (Jozef Hatala via phunt)

  ZOOKEEPER-734. QuorumPeerTestBase.java and ZooKeeperServerMainTest.java
  do not handle windows path correctly (Vishal K via phunt)

  ZOOKEEPER-754. numerous misspellings "succesfully"
  (Andrei Savu via phunt)

  ZOOKEEPER-749. OSGi metadata not included in binary only jar (phunt
  via henryr)

  ZOOKEEPER-750. move maven artifacts into "dist-maven" subdir of the
  release (package target) (phunt via henryr)

  ZOOKEEPER-758. zkpython segfaults on invalid acl with missing key
  (Kapil Thangavelu via henryr)

  ZOOKEEPER-737. some 4 letter words may fail with netcat (nc). (mahadev)

  ZOOKEEPER-764. Observer elected leader due to inconsistent voting view 
  (henry via mahadev)

  ZOOKEEPER-763. Deadlock on close w/ zkpython / c client
  (henry via phunt)

  ZOOKEEPER-774. Recipes tests are slightly outdated: they do not compile
  against JUnit 4.8 (Sergey Doroshenko via phunt)

  ZOOKEEPER-772. zkpython segfaults when watcher from async get children is
  invoked. (henry via phunt)

  ZOOKEEPER-636. configure.ac has instructions which override the contents of
  CFLAGS and CXXFLAGS. (Maxim P. Dementiev via phunt)

  ZOOKEEPER-796. zkServer.sh should support an external PIDFILE variable
  (Alex Newman via phunt)

  ZOOKEEPER-719. Add throttling to BookKeeper client (fpj via breed)

  ZOOKEEPER-814. monitoring scripts are missing apache license headers
  (andrei savu via mahadev)

  ZOOKEEPER-783. committedLog in ZKDatabase is not properly synchronized
  (henry via mahadev) 

  ZOOKEEPER-790.  Last processed zxid set prematurely while establishing 
  leadership (flavio via mahadev)

  ZOOKEEPER-795. eventThread isn't shutdown after a connection 
  "session expired" event coming (Sergey Doroshenko and Ben via mahadev)

  ZOOKEEPER-792. zkpython memory leak (Lei Zhang via henryr)

  ZOOKEEPER-854. BookKeeper does not compile due to changes in the ZooKeeper 
  code (Flavio via mahadev)

  ZOOKEEPER-861. Missing the test SSL certificate used for running junit tests.
  (erwin tam via mahadev)

  ZOOKEEPER-867. ClientTest is failing on hudson - fd cleanup (phunt)

  ZOOKEEPER-785. Zookeeper 3.3.1 shouldn't infinite loop if someone creates a
  server.0 line (phunt and Andrei Savu via breed)

  ZOOKEEPER-785. Zookeeper 3.3.1 shouldn't infinite loop if someone creates a
  server.0 line (part 2) (phunt)

  ZOOKEEPER-870. Zookeeper trunk build broken. (mahadev via phunt)

  ZOOKEEPER-831. BookKeeper: Throttling improved for reads (breed via fpj)

  ZOOKEEPER-846. zookeeper client doesn't shut down cleanly on the close call
  (phunt)
  
  ZOOKEEPER-804. c unit tests failing due to "assertion cptr failed" (michi
  mutsuzaki via mahadev)

  ZOOKEEPER-844. handle auth failure in java client
  (Camille Fournier via phunt)

  ZOOKEEPER-822. Leader election taking a long time to complete
  (Vishal K via phunt)

  ZOOKEEPER-866. Hedwig Server stays in "disconnected" state when
  connection to ZK dies but gets reconnected (erwin tam via breed)

  ZOOKEEPER-881. ZooKeeperServer.loadData loads database twice
  (jared cantwell via breed)

  ZOOKEEPER-855. clientPortBindAddress should be clientPortAddress
  (Jared Cantwell via fpj)

  ZOOKEEPER-888. c-client / zkpython: Double free corruption on
  node watcher (Austin Shoemaker via henryr)

  ZOOKEEPER-893. ZooKeeper high cpu usage when invalid requests
  (Thijs Terlouw via phunt)

  ZOOKEEPER-804. c unit tests failing due to "assertion cptr failed"
  (second try - Jared Cantwell via phunt)

  ZOOKEEPER-820. update c unit tests to ensure "zombie" java server
  processes don't cause failure (Michi Mutsuzaki via phunt)

  ZOOKEEPER-794. Callbacks are not invoked when the client is closed
  (Alexis Midon via phunt)

  ZOOKEEPER-800. zoo_add_auth returns ZOK if zookeeper handle is in
  ZOO_CLOSED_STATE (michi mutsuzaki via mahadev konar)

  ZOOKEEPER-904. super digest is not actually acting as a full superuser
  (Camille Fournier via mahadev)

  ZOOKEEPER-897. C Client seg faults during close (jared cantwell via mahadev)

  ZOOKEEPER-898. C Client might not cleanup correctly during close 
  (jared cantwell via mahadev)

  ZOOKEEPER-907. Spurious "KeeperErrorCode = Session moved" messages (vishal k via breed)

  ZOOKEEPER-884. Remove LedgerSequence references from BookKeeper documentation and comments in tests (fpj via breed)

  ZOOKEEPER-916. Problem receiving messages from subscribed channels in c++ client (ivan via breed)

  ZOOKEEPER-930. Hedwig c++ client uses a non thread safe logging library (ivan via breed)

  ZOOKEEPER-900. FLE implementation should be improved to use non-blocking sockets (vishal via fpj)

  ZOOKEEPER-937. test -e not available on solaris /bin/sh (Erik Hetzner via mahadev)

  ZOOKEEPER-905. enhance zkServer.sh for easier zookeeper automation-izing (Nicholas Harteau via mahadev)

  ZOOKEEPER-913. Version parser fails to parse "3.3.2-dev" from build.xml (Anthony Urso and phunt via breed)

  ZOOKEEPER-957. zkCleanup.sh doesn't do anything (Ted Dunning via mahadev)

  ZOOKEEPER-958. Flag to turn off autoconsume in hedwig c++ client (Ivan Kelly
  via mahadev)

  ZOOKEEPER-882. Startup loads last transaction from snapshot (j:ared via fpj)

  ZOOKEEPER-962. leader/follower coherence issue when follower is receiving a DIFF
  (camille fournier via breed)

  ZOOKEEPER-902. Fix findbug issue in trunk "Malicious code vulnerability"
  (flavio and phunt via phunt)

  ZOOKEEPER-985. Test BookieRecoveryTest fails on trunk. (fpj via breed)

  ZOOKEEPER-983. running zkServer.sh start remotely using ssh hangs (phunt)

  ZOOKEEPER-976. ZooKeeper startup script doesn't use JAVA_HOME (phunt)

  ZOOKEEPER-994 "eclipse" target in the build script doesnot include
  libraray required for test classes in the classpath (MIS via phunt) 

  ZOOKEEPER-1013 zkServer.sh usage message should mention all startup options
  (eugene koontz via mahadev)

  ZOOKEEPER-1007. iarchive leak in C client (jeremy stribling via mahadev)

  ZOOKEEPER-993. Code improvements (MIS via fpj)

  ZOOKEEPER-1012. support distinct JVMFLAGS for zookeeper server in zkServer.sh 
  and zookeeper client in zkCli.sh (Eugene Koontz via breed)

  ZOOKEEPER-880. QuorumCnxManager$SendWorker grows without bounds (vishal via breed)

  ZOOKEEPER-1018. The connection permutation in get_addrs uses a weak and inefficient 
  shuffle (Stephen Tyree via breed)
 
  ZOOKEEPER-1028. In python bindings, zookeeper.set2() should return a stat dict but 
  instead returns None. (Chris Medaglia and Ivan Kelly via mahadev)

  ZOOKEEPER-975. new peer goes in LEADING state even if ensemble is online. (vishal via fpj)

  ZOOKEEPER-1049. Session expire/close flooding renders heartbeats to delay significantly. 
  (chang song via mahadev)
  
  ZOOKEEPER-1033. c client should install includes into INCDIR/zookeeper, not INCDIR/c-client-src
  (Nicholas Harteau via mahadev)

  ZOOKEEPER-1061. Zookeeper stop fails if start called twice. (Ted Dunning via mahadev)

  ZOOKEEPER-1059. stat command isses on non-existing node causes NPE. (Bhallamudi Kamesh via mahadev)
  
  ZOOKEEPER-1058. fix typo in opToString for getData. (camille)
  
  ZOOKEEPER-1046. Creating a new sequential node results in a ZNODEEXISTS error. (Vishal K via camille) 
  
  ZOOKEEPER-1069. Calling shutdown() on a QuorumPeer too quickly can lead to a corrupt log. (Vishal K via camille) 

  ZOOKEEPER-1083. Javadoc for WatchedEvent not being generated. (Ivan Kelly via michim)

  ZOOKEEPER-1086. zookeeper test jar has non mavenised dependency. (Ivan Kelly via michim)

  ZOOKEEPER-335. zookeeper servers should commit the new leader txn to their logs. (breed)

  ZOOKEEPER-1081. modify leader/follower code to correctly deal with new leader (breed)

  ZOOKEEPER-1082. modify leader election to correctly take into account current epoch (fpj via breed)

  ZOOKEEPER-1060. QuorumPeer takes a long time to shutdown (Vishal via fpj)

  ZOOKEEPER-1087. ForceSync VM arguement not working when set to "no" (Nate Putnam via breed)

  ZOOKEEPER-1068. Documentation and default config suggest incorrect
  location for Zookeeper state (Roman Shaposhnik via phunt)

  ZOOKEEPER-1103. In QuorumTest, use the same "for ( .. try { break }
  catch { } )" pattern in testFollowersStartAfterLeaders as in
  testSessionMove. (Eugene Koontz via phunt)
  ZOOKEEPER-1046. Creating a new sequential node results in a ZNODEEXISTS error. (breed via camille)

  ZOOKEEPER-1097. Quota is not correctly rehydrated on snapshot reload (camille via henryr)
  
  ZOOKEEPER-1046. Small fix: Creating a new sequential node results in a ZNODEEXISTS error. (Vishal K via camille)

  ZOOKEEPER-782. Incorrect C API documentation for Watches. (mahadev via breed)

  ZOOKEEPER-1063. Dubious synchronization in Zookeeper and ClientCnxnSocketNIO classes (Yanick Dufresne via breed)

  ZOOKEEPER-1124. Multiop submitted to non-leader always fails due to timeout (Marshall McMullen via breed)

  ZOOKEEPER-1111. JMXEnv uses System.err instead of logging
  (Ivan Kelly via phunt)
  
  ZOOKEEPER-1027. chroot not transparent in zoo_create() (Thijs Terlouw via
  mahadev)
  
  ZOOKEEPER-1109. Zookeeper service is down when SyncRequestProcessor meets
  any exception. (Laxman via mahadev)

  ZOOKEEPER-1134. ClientCnxnSocket string comparison using == rather than equals.
  (phunt via mahadev) 

  ZOOKEEPER-1119. zkServer stop command incorrectly reading comment lines in
  zoo.cfg (phunt via mahadev)

  ZOOKEEPER-1090. Race condition while taking snapshot can lead to not restoring data tree correctly (Vishal K via breed)

  ZOOKEEPER-1138. release audit failing for a number of new files. (phunt via mahadev) 

  ZOOKEEPER-1139. jenkins is reporting two warnings, fix these (phunt via mahadev)

  ZOOKEEPER-1142. incorrect stat output (phunt via mahadev)
  
  ZOOKEEPER-1144. ZooKeeperServer not starting on leader due to a race condition (Vishal K via camille)

  ZOOKEEPER-839. deleteRecursive does not belong to the other methods.
   (mahadev)
 
  ZOOKEEPER-1146. significant regression in client (c/python) performance.
  (phunt via mahadev)

  ZOOKEEPER-1150. fix for this patch to compile on windows. (dheeraj
  via mahadev)

  ZOOKEEPER-1055. check for duplicate ACLs in addACL() and create().
  (Eugene Koontz via mahadev)

  ZOOKEEPER-1141. zkpython fails tests under python 2.4. (phunt via mahadev)
  
  ZOOKEEPER-1025. zkCli is overly sensitive to to spaces. (Laxman via camille)

  ZOOKEEPER-1117. zookeeper 3.3.3 fails to build with gcc >= 4.6.1 on
  Debian/Ubuntu (James Page via mahadev)

  ZOOKEEPER-1140. server shutdown is not stopping threads. (laxman via mahadev)

  ZOOKEEPER-1051. SIGPIPE in Zookeeper 0.3.* when send'ing after 
  cluster disconnection (Stephen Tyree via mahadev)

  ZOOKEEPER-1168. ZooKeeper fails to run with IKVM (Andrew Finnell via phunt)

  ZOOKEEPER-1165. better eclipse support in tests (Warren Turkal via phunt)
  
  ZOOKEEPER-1154. Data inconsistency when the node(s) with the highest zxid is not present at the time of leader election. (Vishal Kathuria via camille)
  
  ZOOKEEPER-1156. Log truncation truncating log too much - can cause data loss. (Vishal Kathuria via camille)

  ZOOKEEPER-1160. test timeouts are too small (breed via phunt)

  ZOOKEEPER-731. Zookeeper#delete , #create - async versions miss a verb in the javadoc. (Thomas Koch via camille)

  ZOOKEEPER-1108. Various bugs in zoo_add_auth in C. (Dheeraj Agrawal via mahadev)
 
  ZOOKEEPER-981. Hang in zookeeper_close() in the multi-threaded C client. 
  (Jeremy Stribling via mahadev) 

  ZOOKEEPER-1125. Intermittent java core test failures. (Vishar Kher via mahadev)

  ZOOKEEPER-961. Watch recovery after disconnection when connection string contains a prefix.
  (Matthias Spycher via mahadev)

  ZOOKEEPER-1136. NEW_LEADER should be queued not sent to match the Zab 1.0 protocol 
  on the twiki (breed via mahadev)

  ZOOKEEPER-1189. For an invalid snapshot file(less than 10bytes size) RandomAccessFile 
  stream is leaking. (Rakesh R via mahadev)

  ZOOKEEPER-1185. Send AuthFailed event to client if SASL authentication fails.
  (Eugene Kuntz via mahadev)
  
  ZOOKEEPER-1174. FD leak when network unreachable (Ted Dunning via camille)

  ZOOKEEPER-1203. Zookeeper systest is missing Junit Classes
  (Prashant Gokhale via phunt)

  ZOOKEEPER-1206. Sequential node creation does not use always use
  digits in node name given certain Locales. (Mark Miller via phunt)

  ZOOKEEPER-1212. zkServer.sh stop action is not conformat with LSB
  para 20.2 Init Script Actions (Roman Shaposhnik via phunt)

  ZOOKEEPER-1190. ant package is not including many of the bin scripts
  in the package (zkServer.sh for example) (Eric Yang via phunt)

  ZOOKEEPER-1181. Fix problems with Kerberos TGT renewal.
  (Eugene Koontz via mahadev)
  
  ZOOKEEPER-1264. FollowerResyncConcurrencyTest failing intermittently. (phunt via camille)

  ZOOKEEPER-1268. problems with read only mode, intermittent test failures 
  and ERRORs in the log. (phunt via mahadev)
  
  ZOOKEEPER-1246. Dead code in PrepRequestProcessor catch Exception block. (camille)

  ZOOKEEPER-1271. testEarlyLeaderAbandonment failing on solaris -
  clients not retrying connection (mahadev via phunt)

  ZOOKEEPER-1192. Leader.waitForEpochAck() checks waitingForNewEpoch instead 
  of checking electionFinished (Alexander Shraer via mahadev)

  ZOOKEEPER-1270. testEarlyLeaderAbandonment failing intermittently, 
  quorum formed, no serving. (Flavio, Camille and Alexander Shraer via mahadev)
  
  ZOOKEEPER-1264. FollowerResyncConcurrencyTest failing 
  intermittently. (breed, camille and Alex Shraer via camille)
  
  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 (breed via camille)
  
  ZOOKEEPER-1291. AcceptedEpoch not updated at leader before it proposes the epoch to followers. (Alex Shraer via camille)

  ZOOKEEPER-1208. Ephemeral node not removed after the client session is long gone. (phunt via camille)
  
  ZOOKEEPER-1239. add logging/stats to identify fsync stalls. (phunt via camille)
  
  ZOOKEEPER-1299. Add winconfig.h file to ignore in release audit. (mahadev)

IMPROVEMENTS:
  ZOOKEEPER-724. Improve junit test integration - log harness information 
  (phunt via mahadev)

  ZOOKEEPER-766. forrest recipes docs don't mention the lock/queue recipe
  implementations available in the release (phunt via mahadev)

  ZOOKEEPER-769: Leader can treat observers as quorum members
  (Sergey Doroshenko via henryr)

  ZOOKEEPER-788: Add server id to message logs
  (Ivan Kelly via flavio)

  ZOOKEEPER-789. Improve FLE log messages (flavio via phunt)

  ZOOKEEPER-798. Fixup loggraph for FLE changes (Ivan Kelly via phunt)

  ZOOKEEPER-797 c client source with AI_ADDRCONFIG cannot be compiled with
  early glibc (Qian Ye via phunt)

  ZOOKEEPER-790. Last processed zxid set prematurely while establishing leadership
  (fpj via breed)

  ZOOKEEPER-821. Add ZooKeeper version information to zkpython (Rich
  Schumacher via mahadev)

  ZOOKEEPER-765.  Add python example script (Travis and Andrei via mahadev)

  ZOOKEEPER-809. Improved REST Interface (Andrei Savu via phunt)

  ZOOKEEPER-733. use netty to handle client connections (breed and phunt)

  ZOOKEEPER-853. Make zookeeper.is_unrecoverable return True or False
  in zkpython (Andrei Savu via henryr)

  ZOOKEEPER-864. Hedwig C++ client improvements (Ivan Kelly via breed)

  ZOOKEEPER-862. Hedwig created ledgers with hardcoded Bookkeeper ensemble and
  quorum size. Make these a server config parameter instead. (Erwin T via breed)

  ZOOKEEPER-926. Fork Hadoop common's test-patch.sh and modify for Zookeeper.
  (nigel)

  ZOOKEEPER-909. Extract NIO specific code from ClientCnxn
  (Thomas Koch via phunt)

  ZOOKEEPER-908. Remove code duplication and inconsistent naming in
  ClientCnxn.Packet creation (Thomas Koch via phunt)

  ZOOKEEPER-836. hostlist as string. (Thomas Koch via breed)

  ZOOKEEPER-921. zkPython incorrectly checks for existence of required
  ACL elements (Nicholas Knight via henryr)

  ZOOKEEPER-963. Make Forrest work with	JDK6 (Carl Steinbach via henryr)

  ZOOKEEPER-500. Async methods shouldnt throw exceptions (fpj via breed)

  ZOOKEEPER-977. passing null for path_buffer in zoo_create (breed via mahadev)

  ZOOKEEPER-465. Ledger size in bytes. (flavio via mahadev)

  ZOOKEEPER-980. allow configuration parameters for log4j.properties
  (phunt via mahadev)

  ZOOKEEPER-1042. Generate zookeeper test jar for maven installation
  (ivan kelly via breed)

  ZOOKEEPER-1030: Increase default for maxClientCnxns
  (Todd Lipcon via breed/mahadev/phunt)

  ZOOKEEPER-850: Switch from log4j to slf4j (Olaf Krische via michim)

  ZOOKEEPER-874. FileTxnSnapLog.restore does not call listener (diogo via fpj)

  ZOOKEEPER-1052. Findbugs warning in QuorumPeer.ResponderThread.run()  (fpj via michim)

  ZOOKEEPER-1094. Small improvements to LeaderElection and Vote classes (henryr via breed)

  ZOOKEEPER-1074. zkServer.sh is missing nohup/sleep, which are necessary 
  for remote invocation. (phunt via mahadev)

  ZOOKEEPER-965. Need a multi-update command to allow multiple znodes to be updated safely (Marshall McMullen and Ted Dunning via breed)

  ZOOKEEPER-1073. address a documentation issue in ZOOKEEPER-1030. (phunt via mahadev)

  ZOOKEEPER-1095. Simple leader election recipe
  (Eric Sammer via henry and phunt)

  ZOOKEEPER-1076. some quorum tests are unnecessarily extending QuorumBase (phunt via mahadev)

  ZOOKEEPER-1143. quorum send & recv workers are missing thread names
  (phunt via mahadev)
  
  ZOOKEEPER-1104. CLONE - In QuorumTest, use the same "for ( .. try { break }
  catch { } )" pattern in testFollowersStartAfterLeaders as in testSessionMove. 
  (Eugene Koontz via mahadev)
 
  ZOOKEEPER-1034. perl bindings should automatically find the zookeeper
  c-client headers (nicholas harteau via mahadev)

  ZOOKEEPER-1166. Please add a few svn:ignore properties (via phunt)

  ZOOKEEPER-1169. Fix compiler (eclipse) warnings in (generated) jute
  code (Thomas Koch via phunt)

  ZOOKEEPER-1171. fix build for java 7 (phunt via mahadev)

  ZOOKEEPER-1201. Clean SaslServerCallbackHandler.java. (Thomas Koch
  via mahadev) 
  
  ZOOKEEPER-1321. Add number of client connections metric in JMX and srvr. (Neha Narkhede via camille)

NEW FEATURES:
  ZOOKEEPER-729. Java client API to recursively delete a subtree.
  (Kay Kay via henry)

  ZOOKEEPER-747. Add C# generation to Jute (Eric Hauser via phunt)

  ZOOKEEPER-464. Need procedure to garbage collect ledgers
  (erwin via fpj)

  ZOOKEEPER-773. Log visualisation (Ivan Kelly via phunt)

  ZOOKEEPER-744. Add monitoring four-letter word (Andrei Savu via phunt)

  ZOOKEEPER-712. Bookie recovery. (erwin tam via breed)

  ZOOKEEPER-799. Add tools and recipes for monitoring as a contrib
  (Andrei Savu via phunt)

  ZOOKEEPER-808. Web-based Administrative Interface
  (Andrei Savu via phunt)

  ZOOKEEPER-775. A large scale pub/sub system (Erwin, Ivan and Ben via
  mahadev)

  ZOOKEEPER-1020. Implement function in C client to determine which host you're currently connected to. (stephen tyree via breed)

  ZOOKEEPER-1038. Move bookkeeper and hedwig code in subversion (breed)

  ZOOKEEPER-784. Server-side functionality for read-only mode (Sergey Doroshenko via henryr)

  ZOOKEEPER-992. MT Native Version of Windows C Client (Dheeraj Agrawal via michim)
 
  ZOOKEEPER-938. Support Kerberos authentication of clients. (Eugene Koontz
  via mahadev)

  ZOOKEEPER-1152. Exceptions thrown from handleAuthentication can cause buffer corruption issues in NIOServer. (camille via breed)

  ZOOKEEPER-999. Create an package integration project (Eric Yang via phunt)

  ZOOKEEPER-1107. automating log and snapshot cleaning (Laxman via phunt)

DEPRECATION:
  ZOOKEEPER-1153. Deprecate AuthFLE and LE. (Flavio Junqueira via mahadev)
  
Release 3.3.0 - 2010-03-24

Non-backward compatible changes:

BUGFIXES: 

Backward compatible changes:

BUGFIXES: 
  ZOOKEEPER-59. Synchronized block in NIOServerCnxn (fpj via breed)

  ZOOKEEPER-524. DBSizeTest is not really testing anything (breed)

  ZOOKEEPER-469. make sure CPPUNIT_CFLAGS isn't overwritten
  (chris via mahadev)

  ZOOKEEPER-471. update zkperl for 3.2.x branch (chris via mahadev)

  ZOOKEEPER-470. include unistd.h for sleep() in c tests (chris via mahadev)

  ZOOKEEPR-460. bad testRetry in cppunit tests (hudson failure)
  (giri via mahadev)

  ZOOKEEPER-467.  Change log level in BookieHandle. (flavio via mahadev)

  ZOOKEEPER-482. ignore sigpipe in testRetry to avoid silent immediate
  failure. (chris via mahadev)

  ZOOKEEPER-487. setdata on root (/) crashes the servers (mahadev via phunt)

  ZOOKEEPER-457. Make ZookeeperMain public, support for HBase (and other)
  embedded clients (ryan rawson via phunt)

  ZOOKEEPER-481. Add lastMessageSent to QuorumCnxManager. (flavio via mahadev)

  ZOOKEEPER-479.  QuorumHierarchical does not count groups correctly
  (flavio via mahadev)

  ZOOKEEPER-466. crash on zookeeper_close() when using auth with empty cert
  (Chris Darroch via phunt)

  ZOOKEEPER-480. FLE should perform leader check when node is not leading and
  add vote of follower (flavio via mahadev)

  ZOOKEEPER-491. Prevent zero-weight servers from being elected.
  (flavio via mahadev)

  ZOOKEEPER-447. zkServer.sh doesn't allow different config files to be
  specified on the command line (henry robinson via phunt)

  ZOOKEEPER-493. patch for command line setquota (steve bendiola via phunt)

  ZOOKEEPER-311. handle small path lengths in zoo_create()
  (chris barroch via breed)

  ZOOKEEPER-484.  Clients get SESSION MOVED exception when switching from
  follower to a leader. (mahadev)

  ZOOKEEPER-490. the java docs for session creation are misleading/incomplete
  (phunt)

  ZOOKEEPER-501. CnxManagerTest failed on hudson. (flavio via mahadev)
  
  ZOOKEEPER-499. electionAlg should default to FLE (3) - regression
  (phunt via mahadev) 

  ZOOKEEPER-477. zkCleanup.sh is flaky (fernando via mahadev)

  ZOOKEEPER-498. Unending Leader Elections : WAN configuration
  (flavio via mahadev)

  ZOOKEEPER-508. proposals and commits for DIFF and Truncate messages from the
  leader to the followers is buggy. (mahadev and ben via mahadev)

  ZOOKEEPER-518. DEBUG message for outstanding proposals in leader should be
   moved to trace. (phunt)

  ZOOKEEPER-533.  ant error running clean twice (phunt via mahadev)

  ZOOKEEPER-535. ivy task does not enjoy being defined twice 
  (build error) (phunt via mahadev)

  ZOOKEEPER-420. build/test should not require install in zkpython
  (henry robinson via phunt)

  ZOOKEEPER-538. zookeeper.async causes python to segfault
  (henry robinson via phunt)

  ZOOKEEPER-542. c-client can spin when server unresponsive (Christian
  Wiedmann via mahadev)

  ZOOKEEEPER-510. zkpython lumps all exceptions as IOError, needs specialized
  exceptions for KeeperException types (henry & pat via mahadev)

  ZOOKEEPER-541. zkpython limited to 256 handles (henry robinson via phunt)

  ZOOKEEPER-554. zkpython can segfault when statting a deleted node
  (henry robinson via phunt)

  ZOOKEEPER-512. FLE election fails to elect leader (flavio via mahadev)

  ZOOKEEPER-563. ant test for recipes is broken. (mahadev via phunt)
 
  ZOOKEEPER-562. c client can flood server with pings if tcp send queue
  filled. (ben reed via mahadev)

  ZOOKEEPER-537. The zookeeper jar includes the java source files
  (Thomas Dudziak via phunt)

  ZOOKEEPER-551. unnecessary SetWatches message on new session.
  (phunt via flavio)

  ZOOKEEPER-566. "reqs" four letter word (command port) returns no information
  (phunt via breed)

  ZOOKEEPER-567. javadoc for getchildren2 needs to mention "new in 3.3.0"
  (phunt via breed)

  ZOOKEEPER-547. Sanity check in QuorumCnxn Manager and quorum communication
  port. (mahadev via breed)

  ZOOKEEPER-532. java compiler should be target Java 1.5
  (hiram chirino and phunt via breed)

  ZOOKEEPER-519. Followerhandler should close the socket if it gets an exception
  on a write. (mahadev via breed)

  ZOOKEEPER-570. AsyncHammerTest is broken, callbacks need to validate rc
  parameter (phunt via breed)

  ZOOKEEPER-3. syncLimit has slightly different comments in the class header,
  and > inline with the variable. (mahadev via breed)

  ZOOKEEPER-576. docs need to be updated for session moved exception and how
  to handle it (breed via phunt)

  ZOOKEEPER-582. ZooKeeper can revert to old data when a snapshot is created
  outside of normal processing (ben reed and mahadev via mahadev)

  ZOOKEEPER-597. ASyncHammerTest is failing intermittently on hudson trunk
  (Patrick Hunt via mahadev)

  ZOOKEEPER-598. LearnerHandler is misspelt in the thread's constructor 
  (Henry Robinson via fpj)

  ZOOKEEPER-597. ASyncHammerTest is failing intermittently on hudson trunk (take 2)
  (breed)

  ZOOKEEPER-597. ASyncHammerTest is failing intermittently on hudson trunk
  (take 3) (phunt via mahadev)

  ZOOKEEPER-597. ASyncHammerTest is failing intermittently on hudson trunk
  (take 4) (breed via mahadev)

  ZOOKEEPER-597. ASyncHammerTest is failing intermittently on hudson trunk 
  (take 5) (mahadev)

  ZOOKEEPER-611.  hudson build failiure (mahadev)

  ZOOKEEPER-611. hudson build failure (take 2) (mahadev)

  ZOOKEEPER-615. wrong javadoc for create with a sequence flag
  (mahadev via breed)

  ZOOKEEPER-588. remove unnecessary/annoying log of tostring error in 
  Request.toString() (phunt via breed)

  ZOOKEEPER-587.  client should log timeout negotiated with server
  (phunt via mahadev)

  ZOOKEEPER-610. cleanup final fields, esp those used for locking
  (phunt via henry)

  ZOOKEEPER-614. Improper synchronisation in getClientCnxnCount
  (henry via mahadev) 

  ZOOKEEPER-609. ObserverTest failure "zk should not be connected expected not
  same" (henry robinson via phunt)

  ZOOKEEPER-630. Trunk has duplicate ObserverTest.java files
  (henry robinson via phunt)

  ZOOKEEPER-627. zkpython arbitrarily restricts the size of a 'get' to 512
  bytes (henry robinson via mahadev)

  ZOOKEEPER-534. The test target in contib/bookkeeper does not depend on jar
  target. (phunt via mahadev)

  ZOOKEEPER-623. ClientBase in bookkeeper.util requires junit (fpj via breed)

  ZOOKEEPER-600. TODO pondering about allocation behavior in zkpython may be
  removed (gustavo via mahadev)

  ZOOKEEPER-596. The last logged zxid calculated by zookeeper servers could
  cause problems in leader election if data gets corrupted. (mahadev)

  ZOOKEEPER-637. Trunk build is failing (fpj via breed)
  
  ZOOKEEPER-637. Trunk build is failing - second patch (breed via fpj)

  ZOOKEEPER-644. Nightly build failed on hudson. (pat via mahadev)

  ZOOKEEPER-651: Log exception trace in QuorumCnxManager.SendWorker 
  (flavio via henry)

  ZOOKEEPER-608. Receipt of ACK from observer should not be logged as ERROR
  (henry via mahadev)

  ZOOKEEPER-647. hudson failure in testLeaderShutdown (flavio via mahadev)

  ZOOKEEPER-574. the documentation on snapcount in the admin guide has the
  wrong default (phunt via mahadev)

  ZOOKEEPER-656. SledgeHammer test - thread.run() deprecated (kay kay via mahadev)

  ZOOKEEPER-413. two flaws need addressing in the c tests that can cause false
  positive failures (phunt via mahadev)

  ZOOKEEPER-495. c client logs an invalid error when zookeeper_init is called
  with chroot (phunt via mahadev)

  ZOOKEEPER-589. When create a znode, a NULL ACL parameter cannot be accepted.
  (breed via mahadev)

  ZOOKEEPER-673.  Fix observer documentation regarding leader election (flavio
  via mahadev)

  ZOOKEEPER-672. typo nits across documentation (Kay Kay via mahadev)

  ZOOKEEPER-668. Close method in LedgerInputStream doesn't do anything (flavio 
  via mahadev)

  ZOOKEEPER-569. Failure of elected leader can lead to never-ending leader 
  election (henry via flavio)

  ZOOKEEPER-669. watchedevent tostring should clearly output the
  state/type/path (phunt via mahadev)

  ZOOKEEPER-683. LogFormatter fails to parse transactional log files (phunt
  via mahadev)

  ZOOKEEPER-682. Event is not processed when the watcher is set to watch "/"
  if chrooted (Scott Wang via mahadev)

  ZOOKEEPER-687. LENonterminatetest fails on some machines. (mahadev)

  ZOOKEEPER-681. Minor doc issue re unset maxClientCnxns (phunt via mahadev)

  ZOOKEEPER-622. Test for pending watches in send_set_watches should be moved
  (ben and steven via mahadev)

  ZOOKEEPER-689.  release build broken - ivysettings.xml not copied during
  "package" (phunt via mahadev)

  ZOOKEEPER-59. Synchronized block in NIOServerCnxn (flavio via mahadev) 

  ZOOKEEPER-691. Interface changed for NIOServer.Factory (breed via mahadev)

  ZOOKEEPER-685.  Race in LENonTerminateTest (henry via breed)

  ZOOKEEPER-677. c client doesn't allow ipv6 numeric connect string
  (breed & phunt & mahadev via breed)

  ZOOKEEPER-693. TestObserver stuck in tight notification loop in FLE
  (flavio via phunt)

  ZOOKEEPER-696. NPE in the hudson logs, seems nioservercnxn closed twice 
  (phunt via mahadev)

  ZOOKEEPER-511. bad error handling in FollowerHandler.sendPackets
  (mahadev via flavio)

  ZOOKEEPER-604. zk needs to prevent export of any symbol not listed in their
  api (mahadev)

  ZOOKEEPER-121. SyncRequestProcessor is not closing log stream during
  shutdown (mahadev)

  ZOOKEEPER-698. intermittent JMX test failures due to not verifying QuorumPeer
  shutdown (phunt)

  ZOOKEEPER-121_2. SyncRequestProcessor is not closing log stream during
  shutdown (breed via mahadev)

  ZOOKEEPER-121_3. SyncRequestProcessor is not closing log stream during
  shutdown (mahadev via phunt)

  ZOOKEEPER-121_4. SyncRequestProcessor is not closing log stream during
  shutdown (mahadev via breed)

  ZOOKEEPER-586. c client does not compile under cygwin (phunt, mahadev, breed via breed)

  ZOOKEEPER-624. The C Client cause core dump when receive error data from
  Zookeeper Server (mahadev)

  ZOOKEEPER-591. The C Client cannot exit properly in some situation (mahadev)

  ZOOKEEPER-591_2. The C Client cannot exit properly in some situation
  (mahadev via phunt)

  ZOOKEEPER-709. bookkeeper build failing with missing factory
  (phunt)

  ZOOKEEPER-708. zkpython failing due to undefined symbol
  deallocate_String_vector (mahadev via phunt)

  ZOOKEEPER-436. Bookies should auto register to ZooKeeper (erwin tam & fpj via breed)

  ZOOKEEPER-710. permanent ZSESSIONMOVED error after client app reconnects to zookeeper cluster (phunt via breed)

  ZOOKEEPER-718. the fatjar is missing libraries (ben via mahadev)

  ZOOKEEPER-717.  add a preferred list to the instancemanager (breed via
  mahadev)

IMPROVEMENTS:
  ZOOKEEPER-473. cleanup junit tests to eliminate false positives due to
  "socket reuse" and failure to close client (phunt via mahadev)
 
  ZOOKEEPER-488. Fix zkServer.sh to add clover.jar in classpath
  (Giridharan Kesavan via gkesavan)  

  ZOOKEEPER-516. add support for 10 minute test ie "pre-commit" test (phunt)

  ZOOKEEPER-529. Use Ivy to pull dependencies and also generate pom (phunt
  via mahadev)
  
  ZOOKEEPER-530. Memory corruption: Zookeeper c client IPv6 implementation
  does not honor struct sockaddr_in6 size (isabel drost via mahadev)

  ZOOKEEPER-549. Refactor Followers and related classes into a Peer->Follower
  hierarchy in preparation for Observers (henry robinson via mahadev)

  ZOOKEEPER-472.  Making DataNode not instantiate a HashMap when the node is
  ephmeral (Erik Holstad via mahadev)

  ZOOKEEPER-425. Add OSGi metadata to zookeeper.jar (david bosschaert via breed)

  ZOOKEEPER-599. Changes to FLE and QuorumCnxManager to support Observers
  (fpj via breed)

  ZOOKEEPER-506. QuorumBase should use default leader election (fpj via breed)

  ZOOKEEPER-633. Fetch netty using ivy for bookkeeper (giri via fpj)

  ZOOKEEPER-544. improve client testability - allow test client to access
  connected server location (phunt via breed)

  ZOOKEEPER-426. Windows versions of zookeeper scripts
  (David Bosschaert via breed)

  ZOOKEEPER-638. upgrade ivy to 2.1.0 final from 2.1.0 release
  candidate (phunt via breed)

  ZOOKEEPER-648. Fix releaseaudit warning count to zero (phunt via henry)

  ZOOKEEPER-626. ensure the c/java cli's print xid/sessionid/etc... in hex
  (pat via mahadev)

  ZOOKEEPER-655. StringBuffer -> StringBuilder - conversion of references as
  necessary (Kay Kay via henry)

  ZOOKEEPER-612. Make Zookeeper C client can be compiled by gcc of early
  version (qian via mahadev)

  ZOOKEEPER-456. CREATOR_ALL_ACL has unnecessary PERMS.ADMIN in the
  declartion. (phunt via mahadev)

  ZOOKEEPER-593.  java client api does not allow client to access negotiated
  session timeout (phunt via mahadev)

  ZOOKEEPER-507. BookKeeper client re-write (Utkarsh and ben via mahadev)

  ZOOKEEPER-665. Add BookKeeper streaming documentation (flavio via mahadev)

  ZOOKEEPER-664.  BookKeeper API documentation (flavio via mahadev)

  ZOOKEEPER-607. improve bookkeeper overview (flavio via mahadev)

  ZOOKEEPER-485. Need ops documentation that details supervision of ZK server
  processes. (phunt via mahadev)

  ZOOKEEPER-658. update forrest docs - AuthFLE no longer supported (flavio via
  mahadev)

  ZOOKEEPER-640. make build.xml more configurable to ease packaging for linux
  distros (phunt via mahadev)

  ZOOKEEPER-579. zkpython needs more test coverage for ACL code paths (henry
  via mahadev)

  ZOOKEEPER-688. explain session expiration better in the docs & faq (phunt
  via mahadev)

  ZOOKEEPER-663. hudson failure in ZKDatabaseCorruptionTest (mahadev via henryr)

  ZOOKEEPER-543. Tests for ZooKeeper examples (steven via mahadev)

  ZOOKEEPER-692. upgrade junit to latest version (4.8.1) (phunt via mahadev)

  ZOOKEEPER-601. allow configuration of session timeout min/max bounds (phunt
  via mahadev)

NEW FEATURES:
  ZOOKEEPER-539. generate eclipse project via ant target. (phunt via mahadev)

  ZOOKEEPER-555. Add stat information to GetChildrenResponse. (Arni Jonson and
  phunt via mahadev)

  ZOOKEEPER-550.  Java Queue Recipe. (steven cheng via mahadev)

  ZOOKEEPER-368. Observers: core functionality (henry robinson via mahadev)

  ZOOKEEPER-496. zookeeper-tree utility for export, import and incremental
  updates (anirban roy via breed)

  ZOOKEEPER-572. add ability for operator to examine state of watches
  currently registered with a server (phunt via mahadev)

  ZOOKEEPER-678. Gui browser application to view and edit the contents of a
  zookeeper instance (Colin Goodheart-Smithe via phunt)

  ZOOKEEPER-635. Server supports listening on a specified network address (phunt via breed)
  
Release 3.2.0 - 2009-06-30

Non-backward compatible changes:

BUGFIXES: 
  ZOOKEEPER-444. perms definition for PERMS_ALL differ in C and java (mahadev)

Backward compatible changes:

BUGFIXES: 
  ZOOKEEPER-303. Bin scripts dont work on a Mac. (tom white via mahadev)
  
  ZOOKEEPER-330. zookeeper standalone server does not startup with just a
  port and datadir. (chris darroch and mahadev)

  ZOOKEEPER-319. add locking around auth info in zhandle_t.
  (chris darroch via mahadev)

  ZOOKEEPER-320. call auth completion in free_completions().
  (chris darroch via mahadev)

  ZOOKEEPER-334. bookkeeper benchmark (testclient.java) has compiling errors.
  (flavio and mahadev)

  ZOOKEEPER-281. autoreconf fails for /zookeeper-3.0.1/src/c/ (phunt)

  ZOOKEEPER-318. remove locking in zk_hashtable.c or add locking in
  collect_keys() (chris darroch via mahadev)

  ZOOKEEPER-333. helgrind thread issues identified in mt c client code
  (mahadev via phunt)

  ZOOKEEPER-309. core dump using zoo_get_acl() (mahadev via phunt)

  ZOOKEEPER-341.  regression in QuorumPeerMain, 
  tickTime from config is lost, cannot start quorum (phunt via mahadev)

  ZOOKEEPER-360. WeakHashMap in Bookie.java causes NPE (flavio via mahadev)
  
  ZOOKEEPER-362. Issues with FLENewEpochTest. (fix bug in Fast leader election)
  (flavio via mahadev)

  ZOOKEEPER-363. NPE when recovering ledger with no hint. (flavio via mahadev)

  ZOOKEEPER-370. Fix critical problems reported by findbugs.
  (flavio via mahadev)

  ZOOKEEPER-347. zkfuse uses non-standard String. (patrick hunt via mahadev)

  ZOOKEEPER-355. make validatePath non public in Zookeeper client api.
  (phunt via mahadev)

  ZOOKEEPER-374. Uninitialized struct variable in C causes warning which 
  is treated as an error (phunt via mahadev)

  ZOOKEEPER-337. improve logging in leader election lookForLeader method when
  address resolution fails (phunt via mahadev)

  ZOOKEEPER-367. RecoveryTest failure - "unreasonable length" IOException
  (mahadev via phunt)

  ZOOKEEPER-346. remove the kill command fro mthe client port.
  (phunt via mahadev)

  ZOOKEEPER-377. running ant cppunit tests, a failure still results in 
  BUILD SUCCESSFUL (giri via mahadev)

  ZOOKEEPER-382. zookeeper cpp tests fails on 64 bit machines with gcc 4.1.2
  (mahadev via phunt)

  ZOOKEEPER-365. javadoc is wrong for setLast in LedgerHandle
  (flavio via phunt)

  ZOOKEEPER-392. Change log4j properties in bookkeeper. (flavio via mahadev)

  ZOOKEEPER-400. Issues with procedure to close ledger. (flavio)

  ZOOKEEPER-405. nullpointer exception in zookeeper java shell.
  (mahadev via breed)

  ZOOKEEPER-410. address all findbugs warnings in client/server classes.
  (phunt via breed)
  
  ZOOKEEPER-403. cleanup javac compiler warnings. (flavio via breed)

  ZOOKEEPER-407. address all findbugs warnings in
  org.apache.zookeeper.server.quorum.** packages.
  (flavio via breed)

  ZOOKEEPER-411. Building zookeeper fails on RHEL 5 64 bit during test-cppunit
  (mahadev via phunt)

  ZOOKEEPER-402. zookeeper c library segfaults on data for a node in zookeeper
  being null. (mahadev via phunt)

  ZOOKEEPER-415. zookeeper c tests hang. (mahadev via phunt)

  ZOOKEEPER-385. crctest failed on hudson patch test (mahadev via phunt)

  ZOOKEEPER-192.  trailing whitespace in config file can cause number format
  exceptions (phunt via breed)
 
  ZOOKEEPER-409. address all findbugs warnings in jute related classes
  (phunt via breed)

  ZOOKEEPER-416. bookkeeper jar includes unnnecessary files.
  (flavio via mahadev)

  ZOOKEEPER-419. Reference counting bug in Python bindings causes abort errors
  (henry robinson via phunt)

  ZOOKEEPER-421. zkpython run_tests.sh is missing #!
  (henry robinson via phunt)

  ZOOKEEPER-406. address all findbugs warnings in persistence classes.
  (phunt et al via breed)

  ZOOKEEPER-435. allow "super" admin digest based auth to be configurable
  (phunt via breed)

  ZOOKEEPER-375. zoo_add_auth only retains most recent auth on re-sync.
  (mahadev)

  ZOOKEEPER-433.  getacl on root znode (/) fails. (phunt via mahadev)

  ZOOKEEPER-408. address all findbugs warnings in persistence classes.
  (phunt, mahadev, flavio via mahadev)

  ZOOKEEPER-427. ZooKeeper server unexpectedly high CPU utilisation
  (Sergey Zhuravlev via breed)

  ZOOKEEPER-446. some traces of the host auth scheme left (breed via mahadev)

  ZOOKEEPER-438.  addauth fails to register auth on new client that's not yet
  connected (breed via mahadev)

  ZOOKEEPER-448. png files do nto work with forrest. (mahadev)

  ZOOKEEPER-417. stray message problem when changing servers
  (breed via mahadev)

  ZOOKEEPER-449. sesssionmoved in java code and ZCLOSING in C have the same
  value. (mahadev)

  ZOOKEEPER-452. zookeeper performance graph should have percentage of reads
  rather than percentage of writes - zkperfRW-3.2.jpg (mahadev)

  ZOOKEEPER-450. emphemeral cleanup not happening with session timeout.
  (breed via mahadev)

  ZOOKEEPER-453. Worker is not removed in QuorumCnxManager upon crash.
  (flavio via mahadev)

  ZOOKEEPER-454. allow compilation with jdk1.5 (phunt)

  ZOOKEEPER-455. zookeeper c client crashes with chroot specified in the string.
  (phunt via mahadev)

  ZOOKEEPER-468. avoid compile warning in send_auth_info().

IMPROVEMENTS:
  ZOOKEEPER-308. improve the atomic broadcast performance 3x.
  (breed via mahadev)

  ZOOKEEPER-326. standalone server ignores tickTime configuration.
  (chris darroch via mahadev)

  ZOOKEEPER-279. Allow specialization of quorum config parsing
  (e.g. variable expansion in zoo.cfg) (Jean-Daniel Cryans via phunt)

  ZOOKEEPER-351. to run checkstyle (giridharan kesavan via mahadev)

  ZOOKEEPER-350. to run rats for releaseaudit.
  (giridharan kesavan via mahadev)

  ZOOKEEPER-352. to add standard ant targets required by test-patch.sh script
  (giridharan kesavan via mahadev)

  ZOOKEEPER-353. javadoc warnings needs to be fixed.
  (giridharan kesavan via mahadev) 

  ZOOKEEPER-354.  to fix javadoc warning in the source files. (mahadev)

  ZOOKEEPER-349. to automate patch testing. (giridharan kesavan via mahadev)

  ZOOKEEPER-288. Cleanup and fixes to BookKeeper (flavio via mahadev)
 
  ZOOKEEPER-305.  Replace timers with semaphores in FLENewEpochTest.
  (flavio via mahadev)

  ZOOKEEPER-60. Get cppunit tests running as part of Hudson CI.
  (girish via mahadev)

  ZOOKEEPER-343. add tests that specifically verify the zkmain and 
  qpmain classes. (phunt via mahadev)

  ZOOKEEPER-361. integrate cppunit testing as part of hudson patch process.
  (giri via mahadev)

  ZOOKEEPER-373. One thread per bookie (flavio via mahadev) 

  ZOOKEEPER-384. keeper exceptions missing path (phunt via mahadev)

  ZOOKEEPER-380. bookkeeper should have a streaming api so that its easier to
  store checpoints/snapshots in bookkeeper. (mahadev via flavio)
 
  ZOOKEEPER-389. add help/usage to the c shell cli.c (phunt via mahadev)

  ZOOKEEPER-376. ant test target re-compiles cppunit code every time
  (phunt via mahadev)

  ZOOKEEPER-391. bookeeper mainline code should not be calling
  printStackTrace. (flavio via mahadev) 
 
  ZOOKEEPER-300. zk jmx code is calling printStackTrace when creating bean
  name (should not be) (phunt via mahadev)

  ZOOKEEPER-94. JMX tests are needed to verify that the JMX MBeans work
  properly (phunt via mahadev)

  ZOOKEEPER-404. nightly build failed on hudson.
  (henry robinson and pat via mahadev)

  ZOOKEEPER-345. the CLIs should allow addAuth to be invoked.
  (henry robinson via breed)

  ZOOKEEPER-292. commit configure scripts (autotools) to svn for c projects and
  include in release (phunt via breed)

  ZOOKEEPER-383. Asynchronous version of createLedger(). (flavio via mahadev)

  ZOOKEEPER-358. Throw exception when ledger does not exist. (flavio via breed)

  ZOOKEEPER-431. Expose methods to ease ZK integration. (Jean-Daniel via breed)

  ZOOKEEPER-396. race condition in zookeeper client library between
  zookeeper_close and zoo_synchronous api. (mahadev)

  ZOOKEEPER-196. doxygen comment for state argument of watcher_fn typedef and
  implementation differ ("...one of the *_STATE constants, otherwise -1")
  (breed via mahadev)

  ZOOKEEPER-336. single bad client can cause server to stop accepting
  connections (henry robinson via breed)
 
  ZOOKEEPER-434. the java shell should indicate connection status on command
  prompt (henry robinson via breed)

  ZOOKEEPER-437. Variety of Documentation Updates (grant via mahadev)

  ZOOKEEPER-443. trace logging in watch notification not wrapped with
  istraceneabled - inefficient (pat via mahadev)

  ZOOKEEPER-432. Various improvements to zkpython bindings.
  (henry via mahadev)

  ZOOKEEPER-428. logging should be makred as warn rathen than error in
  NIOServerCnxn. (phunt via mahadev)

  ZOOKEEPER-422. Java CLI should support ephemeral and sequential node creation
  (henry via breed)

  ZOOKEEPER-315. add forrest docs for bookkeeper. (flavio via mahadev)

  ZOOKEEPER-329. document how to integrate 3rd party authentication into ZK
  server ACLs. (breed via mahadev)

  ZOOKEEPER-356. Masking bookie failure during writes to a ledger
  (flavio via breed)

  ZOOKEEPER-327. document effects (latency) of storing large amounts of data
  in znodes. (breed via mahadev)

  ZOOKEEPER-264. docs should include a state transition diagram for client
  state (breed via mahadev)

  ZOOKEEPER-440. update the performance documentation in forrest
  (breed via phunt)

NEW FEATURES:

  ZOOKEEPER-371. jdiff documentation included in build/release (giri via phunt)

  ZOOKEEPER-78. added a high level protocol/feature - for easy Leader
  Election or exclusive Write Lock creation (mahadev via phunt)

  ZOOKEEPER-29. Flexible quorums (flavio via mahadev) 

  ZOOKEEPER-378. perl binding for zookeeper (chris darroch via mahadev)

  ZOOKEEPER-386. improve java cli shell. (henry robinson via mahadev)

  ZOOKEEPER-36. REST access to ZooKeeper (phunt via mahadev)

  ZOOKEEPER-395. Python bindings. (henry robinson via mahadev)

  ZOOKEEPER-237. Add a Chroot request (phunt and mahadev)


Release 3.1.0 - 2009-02-06
  
Non-backward compatible changes:

BUGFIXES: 

  ZOOKEEPER-255. zoo_set() api does not return stat datastructure.
  (avery ching via mahadev)
  
  ZOOKEEPER-246. review error code definition in both source and docs. 
  (pat via mahadev)

Backward compatible changes:

BUGFIXES: 
  ZOOKEEPER-211. Not all Mock tests are working (ben via phunt)

  ZOOKEEPER-223. change default level in root logger to INFO.
  (pat via mahadev) 
   
  ZOOKEEPER-212. fix the snapshot to be asynchronous. (mahadev and ben)

  ZOOKEEPER-213. fix programmer guide C api docs to be  in sync with latest
  zookeeper.h (pat via mahadev)

  ZOOKEEPER-219. fix events.poll timeout in watcher test to be longer.
  (pat via mahadev)
   
  ZOOKEEPER-217. Fix errors in config to be thrown as Exceptions. (mahadev)

  ZOOKEEPER-228. fix apache header missing in DBTest. (mahadev)

  ZOOKEEPER-218. fix the error in the barrier example code. (pat via mahadev)

  ZOOKEEPER-206. documentation tab should contain the version number and 
  other small site changes. (pat via mahadev) 

  ZOOKEEPER-226. fix exists calls that fail on server if node has null data.
  (mahadev) 

  ZOOKEEPER-204. SetWatches needs to be the first message after auth
  messages to the server (ben via mahadev)
  
  ZOOKEEPER-208. Zookeeper C client uses API that are not thread safe,
  causing crashes when multiple instances are active.
  (austin shoemaker, chris daroch and ben reed via mahadev) 

  ZOOKEEPER-227. gcc warning from recordio.h (chris darroch via mahadev)

  ZOOKEEPER-232. fix apache licence header in TestableZookeeper (mahadev)

  ZOOKEEPER-249. QuorumPeer.getClientPort() always returns -1.
  (nitay joffe via mahadev)

  ZOOKEEPER-248.  QuorumPeer should use Map interface instead of HashMap
  implementation. (nitay joffe via mahadev)

  ZOOKEEPER-241. Build of a distro fails after clean target is run.
  (patrick hunt via mahadev)

  ZOOKEEPER-245. update readme/quickstart to be release tar, rather than
  source, based (patrick hunt via mahadev)

  ZOOKEEPER-251. NullPointerException stopping and starting Zookeeper servers
  (mahadev via phunt)

  ZOOKEEPER-250. isvalidsnapshot should handle the case of 0 snapshot
  files better. (mahadev via phunt)
 
  ZOOKEEPER-265. remove (deprecate) unused NoSyncConnected from KeeperState.
  (phunt via mahadev)

  ZOOKEEPER-273. Zookeeper c client build should not depend on CPPUNIT. (pat
and runping via mahadev)

  ZOOKEEPER-268.  tostring on jute generated objects can cause NPE. (pat via mahadev)

  ZOOKEEPER-267.  java client incorrectly generating syncdisconnected event when in disconnected state. (pat via breed)

  ZOOKEEPER-263. document connection host:port as comma separated list in forrest docs (pat via breed)
  
  ZOOKEEPER-275. Bug in FastLeaderElection. (flavio via mahadev)

  ZOOKEEPER-272. getchildren can fail for large number of children. (mahadev)

  ZOOKEEPER-16. Need to do path validation. (pat, mahadev) 

  ZOOKEEPER-252. PurgeTxnLog is not handling the new dataDir directory
  structure (mahadev via phunt)

  ZOOKEEPER-291. regression for legacy code using KeeperException.Code 
  constants (due to 246). (pat via mahadev)

  ZOOKEEPER-255. zoo_set() api does not return stat datastructure.
  (avery ching via mahadev)

  ZOOKEEPER-293. zoo_set needs to be abi compatible (3.1 changed the
signature), fix this by adding zoo_set2 (pat via mahadev)

  ZOOKEEPER-302. Quote values in JMX objectnames. (tom and pat via mahadev)

IMPROVEMENTS:
   
  ZOOKEEPER-64. Log system env information when initializing server and
  client (pat via mahadev)

  ZOOKEEPER-243. add SEQUENCE flag documentation to the programming guide.
  (patrick hunt via mahadev)
  
   ZOOKEEPER-161. Content needed: "Designing a ZooKeeper Deployment"
  (breed via phunt)
   
   ZOOKEEPER-247. fix formatting of C API in ACL section of programmer guide.
   (patrick hunt via mahadev)

   ZOOKEEPER-230. Improvements to FLE. (Flavio via mahadev)

   ZOOKEEPER-225. c client should log an info message in zookeeper_init
   detailing connection parameters. (pat via mahadev)

   ZOOKEEPER-222.  print C client log message timestamp in human readable
   form. (pat via mahadev) 
  
   ZOOKEEPER-256. support use of JMX to manage log4j configuration at runtime.
   (pat via mahadev)

   ZOOKEEPER-214. add new "stat reset" command to server admin port.
   (pat via mahadev)

   ZOOKEEPER-258. docs incorrectly state max client timeout as 60 seconds
   (it's based on server ticktime). (phunt via mahadev)

   ZOOKEEPER-135. Fat jar build target. (phunt and breed via mahadev)

   ZOOKEEPER-234. Eliminate using statics to initialize the sever. Should
   allow server to be more embeddable in OSGi enviorments. (phunt)

   ZOOKEEPER-259. cleanup the logging levels used (use the correct level)
   and messages generated. (phunt via breed)

   ZOOKEEPER-210. Require Java 6. (phunt via breed)
    
   ZOOKEEPER-177.  needed: docs for JMX (phunt via mahadev)
  
   ZOOKEEPER-253. documentation of DataWatcher state transition is misleading
regarding auto watch reset on reconnect. (phunt via mahadev)

   ZOOKEEPER-269. connectionloss- add more documentation to detail. (phunt and
flavio via mahadev)

   ZOOKEEPER-260. document the recommended values for server id's
   (mahadev via phunt)

   ZOOKEEPER-215. expand system test environment (breed via phunt)

   ZOOKEEPER-229. improve documentation regarding user's responsibility to
   cleanup datadir (snaps/logs) (mahadev via phunt)

   ZOOKEEPER-69. ZooKeeper logo
   
   ZOOKEEPER-286. Make GenerateLoad use InstanceContainers. (breed via mahadev)

   ZOOKEEPER-220. programming guide watches section should clarify
   server/clientlib role in data/child watch maint. (breed via phunt)
 
   ZOOKEEPER-289. add debug messages to nioserver select loop. (mahadev)

NEW FEATURES:

   ZOOKEEPER-276. Bookkeeper contribution (Flavio and Luca Telloli via mahadev)
  
   ZOOKEEPER-231. Quotas in ZooKeeper. (mahadev)

Release 3.0.0 - 2008-10-21

Non-backward compatible changes:

  ZOOKEEPER-43. Server side of auto reset watches. (breed via mahadev)

  ZOOKEEPER-132. Create Enum to replace CreateFlag in ZooKepper.create 
  method (Jakob Homan via phunt)

  ZOOKEEPER-139. Create Enums for WatcherEvent's KeeperState and EventType
  (Jakob Homan via phunt)

  ZOOKEEPER-18. keeper state inconsistency (Jakob Homan via phunt)

  ZOOKEEPER-38. headers (version+) in log/snap files (Andrew Kornev and Mahadev
  Konar via breed)

  ZOOKEEPER-8. Stat enchaned to include num of children and size
  (phunt)

  ZOOKEEPER-6. List of problem identifiers in zookeeper.h
  (phunt)

  ZOOKEEPER-7. Use enums rather than ints for types and state
  (Jakob Homan via mahadev)

  ZOOKEEPER-27. Unique DB identifiers for servers and clients
  (mahadev)

  ZOOKEEPER-32. CRCs for ZooKeeper data
  (mahadev)

  ZOOKEEPER-33. Better ACL management
  (mahadev)
   
Backward compatible changes:

  BUGFIXES: 

  ZOOKEEPER-203. fix datadir typo in releasenotes (phunt)

  ZOOKEEPER-145. write detailed release notes for users migrating from 2.x
  to 3.0 (phunt)

  ZOOKEEPER-23. Auto reset of watches on reconnect (breed via phunt)

  ZOOKEEPER-191. forrest docs for upgrade. (mahadev via phunt)

  ZOOKEEPER-201. validate magic number when reading snapshot and transaction
  logs (mahadev via phunt)

  ZOOKEEPER-200. the magic number for snapshot and log must be different
  (currently same) (phunt)

  ZOOKEEPER-199. fix log messages in persistence code (mahadev via phunt)

  ZOOKEEPER-197. create checksums for snapshots (mahadev via phunt)

  ZOOKEEPER-198. apache license header missing from FollowerSyncRequest.java
  (phunt)

  ZOOKEEPER-5. Upgrade Feature in Zookeeper server. (mahadev via phunt)

  ZOOKEEPER-194. Fix terminology in zookeeperAdmin.xml
  (Flavio Paiva Junqueira)

  ZOOKEEPER-151. Document change to server configuration
  (Flavio Paiva Junqueira)

  ZOOKEEPER-193. update java example doc to compile with latest zookeeper
  (phunt)

  ZOOKEEPER-187. CreateMode api docs missing (phunt)

  ZOOKEEPER-186. add new "releasenotes.xml" to forrest documentation
  (phunt)

  ZOOKEEPER-190. Reorg links to docs and navs to docs into related sections
  (robbie via phunt)

  ZOOKEEPER-189. forrest build not validated xml of input documents
  (robbie via phunt)

  ZOOKEEPER-188. Check that election port is present for all servers
  (Flavio Paiva Junqueira via phunt)

  ZOOKEEPER-185. Improved version of FLETest (Flavio Paiva Junqueira)

  ZOOKEEPER-184. tests: An explicit include derective is needed for the usage
  of memcpy(), memset(), strlen(), strdup() and free() functions
  (Maxim P. Dementiev via phunt)

  ZOOKEEPER-183. Array subscript is above array bounds in od_completion(),
  src/cli.c. (Maxim P. Dementiev via phunt)

  ZOOKEEPER-182.  zookeeper_init accepts empty host-port string and returns
  valid pointer to zhandle_t. (Maxim P. Dementiev via phunt)

  ZOOKEEPER-17. zookeeper_init doc needs clarification (phunt)

  ZOOKEEPER-181. Some Source Forge Documents did not get moved over: 
  javaExample, zookeeperTutorial, zookeeperInternals (robbie via phunt)

  ZOOKEEPER-180. Placeholder sections needed in document for new topics that
  the umbrella jira discusses (robbie via phunt)

  ZOOKEEPER-179. Programmer's Guide "Basic Operations" section is missing 
  content (robbie via phunt)

  ZOOKEEPER-178. FLE test. (Flavio Paiva Junqueira)

  ZOOKEEPER-159. Cover two corner cases of leader election
  (Flavio Paiva Junqueira via phunt)

  ZOOKEEPER-156. update programmer guide with acl details from old wiki page
  (phunt)

  ZOOKEEPER-154. reliability graph diagram in overview doc needs context
  (phunt)

  ZOOKEEPER-157. Peer can't find existing leader (Flavio Paiva Junqueira)

  ZOOKEEPER-155. improve "the zookeeper project" section of overview doc
  (phunt)

  ZOOKEEPER-140. Deadlock in QuorumCnxManager (Flavio Paiva Junqueira)

  ZOOKEEPER-147. This is version of the documents with most of the [tbd...]
  scrubbed out (robbie via phunt)

  ZOOKEEPER-150. zookeeper build broken (mahadev via phunt)

  ZOOKEEPER-136. sync causes hang in all followers of quorum. (breed)

  ZOOKEEPER-134. findbugs cleanup (phunt)

  ZOOKEEPER-133. hudson tests failing intermittently (phunt)

  ZOOKEEPER-144. add tostring support for watcher event, and enums for event
  type/state (Jakob Homan via phunt)

  ZOOKEEPER-21. Improve zk ctor/watcher (state transition) docs (phunt)

  ZOOKEEPER-142. Provide Javadoc as to the maximum size of the data byte 
  array that may be stored within a znode (Jakob Homan via phunt)

  ZOOKEEPER-93. Create Documentation for Zookeeper (phunt)

  ZOOKEEPER-117. threading issues in Leader election (fpj via breed)

  ZOOKEEPER-137. client watcher objects can lose events (phunt via breed)

  ZOOKEEPER-131. Old leader election can elect a dead leader over and over
  again (breed via mahadev)

  ZOOKEEPER-130. update build.xml to support apache release process
  (phunt via mahadev)

  ZOOKEEPER-118. findbugs flagged switch statement in 
  followerrequestprocessor.run() (Flavio Paiva Junqueira via phunt)

  ZOOKEEPER-115. Potential NPE in QuorumCnxManager
  (Flavio Paiva Junqueira)

  ZOOKEEPER-114. cleanup ugly event messages in zookeeper client 
  (Jakob Homan)

  ZOOKEEPER-112. src/java/main ZooKeeper.java has test code embedded into it.
  (phunt)

  ZOOKEEPER-39. Use Watcher objects rather than boolean on read operations.
  (Andrew Kornev)

  ZOOKEEPER-97. supports optional output directory in code generator. (Hiram
  Chirino via phunt)

  ZOOKEEPER-101. Integrate ZooKeeper with "violations" feature on hudson
  (phunt)
 
  ZOOKEEPER-105. Catch Zookeeper exceptions and print on the stderr. 
  (Anthony Urso via Mahadev)
 
  ZOOKEEPER-42. Change Leader Election to fast tcp. (Flavio Paiva Junqueira
  via phunt)

  ZOOKEEPER-48. auth_id now handled correctly when no auth ids present
  (Benjamin Reed via phunt)
 
  ZOOKEEPER-44. Create sequence flag children with prefixes of 0's so that
  they can be lexicographically sorted. (Jakob Homan via mahadev)
  
  ZOOKEEPER-108. Fix sync operation reordering on a Quorum. 
  (Flavio Paiva Junqueira via Mahadev)

  ZOOKEEPER-25. Fuse module for Zookeeper. (Swee Lim, Bart, Patrick Hunt and
  Andrew Kornev via Mahadev)

  ZOOKEEPER-58. Race condition on ClientCnxn.java (breed)

  ZOOKEEPER-56. Add clover support to build.xml. (Patrick Hunt via mahadev)

  ZOOKEEPER-75. register the ZooKeeper mailing lists with nabble.com (phunt)
  
  ZOOKEEPER-54. remove sleeps in the tests. (phunt)

  ZOOKEEPER-55. build.xml failes to retrieve a release number from SVN and 
  the ant target "dist" fails (Andrew Kornev)

  ZOOKEEPER-89. invoke WhenOwnerListener.whenNotOwner() when the ZK 
  connection fails (james strachan)

  ZOOKEEPER-90. invoke WhenOwnerListener.whenNotOwner() when the ZK
  session expires and the znode is the leader (james strachan)

  ZOOKEEPER-82. Make the ZooKeeperServer more DI friendly. (Hiram Chirino via
  mahadev)

  ZOOKEEPER-110. Build script relies on svnant, which is not compatible 
  with subversion 1.5 working copies (Jakob Homan)

  ZOOKEEPER-111. Significant cleanup of existing tests. (Patrick Hunt via
  mahadev)
 
  ZOOKEEPER-122. Fix  NPE in jute's Utils.toCSVString. (Anthony Urso via
  mahadev)
  
 ZOOKEEPER-123. Fix  the wrong class is specified for the logger. (Jakob Homan
 via mahadev)

 ZOOKEEPER-2. Fix synchronization issues in QuorumPeer and FastLeader
 election. (Flavio Paiva Junqueira via mahadev)

 ZOOKEEPER-125. Remove unwanted class declaration in FastLeaderElection. 
 (Flavio Paiva Junqueira via mahadev)

 ZOOKEEPER-61. Address (remove) use of sleep(#) in client/server test cases.
 (phunt)

 ZOOKEEPER-75. cleanup the library directory (phunt)

 ZOOKEEPER-109. cleanup of NPE and Resource issue nits found by static
 analysis (phunt)

 ZOOKEEPER-76. Commit 677109 removed the cobertura library, but not the 
 build targets. (phunt)

 ZOOKEEPER-63. Race condition in client close() operation. (phunt via breed)

 ZOOKEEPER-70. Add skeleton forrest doc structure for ZooKeeper (phunt)

 ZOOKEEPER-79. Document jacob's leader election on the wiki recipes page 
 (Flavio Junqueira)

 ZOOKEEPER-73. Move ZK wiki from SourceForge to Apache (phunt)

 ZOOKEEPER-72. Initial creation/setup of ZooKeeper ASF site. (phunt)

 ZOOKEEPER-71. Determine what to do re ZooKeeper Changelog(s) (mahadev)

 ZOOKEEPER-68. parseACLs in ZooKeeper.java fails to parse elements of ACL,
 should be lastIndexOf rather than IndexOf (mahadev)

 ZOOKEEPER-130. update build.xml to support apache release process. 
 (phunt via mahadev)

 ZOOKEEPER-131. Fix Old leader election can elect a dead leader over and over
 again. (breed via mahadev)

 ZOOKEEPER-137. client watcher objects can lose events (Patrick Hunt via breed)

 ZOOKEEPER-117. threading issues in Leader election (Flavio Junqueira and
 Patrick Hunt via breed)

 ZOOKEEPER-128. test coverage on async client operations needs to be improved
 (phunt)

 ZOOKEEPER-127.  Use of non-standard election ports in config breaks services
 (Mark Harwood and Flavio Junqueira via breed)

 ZOOKEEPER-53. tests failing on solaris. (phunt)

 ZOOKEEPER-172. FLE Test (Flavio Junqueira via breed)

 ZOOKEEPER-41. Sample startup script (mahadev)

 ZOOKEEPER-33. Better ACL management (Mahadev Konar)

 ZOOKEEPER-49. SetACL does not work (breed)

 ZOOKEEPER-20. Child watches are not triggered when the node is deleted
 (phunt)

 ZOOKEEPER-15. handle failure better in build.xml:test (phunt)

 ZOOKEEPER-11. ArrayList is used instead of List (phunt)

 ZOOKEEPER-45. Restructure the SVN repository after initial import (phunt)

 ZOOKEEPER-1. Initial ZooKeeper code contribution from Yahoo! (phunt)
