Release Notes - Bookkeeper - Version 4.2.2


  • [BOOKKEEPER-595] - Crash of inprocess autorecovery daemon should not take down the bookie


  • [BOOKKEEPER-313] - Bookkeeper shutdown call from Bookie thread is not shutting down server
  • [BOOKKEEPER-446] - BookKeeper.createLedger(..) should not mask the error with ZKException
  • [BOOKKEEPER-556] - BookieServerMXBean#getServerState makes no sense
  • [BOOKKEEPER-559] - Fix occasional failure in AuditorBookieTest
  • [BOOKKEEPER-577] - BookieFailureTest uses sync/wait()/notify() incorrectly
  • [BOOKKEEPER-579] - TestSubAfterCloseSub was put in a wrong package
  • [BOOKKEEPER-580] - improve close logic
  • [BOOKKEEPER-581] - Ledger recovery doesn't work correctly when recovery adds force changing ensembles.
  • [BOOKKEEPER-583] - Read from a ReadOnlyBookie fails if index fileinfo is not in ledger cache
  • [BOOKKEEPER-584] - Data loss when ledger metadata is overwritten
  • [BOOKKEEPER-585] - Auditor logs noisily when a ledger has been deleted
  • [BOOKKEEPER-596] - Ledgers are gc'ed by mistake in MSLedgerManagerFactory.
  • [BOOKKEEPER-598] - Fails to compile - RESUBSCRIBE_EXCEPTION conflict
  • [BOOKKEEPER-600] - shouldClaim flag isn't cleared for hedwig multiplex java client
  • [BOOKKEEPER-601] - readahead cache size isn't updated correctly
  • [BOOKKEEPER-603] - Support Boost 1.53 for Hedwig Cpp Client
  • [BOOKKEEPER-604] - Ledger storage can log an exception if GC happens concurrently.
  • [BOOKKEEPER-607] - Filtered Messages Require ACK from Client Causes User Being Throttled Incorrectly Forever
  • [BOOKKEEPER-619] - Bookie should not create local cookie files if zookeeper is uninitialized
  • [BOOKKEEPER-620] - PerChannelBookieClient race during channel disconnect
  • [BOOKKEEPER-621] - NPE in FileInfo.moveToNewLocation
  • [BOOKKEEPER-623] - LedgerChecker should avoid segments of closed ledger with higher start entryId than closed entry.
  • [BOOKKEEPER-624] - Reduce logs generated by ReplicationWorker
  • [BOOKKEEPER-625] - On OutOfMemoryError in NIOServerFactory thread bookie should shutdown
  • [BOOKKEEPER-626] - BOOKIE_EXTRA_OPTS are added twice
  • [BOOKKEEPER-632] - AutoRecovery should consider read only bookies
  • [BOOKKEEPER-635] - jenkins build should highlight which lines of the patch cause raw analysis errors
  • [BOOKKEEPER-636] - Latest txn logs might be deleted in a race condition which is not recoverable if BK goes down before next txn log created.
  • [BOOKKEEPER-642] - Bookie returns incorrect exitcode, ExitCode.ZK_REG_FAIL is getting overridden
  • [BOOKKEEPER-646] - BookieShell readjournal command is throwing BufferUnderflowException
  • [BOOKKEEPER-649] - Race condition in sync ZKUtils.createFullPathOptimistic()
  • [BOOKKEEPER-652] - Logger class name is wrong in
  • [BOOKKEEPER-660] - Logs too noisy on NIOServerFactory when client drops a connection
  • [BOOKKEEPER-663] - HierarchicalLedgerManager iterator is missing some ranges and the last ledger in the range
  • [BOOKKEEPER-664] - Compaction increases latency on journal writes
  • [BOOKKEEPER-667] - Client write will fail with BadMetadataVersion in case of multiple Bookie failures with AutoRecovery enabled
  • [BOOKKEEPER-668] - Race between PerChannelBookieClient#channelDisconnected() and disconnect() calls can make clients hang while add/reading entries in case of multiple bookie failures
  • [BOOKKEEPER-669] - Race condition in ledger deletion and eviction from cache
  • [BOOKKEEPER-679] - Bookie should exit with non-zero if NIOServer crashes with Error
  • [BOOKKEEPER-683] - TestSubAfterCloseSub fails on 4.2
  • [BOOKKEEPER-684] - ZK logging is oververbose, can cause oom in tests
  • [BOOKKEEPER-685] - Race in compaction algorithm from BOOKKEEPER-664


  • [BOOKKEEPER-618] - Better resolution of bookie address
  • [BOOKKEEPER-627] - LedgerDirsMonitor is missing thread name
  • [BOOKKEEPER-637] - NoSuchEntry exception when reading an entry from a bookie should not print ERROR level message

New Feature