Skip to content

Releases: apache/bookkeeper

Release 4.18.0

Choose a tag to compare

@hangc0276 hangc0276 released this 10 Jun 21:57

4.18.0

Release 4.18.0 includes multiple important features, improvements, bug fixes and dependency/CVE updates.

The technical details of this release are summarized below.

Breaking Changes

  • Require Java 17+ for building and running BookKeeper PR #4446
  • [improve][conf] Change the default value of readOnlyModeOnAnyDiskFullEnabled to true PR #4520
  • BP-69: Remove bookkeeper-slogger module PR #4764
  • Remove deprecated method setAllocatorPoolingConcurrenncy PR #4431
  • Remove deprecated class MathUtils PR #4274

Features

  • BP-69: Adopt slog for structured logging PR #4751
  • BP-69: Convert bookkeeper-common to slog (phase 1) PR #4754
  • BP-69: Convert stats and allocator modules to slog (phase 2) PR #4755
  • BP-69: Convert bookkeeper-server to slog (phase 3) PR #4756
  • BP-69: Convert stream/distributedlog modules to slog (phase 5) PR #4757
  • BP-69: Convert http, tools, benchmark and metadata-drivers to slog (phase 4+6) PR #4758
  • BP-69: Convert remaining SLF4J usages in non-test code to slog PR #4765
  • BP-69: Allow caller to pass a parent slog Logger to created/opened ledgers PR #4766
  • BP-69: Inherit LedgerHandle logger context in ledger operations PR #4767
  • BP-69: Print slog context attrs in log4j2; add OTel JSON example PR #4770
  • BP-68: Delete cookie as part of decommission API PR #4500
  • Delete cookie as part of decommission API PR #4592
  • BP-66: support throttling for zookeeper read during rereplication PR #4258
  • [BP-62] Expose batchReadUnconfirmedAsync to ReadHandle PR #4739
  • feat: migrate native-io implementation from C to Rust PR #4738
  • Migrate BookkeeperProtocol from protobuf-java to LightProto PR #4780
  • Migrate DataFormats from protobuf-java to LightProto PR #4779
  • Migrate stream non-gRPC protos to LightProto PR #4781
  • Migrate stream gRPC protos to LightProto PR #4783
  • Migrate from Yahoo DataSketches to Apache DataSketches 7.0.1 (KLL) PR #4774
  • Support bookie server config TCP keep-alive PR #4762
  • [client] new API to check if BookKeeper client is connected to metadata service PR #4342
  • feat: allow user config AsyncLogger in log4j2 PR #4269

Improvements

Bookie

  • [improve] add metrics: total_entry_log_space_bytes PR #4507
  • improve: Enrich GC metrics to better analyze GC behavior and the time consumption of each phase PR #4384
  • add metric for rocksdb getLastEntryInLedger to help find out bottleneck PR #4529
  • Set ThreadFactory for Executor in EntryLoggerAllocator PR #4562
  • Add temp dir property for native library PR #4533
  • Apply WRITE_BUFFER_WATER_MARK setting to child channels in BookieNetty Server PR #4337
  • SingleDirectoryDbLedgerStorage skip optimistic cache put sometimes PR #4306
  • Log only overridden config in BookieServer startup PR #4768
  • Remove unused journaltime PR #4006

Client

  • LedgerHandle: eliminate unnecessary synchronization on LedgerHandle.getLength() PR #4516
  • Optimize bounded batch reads by predicting entry count PR #4741
  • improve: Improve host address resolution logic for bookie id PR #4588
  • Rename the client high priority thread pool PR #4496

Tools

  • [improve] Update readledger command to read all the entries from a bookie when first entry and last entry ids are not provided PR #4692
  • Optimize ListActiveLedgersCommand PR #4602
  • Optimize bookie usage information while using command line option --help PR #4241

Bugs

Bookie

  • fix BookKeeper can't startup cause by 'IOException: Recovery log xxx is missing' PR #4740
  • Prevent double flush due to race in SingleDirectoryDbLedgerStorage PR #4305
  • Fix RocksDB configuration path handling on Windows PR #4407
  • Issue 4503: Added check into BufferedChannel's read to avoid endless loop PR #4506
  • [Fix] ConcurrentLongHashMap throw ArrayIndexOutOfBoundsException PR #4771
  • Add workaround for ZOOKEEPER-3825 related to numeric IPs and DNS names with multiple numeric IPs and support on Java 17 PR #4719
  • Fix async log appender not print error log when bookie starting exceptionally PR #4475
  • fix: throw reject when SingleThreadExecutor drainTo in progress and queue is empty PR #4488

