Releases: apache/bookkeeper
Release 4.17.1
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
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
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:
- Upgrade snappy-java to address multiple CVEs PR #3993
- Upgrade grpc and protobuf to address CVE-2023-32732 PR #3992
- Upgrade Zookeeper to 3.8.3 to address CVE-2023-44981 PR #4112
- Upgrade Netty to 4.1.107.Final and io_uring to 0.0.25.Final PR #4224
- Bump org.apache.commons:commons-compress from 1.21 to 1.26.0 PR #4214
- Update datasketches version from 0.8.3 to 3.2.0 PR #3264
- Issue 3567: Upgrade rocksdb version to avoid checksum mismatch error PR #3568
- fix(sec): upgrade commons-codec to 1.13 PR #3508
- Remove avro, hadoop-auth and jersey-json dependencies from hadoop-common to resolve CVE-2019-10202, CVE-2023-1370 and CVE-2022-45685 PR #3911
- Upgrade docker base image to resolve CVE-2023-0286 PR #3916
- Upgrade bc-fips to 1.0.2.4 to fix CVE-2022-45146 PR #3915
- Upgrade jetty version to 9.4.51.v20230217 PR #3937
- Bump guava version from 31.0.1-jre to 32.0.1-jre PR #4008
Details
https://github.com/apache/bookkeeper/pulls?q=is%3Apr+milestone%3A4.17.0+is%3Aclosed
Release 4.16.5
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
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
- Upgrade Zookeeper to 3.8.3 to address CVE-2023-44981 PR #4112
- Update Jetty dependency PR #4141
- Upgrade bc-fips to 1.0.2.4 to fix CVE-2022-45146 PR #3915
Details
https://github.com/apache/bookkeeper/pulls?q=is%3Apr+label%3Arelease%2F4.16.4+is%3Amerged+
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
- Update Jetty dependency PR #4141
- Bump guava version from 31.0.1-jre to 32.0.1-jre PR #4008
- Upgrade snappy-java to address multiple CVEs PR #3993
- Upgrade grpc and protobuf to address CVE-2023-32732 PR #3992
- Downgrade grpc and protobuf to avoid introducing breaking change PR #4001
- Fix issue with binary compatibility with older grpc versions at runtime in the client PR #3997
- Upgrade jetty version to 9.4.51.v20230217 PR #3937
- Upgrade docker base image to resolve CVE-2023-0286 PR #3916
- Upgrade bc-fips to 1.0.2.4 to fix CVE-2022-45146 PR #3915
- Remove avro, hadoop-auth and jersey-json dependencies from hadoop-common to resolve CVE-2019-10202, CVE-2023-1370 and CVE-2022-45685 PR #3911
- Sync dependency version with source version in license PR #3633
- Bump grpc from 1.45.1 to 1.47.0, solve dependency check FP PR #3305
- Optimize log4j dependency in Bookkeeper PR #3892
Details
https://github.com/apache/bookkeeper/pulls?q=is%3Apr+label%3Arelease%2F4.15.5+is%3Aclosed+
Release 4.16.3
4.16.3
Rlease 4.16.3 includes multiple bug fixes and some dependencies CVE fixes.
Apache BookKeeper users are encouraged to upgrade to 4.16.3.
The technical details of this release are summarized below.
Highlights
Bugs
- Fix AutoCloseableLifecycleComponent close exception log PR #4042
- Make compatible between DefaultEntryLogger and DirectEntryLogger PR #4041
- 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
- Remove underreplicaiton callback PR #4058
Improvements
- Force to use linux/amd64 to build release PR #4060
- Allow to set max operation numbers in a single rocksdb batch PR #4044
- Change pendingDeletedLedgers as ConcurrentHashSet PR #3989
- Enable kv logs in log4j configuration PR #3986
- Support skip invalid journal record in replying journal stage PR #3956
- Optimize getEntryLogMetadata PR #3948
Dependency updates
- Bump guava version from 31.0.1-jre to 32.0.1-jre PR #4008
- Upgrade Netty to 4.1.94.Final to address CVE-2023-34462 PR #3999
Details
https://github.com/apache/bookkeeper/pulls?q=is%3Apr+label%3Arelease%2F4.16.3+is%3Aclosed
Release 4.14.8
Release 4.14.8 includes multiple bug fixes and some dependencies CVE fixes.
Apache BookKeeper users are encouraged to upgrade to 4.14.8.
The technical details of this release are summarized below.
Highlights
Bugs
- Fix data lost when configured multiple ledger directories PR #3329
- Allow to set max operation numbers in a single rocksdb batch PR #4044
- Recycle LongWrapper finally to avoid memory leak PR #4007
- 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
- Fix 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
- Prevent transit to writable mode when forceReadOnly mode is active PR #3881
- Execute clean indexes in finally PR #3772
- Fix ReadEntryProcessor v2 SchedulingDelayStats PR #3758
- Fix RegionAwareEnsemblePlacementPolicy.newEnsemble sometimes failed problem. PR #3725
- Fix issue where checkAllLedgers could get stuck when read throttling is enabled PR #3655
- fix duplicate typeline for prometheus type PR #3137
- Fix deletedLedgers count PR #4026
Improvements
- Avoid compaction to trigger extra flushes DbLedgerStorage PR #3959
- Add small files check in garbage collection PR #3631
- Change pendingDeletedLedgers as ConcurrentHashSet PR #3989
- Support skip invalid journal record in replying journal stage PR #3956
- Use ReferenceCountUtil.release() instead of ReferenceCountUtil.safeRelease() PR #3798
- Add logs for ensemble select failed PR #3779
- New ensemble choose different rack first. PR #3721
- Show result of isFenced in log PR #3678
Dependency updates
- Upgrade rocksDB version to 6.29.4.1 PR #3947
- Upgrade jetty version to 9.4.51.v20230217 PR #3937
- Upgrade docker base image to resolve CVE-2023-0286 PR #3916
- Remove avro, hadoop-auth and jersey-json dependencies from hadoop-common to resolve CVE-2019-10202, CVE-2023-1370 and CVE-2022-45685 PR #3911
Details
https://github.com/apache/bookkeeper/pulls?q=is%3Apr+label%3Arelease%2F4.14.8+is%3Amerged
Release 4.16.2
Release 4.16.2 includes multiple bug fixes and some dependencies CVE fixes.
Apache BookKeeper users are encouraged to upgrade to 4.16.2.
The technical details of this release are summarized below.
Highlights
Bugs
- Fix trigger GC not work PR #3998
- Make slogger use current class PR #3994
- Fix Journal without flush PR #3979
- Fix npe when iterate pendingLedgersUpdates and pendingDeletedLedgers. PR #3955
- Fix ledger replicated failed blocks bookie decommission process PR #3917
- 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
- Always one orphan ledger is created PR #3813
- Fix data lost when configured multiple ledger directories PR #3329
- Fix memory leak of direct memory in direct memory entry logger. PR #3983
- Fix wrong update checkAllLedgersTime when ledgerReplication disabled PR #3939
- Fix some metrics generated by prometheus client without type info PR #3927
Improvements
- Unify ByteBufAllocator for the DirectIO component PR #3985
- Fix arbitrary file upload vulnerability with httpServerEnabled PR #3982
- Check indexBaseDir specified with ledgerBaseDir PR #3967
- Clear channel when channelInactive PR #3966
- Reduce unnecessary creation of ReplicationEnableCb objects PR #3960
- Avoid compaction to trigger extra flushes DbLedgerStorage PR #3959
- When the executor has been shut down, do not schedule task PR #3946
- Drop invalid entryFormat arg from shell command PR #3938
- Enable PCBC completionObjects autoShrink to reduce memory usage and gc PR #3913
- Recycle dropping read-write requests when various exceptions happened PR #3912
- Cleanup CbThreadFactory PR #3907
- Return activeLogChannel if new create PR #3894
- Prevent transit to writable mode when forceReadOnly mode is active PR #3881
- Execute clean indexes in finally PR #3772
- Use ChannelVoidPromise to avoid useless promise objects creation PR #3733
Dependency updates
- Upgrade grpc and protobuf to address CVE-2023-32732 PR #3992
- [Branch-4.16] Downgrade grpc and protobuf to avoid introducing breaking change PR #4001
- Fix issue with binary compatibility with older grpc versions at runtime in the client PR #3997
- Upgrade snappy-java to address multiple CVEs PR #3993
- Upgrade Netty to 4.1.93.Final PR #3975
- Upgrade jetty version to 9.4.51.v20230217 PR #3937
- Upgrade docusaurus to 2.4.0 PR #3936
- Upgrade docker base image to resolve CVE-2023-0286 PR #3916
- Remove avro, hadoop-auth and jersey-json dependencies from hadoop-common to resolve CVE-2019-10202, CVE-2023-1370 and CVE-2022-45685 PR #3911
Details
https://github.com/apache/bookkeeper/pulls?q=is%3Apr+label%3Arelease%2F4.16.2+is%3Aclosed
Release 4.16.1
Release 4.16.1 includes one critical bug fix.
Apache BookKeeper users are encouraged to upgrade to 4.16.1.
The technical details of this release are summarized below.
Highlights
Bugs
- DigestManager should not advance readerIndex PR #3919
Details
https://github.com/apache/bookkeeper/pulls?q=is%3Apr+label%3Arelease%2F4.16.1+is%3Aclosed