Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
ee6ddde
[improve][broker] Ensure metadata session state visibility and improv…
Demogorgon314 Jan 19, 2026
edf83cc
[improve][broker] Ensure metadata session state visibility and improv…
Demogorgon314 Jan 19, 2026
1d79374
[improve][broker] Upgrade bookkeeper to 4.17.3 (#25166)
zymap Jan 21, 2026
6b76436
[fix][ml] Fix NoSuchElementException in EntryCountEstimator caused by…
lhotari Jan 23, 2026
f574391
[fix][test] Bump org.assertj:assertj-core from 3.27.5 to 3.27.7 (#25186)
dependabot[bot] Jan 27, 2026
c589d21
[improve][misc] Upgrade snappy version to 1.1.10.8 (#25182)
lhotari Jan 24, 2026
4eff75a
[fix][proxy] Close client connection immediately when credentials exp…
nodece Jan 24, 2026
1226881
[fix][client] ControlledClusterFailover avoid unnecessary reconnectio…
thetumbled Jan 23, 2026
51787d9
[fix][sec] Bump org.apache.solr:solr-core from 9.8.0 to 9.10.1 in /pu…
dependabot[bot] Jan 23, 2026
944d1ff
[improve][pip] PIP-453: Improve the metadata store threading model (#…
BewareMyPower Jan 26, 2026
ab607ec
[improve][client]Reduce unnecessary getPartitionedTopicMetadata reque…
zjxxzjwang Jan 27, 2026
82a4086
[fix][misc] Allow JWT tokens in OpenID auth without nbf claim (#25197)
lhotari Jan 30, 2026
b0ceda7
reverted-mismatched-conflicts-from-25166-commit
hshankar31 Feb 5, 2026
9d88d1b
fix licence
hshankar31 Feb 5, 2026
f6116b6
fix licence for commons codec io lang3
hshankar31 Feb 5, 2026
21a64f9
fix unit test update for commit 25132
hshankar31 Feb 9, 2026
fcfb18b
[fix][sec] Exclude org.lz4:lz4-java and standardize on at.yawk.lz4-ja…
guptas6est Feb 2, 2026
83f66b1
[fix] [test] Upgrade docker-java to 3.7.0 (#25209)
merlimat Feb 4, 2026
e89916c
[fix][client] Fix race condition between isDuplicate() and flushAsync…
oneby-wang Feb 4, 2026
b036f39
[fix][build][branch-4.0] Fix build after invalid cherry-pick merge co…
lhotari Feb 4, 2026
e29b2ed
fix licence and pom for lz4-java
hshankar31 Feb 9, 2026
2c4ede0
[improve][monitor] Upgrade OpenTelemetry to 1.56.0, Otel instrumentat…
lhotari Nov 18, 2025
b403cae
[improve][proxy] Add regression tests for package upload with 'Expect…
nodece Feb 5, 2026
e55d902
[improve][meta] PIP-453: Improve the metadata store threading model (…
BewareMyPower Feb 4, 2026
64922f2
[fix][test]Fix flaky ExtensibleLoadManagerImplTest_testGetMetrics (#2…
poorbarcode Feb 5, 2026
c633377
[fix][broker] Fix ManagedCursorImpl.asyncDelete() method may lose pre…
oneby-wang Feb 5, 2026
bfb8edc
[fix][broker]Fix ledgerHandle failed to read by using new BK API (#25…
poorbarcode Feb 5, 2026
28f5af6
[fix][client] Fix producer synchronous retry handling in failPendingM…
sandeep-mst Feb 5, 2026
564147c
[fix][broker] Prevent missed topic changes in topic watchers and sche…
lhotari Feb 6, 2026
bd6542c
[fix] Update bookkeeper version for asyncOpenLedger() changes
hshankar31 Feb 11, 2026
2d9eb62
[fix][sec] Upgrade OpenSearch to 2.19.4 to remediate CVE-2025-9624 (#…
guptas6est Feb 6, 2026
41ebd85
[feat][io] implement pip-297 for jdbc sinks (#25195)
0asys Feb 6, 2026
f4b3fda
[fix][broker] Fix httpProxyTimeout config (#25223)
nodece Feb 6, 2026
f2a7647
[improve][broker] Add strictAuthMethod to require explicit authentica…
omarkj Feb 6, 2026
cfa360d
[feat][client] oauth2 trustcerts file and timeouts (#24944)
gulecroc Nov 11, 2025
b89905a
[improve][client] Make authorization server metadata path configurabl…
izumo27 Feb 6, 2026
464cedc
[improve][broker] Add idle timeout support for http (#25224)
nodece Feb 6, 2026
8637031
[fix][sec] Upgrade jose4j to 0.9.6 to address CVE-2024-29371 (#25095)
lhotari Dec 22, 2025
dd6efa3
[fix][build][branch-4.0] Fix LICENSE.bin.txt
lhotari Feb 6, 2026
c250275
[fix][broker] Fix incomplete futures in topic property update/delete …
coderzc Feb 9, 2026
6d22539
[fix][test] Fix Mockito stubbing race in TopicListServiceTest (#25227)
Denovo1998 Feb 9, 2026
a213b7c
[improve][broker] Give the detail error msg when authenticate failed …
Technoboy- Feb 9, 2026
02b00b2
[fix][client] Send all chunkMessageIds to broker for redelivery (#25229)
berg223 Feb 9, 2026
d53e299
[fix][broker] Fix transactionMetadataFuture completeExceptionally wit…
zhanghaou Feb 9, 2026
c8cf38e
[fix] Licsense issue with opentelemetry detector jar
hshankar31 Feb 11, 2026
c777e3a
[fix] correcting mismatch conflicts
hshankar31 Feb 11, 2026
c83f48a
[fix] correcting webservice CI check error
hshankar31 Feb 11, 2026
3a2bf1e
fix shell license correction
hshankar31 Feb 11, 2026
a0e4b6a
fix lombok getter issue
hshankar31 Feb 12, 2026
3efce1b
fix trying to test if offline build fix the lombok error
hshankar31 Feb 14, 2026
22b67e4
fix for readLedgerHandler() CI test failure
hshankar31 Feb 14, 2026
7bb3348
Revert "[improve][meta] PIP-453: Improve the metadata store threading…
coderzc Feb 13, 2026
7717857
revert commented dist management
hshankar31 Feb 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions conf/broker.conf
Original file line number Diff line number Diff line change
Expand Up @@ -1040,6 +1040,9 @@ httpServerThreadPoolQueueSize=8192
# Capacity for accept queue in the HTTP server
httpServerAcceptQueueSize=8192

# Idle timeout for HTTP server connections in milliseconds
httpServerIdleTimeout=30000

# Maximum number of inbound http connections. (0 to disable limiting)
maxHttpServerConnections=2048

Expand Down
6 changes: 6 additions & 0 deletions conf/proxy.conf
Original file line number Diff line number Diff line change
Expand Up @@ -315,6 +315,9 @@ httpServerThreadPoolQueueSize=8192
# Capacity for accept queue in the HTTP server
httpServerAcceptQueueSize=8192

#Idle timeout for HTTP server connections in milliseconds
httpServerIdleTimeout=30000

# Maximum number of inbound http connections. (0 to disable limiting)
maxHttpServerConnections=2048

Expand All @@ -326,6 +329,9 @@ maxConcurrentHttpRequests=1024
# denial of service attacks.
httpMaxRequestHeaderSize = 8192

# The idle timeout value for HTTP proxy is in millisecond
httpProxyIdleTimeout=30000

## Configure the datasource of basic authenticate, supports the file and Base64 format.
# file:
# basicAuthConf=/path/my/.htpasswd
Expand Down
5 changes: 4 additions & 1 deletion conf/standalone.conf
Original file line number Diff line number Diff line change
Expand Up @@ -1435,4 +1435,7 @@ topicCompactionRetainNullKey=false
# If value is "org.apache.pulsar.compaction.EventTimeCompactionServiceFactory",
# will create topic compaction service based on message eventTime.
# By default compaction service is based on message publishing order.
compactionServiceFactoryClassName=org.apache.pulsar.compaction.PulsarCompactionServiceFactory
compactionServiceFactoryClassName=org.apache.pulsar.compaction.PulsarCompactionServiceFactory

# Idle timeout for HTTP server connections in milliseconds
httpServerIdleTimeout=30000
136 changes: 68 additions & 68 deletions distribution/server/src/assemble/LICENSE.bin.txt
Original file line number Diff line number Diff line change
Expand Up @@ -283,15 +283,15 @@ The Apache Software License, Version 2.0
- com.yahoo.datasketches-sketches-core-0.8.3.jar
* Apache Commons
- commons-beanutils-commons-beanutils-1.11.0.jar
- commons-cli-commons-cli-1.9.0.jar
- commons-codec-commons-codec-1.18.0.jar
- commons-io-commons-io-2.19.0.jar
- commons-cli-commons-cli-1.11.0.jar
- commons-codec-commons-codec-1.20.0.jar
- commons-io-commons-io-2.21.0.jar
- commons-logging-commons-logging-1.3.5.jar
- org.apache.commons-commons-collections4-4.5.0.jar
- org.apache.commons-commons-compress-1.27.1.jar
- org.apache.commons-commons-compress-1.28.0.jar
- org.apache.commons-commons-configuration2-2.12.0.jar
- org.apache.commons-commons-lang3-3.18.0.jar
- org.apache.commons-commons-text-1.13.1.jar
- org.apache.commons-commons-lang3-3.19.0.jar
- org.apache.commons-commons-text-1.14.0.jar
* Netty
- io.netty-netty-buffer-4.1.130.Final.jar
- io.netty-netty-codec-4.1.130.Final.jar
Expand Down Expand Up @@ -338,12 +338,12 @@ The Apache Software License, Version 2.0
- io.prometheus-simpleclient_tracer_otel-0.16.0.jar
- io.prometheus-simpleclient_tracer_otel_agent-0.16.0.jar
* Prometheus exporter
- io.prometheus-prometheus-metrics-config-1.3.4.jar
- io.prometheus-prometheus-metrics-exporter-common-1.3.4.jar
- io.prometheus-prometheus-metrics-exporter-httpserver-1.3.4.jar
- io.prometheus-prometheus-metrics-exposition-formats-1.3.4.jar
- io.prometheus-prometheus-metrics-model-1.3.4.jar
- io.prometheus-prometheus-metrics-exposition-textformats-1.3.4.jar
- io.prometheus-prometheus-metrics-config-1.3.10.jar
- io.prometheus-prometheus-metrics-exporter-common-1.3.10.jar
- io.prometheus-prometheus-metrics-exporter-httpserver-1.3.10.jar
- io.prometheus-prometheus-metrics-exposition-formats-no-protobuf-1.3.10.jar
- io.prometheus-prometheus-metrics-model-1.3.10.jar
- io.prometheus-prometheus-metrics-exposition-textformats-1.3.10.jar
* Jakarta Bean Validation API
- jakarta.validation-jakarta.validation-api-2.0.2.jar
- javax.validation-validation-api-1.1.0.Final.jar
Expand All @@ -357,34 +357,34 @@ The Apache Software License, Version 2.0
- net.java.dev.jna-jna-jpms-5.12.1.jar
- net.java.dev.jna-jna-platform-jpms-5.12.1.jar
* BookKeeper
- com.datastax.oss-bookkeeper-common-4.17.1.0.0.4.jar
- com.datastax.oss-bookkeeper-common-allocator-4.17.1.0.0.4.jar
- com.datastax.oss-bookkeeper-proto-4.17.1.0.0.4.jar
- com.datastax.oss-bookkeeper-server-4.17.1.0.0.4.jar
- com.datastax.oss-bookkeeper-tools-framework-4.17.1.0.0.4.jar
- com.datastax.oss-circe-checksum-4.17.1.0.0.4.jar
- com.datastax.oss-cpu-affinity-4.17.1.0.0.4.jar
- com.datastax.oss-statelib-4.17.1.0.0.4.jar
- com.datastax.oss-stream-storage-api-4.17.1.0.0.4.jar
- com.datastax.oss-stream-storage-common-4.17.1.0.0.4.jar
- com.datastax.oss-stream-storage-java-client-4.17.1.0.0.4.jar
- com.datastax.oss-stream-storage-java-client-base-4.17.1.0.0.4.jar
- com.datastax.oss-stream-storage-proto-4.17.1.0.0.4.jar
- com.datastax.oss-stream-storage-server-4.17.1.0.0.4.jar
- com.datastax.oss-stream-storage-service-api-4.17.1.0.0.4.jar
- com.datastax.oss-stream-storage-service-impl-4.17.1.0.0.4.jar
- com.datastax.oss-http-server-4.17.1.0.0.4.jar
- com.datastax.oss-vertx-http-server-4.17.1.0.0.4.jar
- com.datastax.oss-bookkeeper-stats-api-4.17.1.0.0.4.jar
- com.datastax.oss-prometheus-metrics-provider-4.17.1.0.0.4.jar
- com.datastax.oss-distributedlog-common-4.17.1.0.0.4.jar
- com.datastax.oss-distributedlog-core-4.17.1.0.0.4-tests.jar
- com.datastax.oss-distributedlog-core-4.17.1.0.0.4.jar
- com.datastax.oss-distributedlog-protocol-4.17.1.0.0.4.jar
- com.datastax.oss-codahale-metrics-provider-4.17.1.0.0.4.jar
- com.datastax.oss-bookkeeper-slogger-api-4.17.1.0.0.4.jar
- com.datastax.oss-bookkeeper-slogger-slf4j-4.17.1.0.0.4.jar
- com.datastax.oss-native-io-4.17.1.0.0.4.jar
- com.datastax.oss-bookkeeper-common-4.17.1.0.0.5.jar
- com.datastax.oss-bookkeeper-common-allocator-4.17.1.0.0.5.jar
- com.datastax.oss-bookkeeper-proto-4.17.1.0.0.5.jar
- com.datastax.oss-bookkeeper-server-4.17.1.0.0.5.jar
- com.datastax.oss-bookkeeper-tools-framework-4.17.1.0.0.5.jar
- com.datastax.oss-circe-checksum-4.17.1.0.0.5.jar
- com.datastax.oss-cpu-affinity-4.17.1.0.0.5.jar
- com.datastax.oss-statelib-4.17.1.0.0.5.jar
- com.datastax.oss-stream-storage-api-4.17.1.0.0.5.jar
- com.datastax.oss-stream-storage-common-4.17.1.0.0.5.jar
- com.datastax.oss-stream-storage-java-client-4.17.1.0.0.5.jar
- com.datastax.oss-stream-storage-java-client-base-4.17.1.0.0.5.jar
- com.datastax.oss-stream-storage-proto-4.17.1.0.0.5.jar
- com.datastax.oss-stream-storage-server-4.17.1.0.0.5.jar
- com.datastax.oss-stream-storage-service-api-4.17.1.0.0.5.jar
- com.datastax.oss-stream-storage-service-impl-4.17.1.0.0.5.jar
- com.datastax.oss-http-server-4.17.1.0.0.5.jar
- com.datastax.oss-vertx-http-server-4.17.1.0.0.5.jar
- com.datastax.oss-bookkeeper-stats-api-4.17.1.0.0.5.jar
- com.datastax.oss-prometheus-metrics-provider-4.17.1.0.0.5.jar
- com.datastax.oss-distributedlog-common-4.17.1.0.0.5.jar
- com.datastax.oss-distributedlog-core-4.17.1.0.0.5-tests.jar
- com.datastax.oss-distributedlog-core-4.17.1.0.0.5.jar
- com.datastax.oss-distributedlog-protocol-4.17.1.0.0.5.jar
- com.datastax.oss-codahale-metrics-provider-4.17.1.0.0.5.jar
- com.datastax.oss-bookkeeper-slogger-api-4.17.1.0.0.5.jar
- com.datastax.oss-bookkeeper-slogger-slf4j-4.17.1.0.0.5.jar
- com.datastax.oss-native-io-4.17.1.0.0.5.jar
* Apache HTTP Client
- org.apache.httpcomponents-httpclient-4.5.13.jar
- org.apache.httpcomponents-httpcore-4.4.15.jar
Expand Down Expand Up @@ -418,17 +418,16 @@ The Apache Software License, Version 2.0
* Google Error Prone Annotations - com.google.errorprone-error_prone_annotations-2.45.0.jar
* Apache Thrift - org.apache.thrift-libthrift-0.14.2.jar
* OkHttp3
- com.squareup.okhttp3-logging-interceptor-4.9.3.jar
- com.squareup.okhttp3-okhttp-4.9.3.jar
- com.squareup.okhttp3-logging-interceptor-5.3.1.jar
- com.squareup.okhttp3-okhttp-5.3.1.jar
- com.squareup.okhttp3-okhttp-jvm-5.3.1.jar
* Okio
- com.squareup.okio-okio-3.4.0.jar
- com.squareup.okio-okio-jvm-3.4.0.jar
- com.squareup.okio-okio-3.16.3.jar
- com.squareup.okio-okio-jvm-3.16.3.jar
* Javassist -- org.javassist-javassist-3.25.0-GA.jar
* Kotlin Standard Lib
- org.jetbrains.kotlin-kotlin-stdlib-1.8.20.jar
- org.jetbrains.kotlin-kotlin-stdlib-common-1.8.20.jar
- org.jetbrains.kotlin-kotlin-stdlib-jdk7-1.8.20.jar
- org.jetbrains.kotlin-kotlin-stdlib-jdk8-1.8.20.jar
- org.jetbrains-annotations-13.0.jar
* gRPC
- io.grpc-grpc-all-1.75.0.jar
Expand Down Expand Up @@ -505,7 +504,7 @@ The Apache Software License, Version 2.0
- org.apache.zookeeper-zookeeper-jute-3.9.4.jar
- org.apache.zookeeper-zookeeper-prometheus-metrics-3.9.4.jar
* Snappy Java
- org.xerial.snappy-snappy-java-1.1.10.5.jar
- org.xerial.snappy-snappy-java-1.1.10.8.jar
* Google HTTP Client
- com.google.http-client-google-http-client-gson-1.41.0.jar
- com.google.http-client-google-http-client-1.41.0.jar
Expand All @@ -519,27 +518,28 @@ The Apache Software License, Version 2.0
* RoaringBitmap
- org.roaringbitmap-RoaringBitmap-1.2.0.jar
* OpenTelemetry
- io.opentelemetry-opentelemetry-api-1.45.0.jar
- io.opentelemetry-opentelemetry-api-incubator-1.45.0-alpha.jar
- io.opentelemetry-opentelemetry-context-1.45.0.jar
- io.opentelemetry-opentelemetry-exporter-common-1.45.0.jar
- io.opentelemetry-opentelemetry-exporter-otlp-1.45.0.jar
- io.opentelemetry-opentelemetry-exporter-otlp-common-1.45.0.jar
- io.opentelemetry-opentelemetry-exporter-prometheus-1.45.0-alpha.jar
- io.opentelemetry-opentelemetry-exporter-sender-okhttp-1.45.0.jar
- io.opentelemetry-opentelemetry-sdk-1.45.0.jar
- io.opentelemetry-opentelemetry-sdk-common-1.45.0.jar
- io.opentelemetry-opentelemetry-sdk-extension-autoconfigure-1.45.0.jar
- io.opentelemetry-opentelemetry-sdk-extension-autoconfigure-spi-1.45.0.jar
- io.opentelemetry-opentelemetry-sdk-logs-1.45.0.jar
- io.opentelemetry-opentelemetry-sdk-metrics-1.45.0.jar
- io.opentelemetry-opentelemetry-sdk-trace-1.45.0.jar
- io.opentelemetry.instrumentation-opentelemetry-instrumentation-api-1.33.6.jar
- io.opentelemetry.instrumentation-opentelemetry-instrumentation-api-semconv-1.33.6-alpha.jar
- io.opentelemetry.instrumentation-opentelemetry-resources-1.33.6-alpha.jar
- io.opentelemetry.instrumentation-opentelemetry-runtime-telemetry-java17-1.33.6-alpha.jar
- io.opentelemetry.instrumentation-opentelemetry-runtime-telemetry-java8-1.33.6-alpha.jar
- io.opentelemetry.semconv-opentelemetry-semconv-1.29.0-alpha.jar
- io.opentelemetry-opentelemetry-api-1.56.0.jar
- io.opentelemetry-opentelemetry-api-incubator-1.56.0-alpha.jar
- io.opentelemetry-opentelemetry-common-1.56.0.jar
- io.opentelemetry-opentelemetry-context-1.56.0.jar
- io.opentelemetry-opentelemetry-exporter-common-1.56.0.jar
- io.opentelemetry-opentelemetry-exporter-otlp-1.56.0.jar
- io.opentelemetry-opentelemetry-exporter-otlp-common-1.56.0.jar
- io.opentelemetry-opentelemetry-exporter-prometheus-1.56.0-alpha.jar
- io.opentelemetry-opentelemetry-exporter-sender-okhttp-1.56.0.jar
- io.opentelemetry-opentelemetry-sdk-1.56.0.jar
- io.opentelemetry-opentelemetry-sdk-common-1.56.0.jar
- io.opentelemetry-opentelemetry-sdk-extension-autoconfigure-1.56.0.jar
- io.opentelemetry-opentelemetry-sdk-extension-autoconfigure-spi-1.56.0.jar
- io.opentelemetry-opentelemetry-sdk-logs-1.56.0.jar
- io.opentelemetry-opentelemetry-sdk-metrics-1.56.0.jar
- io.opentelemetry-opentelemetry-sdk-trace-1.56.0.jar
- io.opentelemetry.instrumentation-opentelemetry-instrumentation-api-2.21.0.jar
- io.opentelemetry.instrumentation-opentelemetry-instrumentation-api-incubator-2.21.0-alpha.jar
- io.opentelemetry.instrumentation-opentelemetry-resources-2.21.0-alpha.jar
- io.opentelemetry.instrumentation-opentelemetry-runtime-telemetry-java17-2.21.0-alpha.jar
- io.opentelemetry.instrumentation-opentelemetry-runtime-telemetry-java8-2.21.0-alpha.jar
- io.opentelemetry.semconv-opentelemetry-semconv-1.37.0.jar
- com.google.cloud.opentelemetry-detector-resources-support-0.33.0.jar
- io.opentelemetry.contrib-opentelemetry-gcp-resources-1.48.0-alpha.jar
* Spotify completable-futures
Expand Down
23 changes: 12 additions & 11 deletions distribution/shell/src/assemble/LICENSE.bin.txt
Original file line number Diff line number Diff line change
Expand Up @@ -338,11 +338,11 @@ The Apache Software License, Version 2.0
- memory-0.8.3.jar
- sketches-core-0.8.3.jar
* Apache Commons
- commons-codec-1.18.0.jar
- commons-io-2.19.0.jar
- commons-lang3-3.18.0.jar
- commons-text-1.13.1.jar
- commons-compress-1.27.1.jar
- commons-codec-1.20.0.jar
- commons-io-2.21.0.jar
- commons-lang3-3.19.0.jar
- commons-text-1.14.0.jar
- commons-compress-1.28.0.jar
* Netty
- netty-buffer-4.1.130.Final.jar
- netty-codec-4.1.130.Final.jar
Expand Down Expand Up @@ -385,14 +385,15 @@ The Apache Software License, Version 2.0
- log4j-slf4j2-impl-2.25.3.jar
- log4j-web-2.25.3.jar
* OpenTelemetry
- opentelemetry-api-1.45.0.jar
- opentelemetry-api-incubator-1.45.0-alpha.jar
- opentelemetry-context-1.45.0.jar
- opentelemetry-api-1.56.0.jar
- opentelemetry-api-incubator-1.56.0-alpha.jar
- opentelemetry-common-1.56.0.jar
- opentelemetry-context-1.56.0.jar

* BookKeeper
- bookkeeper-common-allocator-4.17.1.0.0.4.jar
- cpu-affinity-4.17.1.0.0.4.jar
- circe-checksum-4.17.1.0.0.4.jar
- bookkeeper-common-allocator-4.17.1.0.0.5.jar
- cpu-affinity-4.17.1.0.0.5.jar
- circe-checksum-4.17.1.0.0.5.jar
* AirCompressor
- aircompressor-0.27.jar
* AsyncHttpClient
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import java.util.Collection;
import java.util.Map;
import java.util.NavigableMap;
import java.util.NoSuchElementException;
import org.apache.bookkeeper.client.LedgerHandle;
import org.apache.bookkeeper.mledger.Position;
import org.apache.bookkeeper.mledger.PositionFactory;
Expand Down Expand Up @@ -82,17 +83,15 @@ static int internalEstimateEntryCountByBytesSize(int maxEntries, long maxSizeByt
return maxEntries;
}

// Adjust the read position to ensure it falls within the valid range of available ledgers.
// This handles special cases such as EARLIEST and LATEST positions by resetting them
// to the first available ledger or the last active ledger, respectively.
if (lastLedgerId != null && readPosition.getLedgerId() > lastLedgerId.longValue()) {
readPosition = PositionFactory.create(lastLedgerId, Math.max(lastLedgerTotalEntries - 1, 0));
} else if (lastLedgerId == null && readPosition.getLedgerId() > ledgersInfo.lastKey()) {
Map.Entry<Long, MLDataFormats.ManagedLedgerInfo.LedgerInfo> lastEntry = ledgersInfo.lastEntry();
readPosition =
PositionFactory.create(lastEntry.getKey(), Math.max(lastEntry.getValue().getEntries() - 1, 0));
} else if (readPosition.getLedgerId() < ledgersInfo.firstKey()) {
readPosition = PositionFactory.create(ledgersInfo.firstKey(), 0);
if (ledgersInfo.isEmpty()) {
return 1;
}

try {
readPosition = adjustReadPosition(readPosition, ledgersInfo, lastLedgerId, lastLedgerTotalEntries);
} catch (NoSuchElementException e) {
// there was a race condition where ledgersInfo became empty just before adjustReadPosition was called
return 1;
}

long estimatedEntryCount = 0;
Expand Down Expand Up @@ -183,4 +182,28 @@ static int internalEstimateEntryCountByBytesSize(int maxEntries, long maxSizeByt
// Ensure at least one entry is always returned as the result
return Math.max((int) Math.min(estimatedEntryCount, maxEntries), 1);
}

private static Position adjustReadPosition(Position readPosition,
NavigableMap<Long, MLDataFormats.ManagedLedgerInfo.LedgerInfo>
ledgersInfo,
Long lastLedgerId, long lastLedgerTotalEntries) {
// Adjust the read position to ensure it falls within the valid range of available ledgers.
// This handles special cases such as EARLIEST and LATEST positions by resetting them
// to the first available ledger or the last active ledger, respectively.
if (lastLedgerId != null && readPosition.getLedgerId() > lastLedgerId.longValue()) {
return PositionFactory.create(lastLedgerId, Math.max(lastLedgerTotalEntries - 1, 0));
}
long lastKey = ledgersInfo.lastKey();
if (lastLedgerId == null && readPosition.getLedgerId() > lastKey) {
Map.Entry<Long, MLDataFormats.ManagedLedgerInfo.LedgerInfo> lastEntry = ledgersInfo.lastEntry();
if (lastEntry != null && lastEntry.getKey() == lastKey) {
return PositionFactory.create(lastEntry.getKey(), Math.max(lastEntry.getValue().getEntries() - 1, 0));
}
}
long firstKey = ledgersInfo.firstKey();
if (readPosition.getLedgerId() < firstKey) {
return PositionFactory.create(firstKey, 0);
}
return readPosition;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -685,7 +685,7 @@ protected void recoverFromLedger(final ManagedCursorInfo info, final VoidCallbac
};
try {
bookkeeper.asyncOpenLedger(ledgerId, digestType, getConfig().getPassword(), openCallback,
null);
null, true);
} catch (Throwable t) {
log.error("[{}] Encountered error on opening cursor ledger {} for cursor {}",
ledger.getName(), ledgerId, name, t);
Expand Down Expand Up @@ -2676,10 +2676,7 @@ public void asyncDelete(Iterable<Position> positions, AsyncCallbacks.DeleteCallb
}

try {
Map<String, Long> properties = lastMarkDeleteEntry != null ? lastMarkDeleteEntry.properties
: Collections.emptyMap();

internalAsyncMarkDelete(newMarkDeletePosition, properties, new MarkDeleteCallback() {
internalAsyncMarkDelete(newMarkDeletePosition, null, new MarkDeleteCallback() {
@Override
public void markDeleteComplete(Object ctx) {
callback.deleteComplete(ctx);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -472,7 +472,7 @@ public void operationComplete(ManagedLedgerInfo mlInfo, Stat stat) {
log.debug("[{}] Opening ledger {}", name, id);
}
mbean.startDataLedgerOpenOp();
bookKeeper.asyncOpenLedger(id, digestType, config.getPassword(), opencb, null);
bookKeeper.asyncOpenLedger(id, digestType, config.getPassword(), opencb, null, true);
} else {
initializeBookKeeper(callback);
}
Expand Down Expand Up @@ -1809,7 +1809,7 @@ synchronized void addEntryFailedDueToConcurrentlyModified(final LedgerHandle cur
handleBadVersion(new BadVersionException("the current ledger " + currentLedger.getId()
+ " was concurrent modified by a other bookie client. The error code is: " + errorCode));
}
}, null);
}, null, true);
}

synchronized void ledgerClosed(final LedgerHandle lh) {
Expand Down
Loading
Loading