Client

  • Fix batch reads hanging after digest mismatch retries are ignored PR #4789
  • Fix WriteSet use-after-recycle in sequence reads PR #4788
  • Fix NPE in PendingAddOp.maybeTimeout() when clientCtx is null after recycling PR #4760
  • Fix race condition NPE in V3 response handling during timeout check PR #4737
  • [client][fix] Bookie WatchTask may be stuck PR #4481
  • Fix LedgerHandle batchReadUnconfirmedAsync: use slog log instead of LOG PR #4782
  • #4574: fix sanity check asyncBatchReadEntries PR #4579
  • fix: Add strict hostname resolution and loopback check for advertised address PR #4595
  • [fix] Change log level to debug when check parameters in BatchRead PR #4485

Others

  • [FIX] Fix IllegalThreadStateException in ComponentStarter shutdown hook PR #4733
  • Fix potential jetcd-core shading problem PR #4526
  • Fix potential class conflict during jetcd-core-shaded shading process PR #4532
  • compatible fix wrong key for getHttpServerTrustStorePassword PR #4301
  • [fix] fix string format for exception in RocksdbKVStore PR #4448
  • fix: permission denied in the docker image PR #4464
  • [fix] Fix issue where options for sanity test command are ignored PR #4691
  • Fix duplicated call zkGetLogSegmentNames in getLogSegmentNames PR #4050
  • Fix the pid occupied check when use bookkeeper-daemon.sh start or stop PR #3113

Build, CI and Tests

  • Introduce /bkbot Command to Control CI Workflow Runs via PR Comments PR #4673
  • [Doc] Introduce CI Workflow Management with BookKeeper Bot PR #4674
  • [ci] Add /bkbot rerun-failure command for job-level failure rerun PR #4746
  • Upgrade website to Docusaurus 3 and use Node 24 to build PR #4723
  • ci: add java21(LTS) Compatibility Check PR #4350
  • build: add java21 and windows daily build PR #4292
  • ci: add typo ci check and fix typos PR #4375
  • Improve CI: add caching for BookKeeper old release downloads and improve maven caching and error logs [PR #4722](http...
Read more

Release 4.17.3

Choose a tag to compare

@zymap zymap released this 20 Jan 08:34

4.17.3

Release 4.17.3 includes multiple bug fixes and few dependency updates.

Apache BookKeeper users are encouraged to upgrade to 4.17.3 if you are using 4.17.x.
The technical details of this release are summarized below.

Bugs

  • Fix: Garbage collection stuck on corrupt entry log file PR #4544
  • [fix] Failed read entries after multiple decommissioning PR #4613
  • [fix]BK stays at read_only state even if the disk is empty PR #4640
  • Bring back the old public method name which removed from #4640 PR #4682
  • [fix]compile error of the file native_io_jni.c for the env jdk11 & windows PR #4665
  • Only stop Gc for the fill disk for DbLedgerStorage PR #4661
  • [fix]Wrong error code(-102) when opening a deleted ledger PR #4657
  • Log all the error in the GarbageCollectorThread PR #4649

Improvements

  • support equalsAndHashcode for BookieServerInfo PR #4686
  • Supports configuring TCP Keepalive related parameters in Bookie Client. PR #4683
  • add rate limit for zk read rate in gc. PR #4645

Dependency updates

  • Upgrade netty to 4.1.130 Final PR #4699
  • [security] Replace net.jpountz.lz4:lz4 with at.yawk.lz4:lz4-java PR #4696
  • Upgrade OpenTelemetry to 1.56.0, Otel instrumentation to 2.21.0 and Otel semconv to 1.37.0 PR #4690
  • Exclude commons-collections from dependencies PR #4689
  • Remove commons-configuration2 and commons-beanutils from top level dependencies PR #4648

Full Changelog: release-4.17.2...release-4.17.3

Release 4.17.2

Choose a tag to compare

@StevenLuMT StevenLuMT released this 05 Jul 22:23

Release 4.17.2 includes multiple bug fixes and few dependency updates.

Apache BookKeeper users are encouraged to upgrade to 4.17.2 if you are using 4.17.x.
The technical details of this release are summarized below.

Highlights

Bugs

  • Fix a NPE bug after refactor recycler of BookieClient PR #4610
  • Fix Memory Leak In Netty Recycler of Bookie Client PR #4609
  • Fix the data loss issue that caused by the wrong entry log header PR #4607
  • Fix the coredump that occurs when calling KeyValueStorageRocksDB.count after rocksdb has been closed PR #4581
  • Fix and improve locating RocksDB config files PR #4560
  • [fix] Write stuck due to pending add callback by multiple threads PR #4557
  • Fix SST files not being cleaned up in the locations folder PR #4555
  • Fix tune-runner-vm action to run correctly on ubuntu-24.04 image PR #4536
  • [cli] Fix: recover command doesn't accept rate limit parameter PR #4535
  • fix pendingDeletedLedgers do not remove ledger error PR #4525
  • Fix region aware placement policy disk weight dose not update. PR #4522
  • Fix check read failed entry memory leak issue. PR #4513
  • [fix] remove in address2Region while bookie left to get correct rack info PR #4504
  • fix: install netcat-openbsd instead of netcat in test image build PR #4476
  • [fix][ci] Fix OWASP Dependency Check download by using NVD API key PR #4473
  • Fix ReadOnlyLedgerHandle leak issue when checkAllLedgers. PR #4468
  • fix[rocksdb]: fix error rocksdb default config for CFOptions PR #4466
  • [fix] Fix data lost after when writing ledger and deleting legder execute concurrency PR #4462
  • [BugFix] Fix to prevent resource leaks in 3 classes PR #4449
  • Correct RackawareEnsemblePlacementPolicyImpl defaultRack when the bookie is not available. PR #4439
  • Fix the completionObjects leak problem. PR #4285
  • Issue 2161: set metrics endpoint content-type PR #4208

Improvements

  • Adjust DNS cache expiration in tests to reduce test timeout failures PR #4586
  • Change the new ensemble log to info level PR #4566
  • Add documentation to bk_server.conf about RocksDB config PR #4561
  • Reduce metadataLock contention in LedgerHandle PR #4549
  • [improve] when rackaware failed to choose a bookie, print out the list of ensemble. PR #4482
  • Ensure that formatVersion is specified for all RocksDB databases PR #4559
  • Set default format_version to 5 for RocksDB databases PR #4480
  • [improve] Optimize reorderReadSequence to Check WriteSet PR #4478
  • Update Release Script Instructions and Python Publishing Scripts PR #4458
  • Enable ZooKeeper client to establish connection in read-only mode PR #4244
  • Allocator support exitOnOutOfMemory config. PR #3984

Dependency updates

Details

https://github.com/apache/bookkeeper/pulls?q=is%3Apr+label%3Arelease%2F4.17.2+is%3Amerged+

Release 4.16.7

Choose a tag to compare

@StevenLuMT StevenLuMT released this 03 Jul 09:19

Release 4.16.7 includes multiple bug fixes and few dependency updates.

Apache BookKeeper users are encouraged to upgrade to 4.16.7 if you are using 4.16.x.
The technical details of this release are summarized below.

Highlights

Bugs

  • Fix the data loss issue that caused by the wrong entry log header PR #4607
  • Fix the coredump that occurs when calling KeyValueStorageRocksDB.count after rocksdb has been closed PR #4581
  • Fix and improve locating RocksDB config files PR #4560
  • [fix] Write stuck due to pending add callback by multiple threads PR #4557
  • Fix SST files not being cleaned up in the locations folder PR #4555
  • Fix tune-runner-vm action to run correctly on ubuntu-24.04 image PR #4536
  • [cli] Fix: recover command doesn't accept rate limit parameter PR #4535
  • fix pendingDeletedLedgers do not remove ledger error PR #4525
  • Fix region aware placement policy disk weight dose not update. PR #4522
  • Fix check read failed entry memory leak issue. PR #4513
  • [fix] remove in address2Region while bookie left to get correct rack info PR #4504
  • fix: install netcat-openbsd instead of netcat in test image build PR #4476
  • [fix][ci] Fix OWASP Dependency Check download by using NVD API key PR #4473
  • fix[rocksdb]: fix error rocksdb default config for CFOptions PR #4466
  • [fix] Fix data lost after when writing ledger and deleting legder execute concurrency PR #4462
  • [BugFix] Fix to prevent resource leaks in 3 classes PR #4449
  • Correct RackawareEnsemblePlacementPolicyImpl defaultRack when the bookie is not available. PR #4439
  • Fix the completionObjects leak problem. PR #4285

Improvements

  • Adjust DNS cache expiration in tests to reduce test timeout failures PR #4586
  • Change the new ensemble log to info level PR #4566
  • Add documentation to bk_server.conf about RocksDB config PR #4561
  • Reduce metadataLock contention in LedgerHandle PR #4549
  • [improve] when rackaware failed to choose a bookie, print out the list of ensemble. PR #4482
  • Ensure that formatVersion is specified for all RocksDB databases PR #4559
  • Set default format_version to 5 for RocksDB databases PR #4480
  • [improve] Optimize reorderReadSequence to Check WriteSet PR #4478
  • Update Release Script Instructions and Python Publishing Scripts PR #4458
  • Enable ZooKeeper client to establish connection in read-only mode PR #4244
  • Improve auto-recovery noise log when some bookie down. PR #4118
  • Allocator support exitOnOutOfMemory config. PR #3984

Dependency updates

Details

https://github.com/apache/bookkeeper/pulls?q=is%3Apr+label%3Arelease%2F4.16.7+is%3Amerged+

Release 4.17.1

Choose a tag to compare

@hezhangjian hezhangjian released this 26 Jun 13:44

Release 4.17.1 includes multiple bug fixes and few dependency updates.

Apache BookKeeper users are encouraged to upgrade to 4.17.1 if you are using 4.17.x.
The technical details of this release are summarized below.

Highlights

Bugs

  • Fix TimedRunnable log NPE PR #4425
  • Fix Auditor ignoring bookies shut down before Auditor start PR #4419
  • Fix lost prometheus metric in OrderedExecutor PR #4374
  • Fix: resource leak when JournalChannel is not fully initialized PR #4340
  • Fix: bookie http endpoint info always return 0.0.0.0 PR #4325
  • Fix disk weight ensemble infinite loop bug PR #4324
  • Fix guava shade error in distributedlog PR #4319
  • Fix ThreadRegistry#register behavior to ensure correct Prom metrics PR #4300
  • Fix: reference counting (retain/release) in PerChannelBookieClient PR #4293
  • Fix ByteBuf release/retain in PerChannelBookClient PR #4289
  • Tests: miss test log in prometheus-metrics-provider module PR #4279
  • Fixed creation of temporary dir in NativeUtils PR #4262
  • Fix ArrayIndexOutOfBoundsException caused by optimistic lock PR #4066
  • Prevent bookie shutdown due to rest api when bookie prohibits readOnlyMode PR #3972
  • Fix wrong implementation for percentile in bookkeeper-benchmark PR #3864

Improvements

  • Adjust Log Level for LedgerFencedException in WriteEntryProcessor PR #4327
  • Improve: change scheduleAtFixedRate to scheduleWithFixedDelay in GarbageCollectorThread PR #4296
  • Remove unused code from ByteBufVisitor PR #4383
  • Use vertx blockingHandlers to run Bookkeeper http handlers which could be blocking PR #4266

Dependency updates

  • Bump jetcd from 0.5.0 to 0.7.7 PR #3849
  • Bump netty from 4.1.107.Final to 4.1.108.Final to address CVE list PR #4426
  • Bump jackson from 2.13.4.20221013 to 2.17.1 to address CVE list PR #4345
  • Upgrade vertx-core to 4.5.7 to address CVE-2024-1300 PR #4265

Details

https://github.com/apache/bookkeeper/pulls?q=is%3Apr+label%3Arelease%2F4.17.1+is%3Amerged+

Release 4.16.6

Choose a tag to compare

@hezhangjian hezhangjian released this 26 Jun 13:43

Release 4.16.6 includes multiple bug fixes and few dependency updates.

Apache BookKeeper users are encouraged to upgrade to 4.16.6 if you are using 4.16.x.
The technical details of this release are summarized below.

Highlights

Bugs

  • Fix TimedRunnable log NPE PR #4425
  • Fix Auditor ignoring bookies shut down before Auditor start PR #4419
  • Fix lost prometheus metric in OrderedExecutor PR #4374
  • Fix: resource leak when JournalChannel is not fully initialized PR #4340
  • Fix: bookie http endpoint info always return 0.0.0.0 PR #4325
  • Fix disk weight ensemble infinite loop bug PR #4324
  • Fix guava shade error in distributedlog PR #4319
  • Fix ThreadRegistry#register behavior to ensure correct Prom metrics PR #4300
  • Fix: reference counting (retain/release) in PerChannelBookieClient PR #4293
  • Fix ByteBuf release/retain in PerChannelBookClient PR #4289
  • Tests: miss test log in prometheus-metrics-provider module PR #4279
  • Fix ArrayIndexOutOfBoundsException caused by optimistic lock PR #4066
  • Prevent bookie shutdown due to rest api when bookie prohibits readOnlyMode PR #3972
  • Fix wrong implementation for percentile in bookkeeper-benchmark PR #3864

Improvements

  • Adjust Log Level for LedgerFencedException in WriteEntryProcessor PR #4327
  • Improve: change scheduleAtFixedRate to scheduleWithFixedDelay in GarbageCollectorThread PR #4296
  • Remove unused code from ByteBufVisitor PR #4383
  • Use vertx blockingHandlers to run Bookkeeper http handlers which could be blocking PR #4266

Dependency updates

  • Bump jetcd from 0.5.0 to 0.7.7 PR #3849
  • Bump netty from 4.1.94.Final to 4.1.108.Final to address CVE list PR #4426
  • Bump jackson from 2.13.4.20221013 to 2.17.1 to address CVE list PR #4345
  • Upgrade vertx-core to 4.5.7 to address CVE-2024-1300 PR #4265

Details

https://github.com/apache/bookkeeper/pulls?q=is%3Apr+label%3Arelease%2F4.16.6+is%3Amerged+

Release 4.17.0

Choose a tag to compare

@hezhangjian hezhangjian released this 25 May 02:44

Release 4.17.0 includes multiple important features, improvements, bug fixes and some dependencies CVE fixes.

The technical details of this release are summarized below.

Breaking Changes

No breaking changes. Some defaults are different, but overall there are no compatibility concerns.

Features

  • BP-62 Batch Read API

Notable changes

  • Enable reorder read sequence for bk client by default PR #4139
  • Fix some metrics generated by prometheus client without type info PR #3927
  • Fix arbitrary file upload vulnerability with httpServerEnabled PR #3982
  • Enable kv logs in log4j configuration PR #3986
  • Make compatible between DefaultEntryLogger and DirectEntryLogger PR #4041

Bookie

  • Fix bug of negative JournalQueueSize PR #4077
  • Fix compaction throttle imprecise PR #3192
  • Fix data lost when configured multiple ledger directories PR #3329
  • Try to use jdk api to create hardlink when rename file when compaction. PR #3876
  • [feature] [server] add dbStorage_readAheadCacheBatchBytesSize properties when read ahead entries PR #3895
  • Fix keys leak in EntryLocationIndex when ledgersToDelete is empty PR #3903
  • Fix garbage collection blocked by runtime exception PR #3901
  • Skip sync the RocksDB when no changes PR #3904
  • Enable PCBC completionObjects autoShrink to reduce memory usage and gc PR #3913
  • [Fix] Recycle dropping read-write requests when various exceptions happened PR #3912
  • Fix ledger replicated failed blocks bookie decommission process PR #3917
  • Support skip invalid journal record in replying journal stage PR #3956
  • Avoid compaction to trigger extra flushes DbLedgerStorage PR #3959
  • Fix memory leak of direct memory in direct memory entry logger. PR #3983
  • Unify ByteBufAllocator for the DirectIO component PR #3985
  • Print compaction progress PR #4071
  • Optimize bookie decommission check wait interval PR #4070
  • Fix trigger GC not work PR #3998
  • Allow to set max operation numbers in a single rocksdb batch PR #4044
  • Add read failed log for ledger checker. PR #4010
  • Fix read write request leak when executor throw RejectedExecutionException PR #4024
  • Improve DefaultEntryLogger read performance. PR #4038

Client

  • [Bug] Always one orphan ledger is created PR #3813
  • Fix checksum calculation bug when the payload is a CompositeByteBuf with readerIndex > 0 PR #4196
  • Fix no known bookies after reset racks for all BKs PR #4128
  • Fix issue with binary compatibility with older grpc versions at runtime in the client PR #3997
  • Entry write support local node region aware placement policy PR #4063
  • Rackaware placement policy support local node awareness by hostname PR #4057
  • Use netty-bom for aligning netty library versions, add epoll for linux-aarch_64 PR #4204

AutoRecovery

  • Make AutoRecovery enable stickyReadS as default. PR #4125
  • Support retry logic for auto recovery PR #3799 0
  • Fix auditor elector executor block problem. PR #4165
  • Fix the autorecovery failed replicate by add entry fenced error PR #4163
  • Fix auditor thread leak problem. PR #4162
  • AutoRecovery supports batch read PR #4211

Others

  • Added CLI command to start state store service without a bookie PR #2648
  • Add ensemble relocation command which adheres to placement policy PR #2931
  • Tuning pool concurrency PR #3432
  • Issue 4136: Fix logging configurations are broken in docker image PR #4137
  • [release] Force to use linux/amd64 to build release PR #4060

Dependency changes

Upgraded notable dependencies and address CVEs, including:

Details

https://github.com/apache/bookkeeper/pulls?q=is%3Apr+milestone%3A4.17.0+is%3Aclosed

Release 4.16.5

Choose a tag to compare

@nicoloboschi nicoloboschi released this 11 Apr 13:47

Release 4.16.5 includes multiple bug fixes and few dependency updates.

Apache BookKeeper users are encouraged to upgrade to 4.16.5 if you are using 4.16.x.
The technical details of this release are summarized below.

Highlights

Bugs

  • Fixed creation of temporary dir in NativeUtils PR #4262
  • Fix error stack track may expose to external user PR #4223
  • Add filename check for unTar PR #4222
  • Fix uncontrolled data used in path expression PR #4221
  • Set metrics endpoint content-type PR #4208
  • Fix checksum calculation bug when the payload is a CompositeByteBuf with readerIndex > 0 PR #4205
  • Fix yaml and dockerfile PR #4186

Dependency updates

  • Bump org.apache.commons:commons-compress from 1.21 to 1.26.0 PR #4214

Details

https://github.com/apache/bookkeeper/pulls?q=is%3Apr+label%3Arelease%2F4.16.5+is%3Amerged+

Release 4.16.4

Choose a tag to compare

@hangc0276 hangc0276 released this 29 Jan 04:42

Release 4.16.4 includes multiple bug fixes and improvements, also we have a few dependency updates.

Apache BookKeeper users are encouraged to upgrade to 4.16.4 if you are using 4.16.x.
The technical details of this release are summarized below.

Highlights

Bugs

  • Fix calculate checkSum when using Java9IntHash PR #4140
  • Fix the autorecovery failed replicate by add entry fenced error PR #4163
  • Fixing memory leak error when using DirectEntryLogger PR #4135
  • Fix bug of negative JournalQueueSize PR #4077
  • Fix NoSuchElementException when rereplicate empty ledgers PR #4039
  • Change the method getUnderreplicatedFragments to the package private PR #4174
  • Fix auditor elector executor block problem. PR #4165
  • Fix auditor thread leak problem. PR #4162
  • Use Flaky flag to skip testBookieServerZKSessionExpireBehaviour test PR #4144
  • Add ledgersCount.incrementAndGet in setExplicitLac function PR #4138
  • Fix no known bookies after reset racks for all BKs PR #4128
  • Fix a slow gc thread shutdown when compacting PR #4127
  • Remove the unused logs in the CleanupLedgerManager.recordPromise PR #4121
  • Fix Flaky-test: HandleFailuresTest.testHandleFailureBookieNotInWriteSet PR #4110
  • Ignore the empty perRegionPlacement when RegionAwareEnsemblePlacementPolicy#newEnsemble PR #4106
  • Fix LedgerHandle ensembleChangeCounter not used. PR #4103
  • Tune the TestReplicationWorker test. PR #4093
  • Make AuditorBookieTest#waitForNewAuditor stronger. PR #4078
  • Print compaction progress PR #4071
  • Fix readEntry parameter order PR #4059
  • Skip sync the RocksDB when no changes PR #3904
  • Try to use jdk api to create hardlink when rename file when compaction. PR #3876

Dependency updates

Details

https://github.com/apache/bookkeeper/pulls?q=is%3Apr+label%3Arelease%2F4.16.4+is%3Amerged+

Release 4.15.5

Choose a tag to compare

@zymap zymap released this 19 Dec 08:44
release-4.15.5

Release 4.15.5 includes multiple bug fixes and improvements, also we have a few dependency updates.

Apache BookKeeper users are encouraged to upgrade to 4.15.5 if you are using 4.15.x.
The technical details of this release are summarized below.

Highlights

The previous release is using ARM platform compile, that means that the JNI libraries are only present for MacOS
and this will incur in a performance degradation (eg: the CRC libraries) or not working (in case of cpu affinity).

The build platform now is tagged with linux/amd64 by this PR #4060

Bugs

  • Fix no known bookies after reset racks for all BKs PR #4128
  • Fix AutoCloseableLifecycleComponent close exception log PR #4042
  • Fix NoSuchElementException when rereplicate empty ledgers PR #4039
  • Fix deletedLedgers count PR #4026
  • Fix read write request leak when executor throw RejectedExecutionException PR #4024
  • Recycle LongWrapper finally to avoid memory leak PR #4007
  • Fix trigger GC not work PR #3998
  • Fix arbitrary file upload vulnerability with httpServerEnabled PR #3982
  • Clear channel when channelInactive PR #3966
  • Fix npe when iterate pendingLedgersUpdates and pendingDeletedLedgers. PR #3955
  • Fix some metrics generated by prometheus client without type info PR #3927
  • Fix ledger replicated failed blocks bookie decommission process PR #3917
  • Recycle dropping read-write requests when various exceptions happened PR #3912
  • SingleDirectoryDbLedgerStorage#flushMutex does not release lock on all exception paths PR #3909
  • Fix ReclaimedSpaceViaDeletes stats incorrect problem. PR #3906
  • Fix keys leak in EntryLocationIndex when ledgersToDelete is empty PR #3903
  • Fix garbage collection blocked by runtime exception PR #3901
  • Return activeLogChannel if new create PR #3894
  • Modify incorrect rocksDB config level_compaction_dynamic_level_bytes to CFOptions PR #3860
  • Fix ReadEntryProcessor v2 SchedulingDelayStats PR #3758
  • Fix data lost when configured multiple ledger directories PR #3329

Improvements

  • Issue 4126: Fix a slow gc thread shutdown when compacting PR #4127
  • Remove the unused logs in the CleanupLedgerManager.recordPromise PR #4121
  • Ignore the empty perRegionPlacement when RegionAwareEnsemblePlacementPolicy#newEnsemble PR #4106
  • Print compaction progress PR #4071
  • Force to use linux/amd64 to build release PR #4060
  • Remove underreplicaiton callback PR #4058
  • Allow to set max operation numbers in a single rocksdb batch PR #4044
  • Change pendingDeletedLedgers as ConcurrentHashSet PR #3989
  • Avoid compaction to trigger extra flushes DbLedgerStorage PR #3959
  • Support skip invalid journal record in replying journal stage PR #3956
  • Optimize getEntryLogMetadata PR #3948
  • drop invalid entryFormat arg from shell command PR #3938
  • Enable PCBC completionObjects autoShrink to reduce memory usage and gc PR #3913
  • Prevent transit to writable mode when forceReadOnly mode is active PR #3881
  • Make read entry request recyclable PR #3842
  • Fixed the pivot selection in the group quick-sort PR #3800
  • Execute clean indexes in finally PR #3772
  • Add small files check in garbage collection PR #3631

Dependency updates

Details

https://github.com/apache/bookkeeper/pulls?q=is%3Apr+label%3Arelease%2F4.15.5+is%3Aclosed+