9.4.2
QuestDB 9.4.2 is a hardening release that builds on 9.4.1, driven by continued fuzz testing and stricter query-result assertions. The posting and covering index introduced in 9.4.0 gets the most attention: this release fixes incorrect results from indexed reads and a crash on specific partition-maintenance paths, and reclaims an on-disk file leak. On the Parquet side, one fix keeps a table from being suspended when an all-null column is converted back to native form, and others harden reads of malformed or foreign files. The remaining fixes span temporal joins, GROUP BY, SELECT DISTINCT, and aggregates. The release also upgrades the web console to 1.2.3.
Two behavior changes are worth noting before upgrading: a bare INDEX TYPE POSTING is now non-covering by default, and SHOW CREATE TABLE now rejects views and materialized views. Both are detailed below.
For any questions or feedback, please join us on Slack or on Discourse.
See also our prettier release notes page.
- A bare
INDEX TYPE POSTING(noINCLUDE) is now non-covering. In 9.4.0–9.4.1 a posting index declared without an explicitINCLUDEclause silently auto-appended the designated timestamp to its covering set, turning it into a covering index — an unintended default. From 9.4.2, a posting index with noINCLUDEis non-covering; the timestamp auto-include (cairo.posting.index.auto.include.timestamp, still defaulttrue) now only rounds out an explicitINCLUDEset and never makes a non-covering index covering on its own. Existing tables are unaffected — the covering flag is persisted per-column in_metaand read back unchanged — so this changes only newly created or re-declared indexes.SHOW CREATE TABLEnow renders such a column asINDEX TYPE POSTINGrather thanINDEX TYPE POSTING INCLUDE (ts), and aWHERE sym = ...predicate takes the plain posting-filter cursor instead of the covering cursor. (#7203) SHOW CREATE TABLEnow rejects views and materialized views. Previously it rendered a misleadingCREATE TABLEstatement for any object kind; executing that DDL would have created a plain table rather than the view. It now errors withtable name expected, got view or materialized view name. UseSHOW CREATE VIEW/SHOW CREATE MATERIALIZED VIEWfor those objects. The sibling statements now also name the actual object kind in their mismatch errors. (#7208)
Upgraded to 1.2.3 (#7199):
- Share links to queries from the editor dropdown and via keyboard shortcuts.
- Storage policy now shows in table details and is supported in the "create materialized view" quick action.
- Fixed stale user and data after SSO logout.
- Increased the query-validation debounce time.
- Fixed a use-after-free crash (SIGSEGV) on random access over a Parquet partition — for example a query with
LIMITover a Parquet-backed scan. (#7195) - Fixed a
ClassCastExceptioncrash in parallel keyed GROUP BY reading through a covering index. (#7150) - Fixed crashes in ASOF/LT joins between
STRING/VARCHARandSYMBOLkeys, on both the full-fat and Light paths. (#7150) - Fixed an assertion crash when a NULL array value is used as a GROUP BY map key. (#7150)
- Fixed an aggregate (
count(),sum(), ...) over aUNION ALLof aliased sub-queries crashing query compilation with an internal error (a 500 in the web console).UNIONcolumns are now matched by position; the previous by-name matching was silently wrong for differently-aliased branches. Acairo.sql.legacy.union.column.propagationflag (defaultfalse) restores the old behavior as an operational rollback. (#7210) - Fixed an ASOF join (Dense algorithm) dropping matches when its cursor is read more than once — for example by a window function, a cached factory re-running the query, or a parent operator. (#7195)
- Fixed
<symbols> IN (...) LATEST ON tsover a multi-partition table returning rows not ordered by the designated timestamp. (#7195) - Fixed
count()over a keyed GROUP BY subquery filtered on the aggregate alias (a HAVING-style predicate) reporting phantom duplicate groups that do not exist. (#7202) - Fixed
count(*)and full-scan size calculation throwing instead of contributing zero rows when an empty partition is absent from disk — for example one omitted by a backup or restore. (#7195) - Fixed
LIMIT lo, hiand result-size calculation over a cross join with an unknown-size input counting or skipping too few rows. (#7195) - Fixed compile-time failures (
Invalid column,ArrayIndexOutOfBoundsException) onSELECT DISTINCTand GROUP BY queries with qualified (t.col), duplicated, or constant-aliased projections. (#7150) - Fixed
last()/mode()over a constantSYMBOLreturning the constant instead of NULL. (#7150) - Fixed wrong JIT-filter results when a
LONGvalue appears only as a literal inside narrow-integer arithmetic; the JIT path now matches the scalar path at 64-bit width. (#7150) - Fixed native-memory leaks: posting-index reader buffers stranded when a row cursor errors mid-iteration, and per-worker array GROUP BY keys orphaned under a mixed thread-safe / non-thread-safe key set. (#7150)
INnow accepts IPv4 list literals, e.g.addr IN ('1.2.3.4'::ipv4, '5.6.7.8'::ipv4), instead of failing to compile. (#7150)
- Fixed a JVM crash (covering index) or missing/short indexed counts (non-covering index) after a partition squash, an in-range O3 commit, or a WAL auto-squash that spills past the indexer budget on a hot key. (#7203)
- Fixed covered reads returning NULL for a whole partition after an O3 or squash reseal of a Parquet partition carrying a covering posting index. (#7203)
- Fixed an incomplete covered sidecar on the WAL fast-lag apply path when a mid-stream spill flush occurred during indexing, which could over-read on a later covered read. (#7203)
- Fixed the covering configuration being lost after
ALTER TABLE ... ALTER COLUMN ... SYMBOL CAPACITY, which silently demoted the posting index to non-covering for all later readers. (#7203) - Fixed an on-disk value-file (
.pv) leak when a Parquet index reseal spilled; the superseded intermediate file is now reclaimed through the writer's scoreboard-gated purge queue. (#7203) - Hardened the Parquet seal-purge state with a single leaf lock, so the concurrent O3-worker and writer-thread paths are safe by construction rather than by thread-join timing. (#7203)
- Fixed a Parquet read failure on an all-null integer column (
INT/LONG) page that usedDELTA_BINARY_PACKEDencoding. The failure surfaced on an eager, full-row-group read — converting a Parquet partition back to native, or WAL apply re-running that conversion, notably under replication where it suspended the table on both primary and replica — while a lazySELECTover the same partition was unaffected. Files already written by affected versions stay readable; newly written files carry a valid header. There is no format or version bump. (#7212) - Hardened the Parquet reader against malformed or foreign-produced files reachable through the
read_parquet()function and partition conversion: a range of inputs (out-of-range delta bit widths, badDELTA_BINARY_PACKEDheaders, integer-overflowing miniblock sizes, oversized varint values) that previously aborted the JVM via a Rust panic now return a clean error instead. Valid files decode exactly as before. (#7212)
- chore(ui): upgrade web console to 1.2.3 by @emrberk in #7199
- fix(core): fix posting index crash and missing rows after partition squash by @nwoolmer in #7203
- fix(core): fix all-null Parquet column reads and crashes on malformed files by @glasstiger in #7212
- fix(sql): fix wrong results and memory leaks in posting-index, join and group-by queries by @puzpuzpuz in #7150
- fix(sql): fix a parquet query crash and wrong results in latest-by, ASOF joins, and counts by @bluestreak01 in #7195
- fix(sql): fix count() over a GROUP BY subquery reporting phantom duplicates by @ideoma in #7202
- fix(sql): fix UNION ALL column mismatch under aggregates by @nwoolmer in #7210
- fix(sql): reject views and materialized views in SHOW CREATE TABLE by @nwoolmer in #7208
Full Changelog: 9.4.1...9.4.2
OpenSSL 3.0.21
OpenSSL 3.0.21 is a security patch release. The most severe CVE fixed in this release is High.
This release incorporates the following bug fixes and mitigations:
-
Fixed heap use-after-free in
PKCS7_verify(). (CVE-2026-45447) -
Fixed CMS
AuthEnvelopedDataprocessing may accept forged messages. (CVE-2026-34182) -
Fixed AES-OCB IV ignored on
EVP_Cipher()path. (CVE-2026-45445) -
Fixed possible heap buffer overflow in ASN.1 multibyte string conversion. (CVE-2026-7383)
-
Fixed out-of-bounds read in CMS password-based decryption. (CVE-2026-9076)
-
Fixed heap buffer over-read in ASN.1 content parsing. (CVE-2026-34180)
-
Fixed possible NULL dereference in password-dased CMS decryption. (CVE-2026-42766)
-
Fixed FFC-DH peer validation uses attacker-supplied
q. (CVE-2026-42770) -
Fixed incorrect tag processing for empty messages in AES-GCM-SIV and AES-SIV modes. (CVE-2026-45446)
OpenSSL 3.4.6
OpenSSL 3.4.6 is a security patch release. The most severe CVE fixed in this release is High.
This release incorporates the following bug fixes and mitigations:
-
Fixed heap use-after-free in
PKCS7_verify(). (CVE-2026-45447) -
Fixed CMS
AuthEnvelopedDataprocessing may accept forged messages. (CVE-2026-34182) -
Fixed unbounded memory growth in the QUIC
PATH_CHALLENGEhandler. (CVE-2026-34183) -
Fixed AES-OCB IV ignored on
EVP_Cipher()path. (CVE-2026-45445) -
Fixed possible heap buffer overflow in ASN.1 multibyte string conversion. (CVE-2026-7383)
-
Fixed out-of-bounds read in CMS password-based decryption. (CVE-2026-9076)
-
Fixed heap buffer over-read in ASN.1 content parsing. (CVE-2026-34180)
-
Fixed PKCS#12 files with PBMAC1 are accepted with short HMAC keys. (CVE-2026-34181)
-
Fixed possible NULL dereference in password-dased CMS decryption. (CVE-2026-42766)
-
Fixed multi-
RecipientInfoBleichenbacher Oracle inCMS_decrypt()andPKCS7_decrypt(). (CVE-2026-42768) -
Fixed trust anchor substitution via
cert/issuertypo in CMProotCaKeyUpdate. (CVE-2026-42769) -
Fixed FFC-DH peer validation uses attacker-supplied
q. (CVE-2026-42770) -
Fixed incorrect tag processing for empty messages in AES-GCM-SIV and AES-SIV modes. (CVE-2026-45446)
OpenSSL 3.5.7
OpenSSL 3.5.7 is a security patch release. The most severe CVE fixed in this release is High.
This release incorporates the following bug fixes and mitigations:
-
Fixed heap use-after-free in
PKCS7_verify(). (CVE-2026-45447) -
Fixed CMS
AuthEnvelopedDataprocessing may accept forged messages. (CVE-2026-34182) -
Fixed unbounded memory growth in the QUIC
PATH_CHALLENGEhandler. (CVE-2026-34183) -
Fixed NULL pointer dereference in QUIC server initial packet handling. (CVE-2026-42764)
-
Fixed AES-OCB IV ignored on
EVP_Cipher()path. (CVE-2026-45445) -
Fixed possible heap buffer overflow in ASN.1 multibyte string conversion. (CVE-2026-7383)
-
Fixed out-of-bounds read in CMS password-based decryption. (CVE-2026-9076)
-
Fixed heap buffer over-read in ASN.1 content parsing. (CVE-2026-34180)
-
Fixed PKCS#12 files with PBMAC1 are accepted with short HMAC keys. (CVE-2026-34181)
-
Fixed possible NULL dereference in password-dased CMS decryption. (CVE-2026-42766)
-
Fixed NULL pointer dereference in CRMF
EncryptedValuedecryption. (CVE-2026-42767) -
Fixed multi-
RecipientInfoBleichenbacher Oracle inCMS_decrypt()andPKCS7_decrypt(). (CVE-2026-42768) -
Fixed trust anchor substitution via
cert/issuertypo in CMProotCaKeyUpdate. (CVE-2026-42769) -
Fixed FFC-DH peer validation uses attacker-supplied
q. (CVE-2026-42770) -
Fixed incorrect tag processing for empty messages in AES-GCM-SIV and AES-SIV modes. (CVE-2026-45446)
OpenSSL 3.6.3
OpenSSL 3.6.3 is a security patch release. The most severe CVE fixed in this release is High.
This release incorporates the following bug fixes and mitigations:
-
Fixed heap use-after-free in
PKCS7_verify(). (CVE-2026-45447) -
Fixed CMS
AuthEnvelopedDataprocessing may accept forged messages. (CVE-2026-34182) -
Fixed unbounded memory growth in the QUIC
PATH_CHALLENGEhandler. (CVE-2026-34183) -
Fixed double-free when checking OCSP stapled response. (CVE-2026-35188)
-
Fixed NULL pointer dereference in QUIC server initial packet handling. (CVE-2026-42764)
-
Fixed AES-OCB IV ignored on
EVP_Cipher()path. (CVE-2026-45445) -
Fixed possible heap buffer overflow in ASN.1 multibyte string conversion. (CVE-2026-7383)
-
Fixed out-of-bounds read in CMS password-based decryption. (CVE-2026-9076)
-
Fixed heap buffer over-read in ASN.1 content parsing. (CVE-2026-34180)
-
Fixed PKCS#12 files with PBMAC1 are accepted with short HMAC keys. (CVE-2026-34181)
-
Fixed NULL dereference in certificate verification with OCSP Checking. (CVE-2026-42765)
-
Fixed possible NULL dereference in password-dased CMS decryption. (CVE-2026-42766)
-
Fixed NULL pointer dereference in CRMF
EncryptedValuedecryption. (CVE-2026-42767) -
Fixed multi-
RecipientInfoBleichenbacher Oracle inCMS_decrypt()andPKCS7_decrypt(). (CVE-2026-42768) -
Fixed trust anchor substitution via
cert/issuertypo in CMProotCaKeyUpdate. (CVE-2026-42769) -
Fixed FFC-DH peer validation uses attacker-supplied
q. (CVE-2026-42770) -
Fixed incorrect tag processing for empty messages in AES-GCM-SIV and AES-SIV modes. (CVE-2026-45446)
OpenSSL 4.0.1
OpenSSL 4.0.1 is a security patch release. The most severe CVE fixed in this release is High.
This release incorporates the following bug fixes and mitigations:
-
Fixed heap use-after-free in
PKCS7_verify(). (CVE-2026-45447) -
Fixed CMS
AuthEnvelopedDataprocessing may accept forged messages. (CVE-2026-34182) -
Fixed unbounded memory growth in the QUIC
PATH_CHALLENGEhandler. (CVE-2026-34183) -
Fixed double-free when checking OCSP stapled response. (CVE-2026-35188)
-
Fixed NULL pointer dereference in QUIC server initial packet handling. (CVE-2026-42764)
-
Fixed AES-OCB IV ignored on
EVP_Cipher()path. (CVE-2026-45445) -
Fixed possible heap buffer overflow in ASN.1 multibyte string conversion. (CVE-2026-7383)
-
Fixed out-of-bounds read in CMS password-based decryption. (CVE-2026-9076)
-
Fixed heap buffer over-read in ASN.1 content parsing. (CVE-2026-34180)
-
Fixed PKCS#12 files with PBMAC1 are accepted with short HMAC keys. (CVE-2026-34181)
-
Fixed NULL dereference in certificate verification with OCSP Checking. (CVE-2026-42765)
-
Fixed possible NULL dereference in password-dased CMS decryption. (CVE-2026-42766)
-
Fixed NULL pointer dereference in CRMF
EncryptedValuedecryption. (CVE-2026-42767) -
Fixed multi-
RecipientInfoBleichenbacher Oracle inCMS_decrypt()andPKCS7_decrypt(). (CVE-2026-42768) -
Fixed trust anchor substitution via
cert/issuertypo in CMProotCaKeyUpdate. (CVE-2026-42769) -
Fixed FFC-DH peer validation uses attacker-supplied
q. (CVE-2026-42770) -
Fixed possible out of bounds read in
X509_VERIFY_PARAM_set1_email(). (CVE-2026-42771) -
Fixed incorrect tag processing for empty messages in AES-GCM-SIV and AES-SIV modes. (CVE-2026-45446)
-
Fixed a regression introduced in 4.0.0 that led to a
openssl pkeycommand crash when it was invoked to encrypt a private key with password being provided interactively. -
Fixed a regression introduced in 4.0.0 that led to
openssl s_client -advcommand prematurely terminating a session when reading input of 16384 bytes in oneread()call.
12.4.4
Download page What's new highlights
- Browse dashboards: Make elements visible and flow better when zoomed #120678, @aocenas
- Docker: Bump Alpine-based images to 3.23.4 #123027, @Proximyst
- Go: Update version to 1.26.3 #124456, @macabu
- Graphite: Strip tagged path from
tags.namewhenaliasSubwrapping is detected #122619, @adamyeats - LibraryPanels: Return 403 instead of 500 for insufficient permissions #123470, @MissingRoberto
- Plugins: Sanitise header values to printable ASCII for gRPC compatibility #122474, @adamyeats
- Alerting: Fix AlertManagerPicker visibility to check Alertmanager datasources #124073, @konrad147
- Alerting: Treat not found error when fetching plugins as not installed #122989, @rodrigopk
- DashboardDS: Fix Mixed panels not updating on time-range change with stale upstreams #124893, @ivanortegaalba
- Jaeger: Fix log event timestamp unit conversion in trace view #123711, @ktw4071
- PostgreSQL: Allow sql_engine to return results for EXPLAIN queries #123245, @sdague
- Security: CVE-2026-9029
- Security: CVE-2026-33382
- Security: CVE-2026-42127
- Security: CVE-2026-42129
- Security: CVE-2026-10601
- Security: CVE-2026-8609
- Security: CVE-2026-8595
v4.2.2
- [fix][sec] Bump org.asynchttpclient:async-http-client from 2.14.5 to 2.15.0 (#25818)
- [fix][sec] Upgrade commons-configuration2 to 2.15.0 to address CVE-2026-45205 (#25844)
- [fix][sec] Upgrade Netty to 4.1.133.Final to address CVEs (#25670)
- [improve][misc] Upgrade Netty to 4.1.134 (#25870)
- [fix][sec] Upgrade Netty to 4.1.135.Final to address several CVEs (#25918)
- [fix][sec] Upgrade thrift to 0.23.0 to address CVE-2026-43869 (#25744)
- [fix][sec] Upgrade vert.x to 4.5.25 to address CVE-2026-6860 (#25737)
- [fix][sec] Upgrade vertx to 4.5.27 to address CVE-2026-6860 (#25745)
- [improve][misc] Upgrade vert.x to 4.5.28 (#25924)
- [improve][build] Remove kotlin-stdlib override; upgrade okhttp3 5.3.2 and okio 3.17.0 (#25855)
- [improve][build] Upgrade org.apache.kerby:kerb-simplekdc from 1.1.1 to 2.1.1 (#25785)
- [improve][misc] Upgrade Jetty to 12.1.9 (#25752)
- [improve][misc] Upgrade Jetty to 12.1.10 (#25943)
- [improve][misc] Upgrade Caffeine to 3.2.4 (#25663)
- [fix][broker] Clean up orphan ledger on concurrent initial schema creation in BookkeeperSchemaStorage (#25514)
- [fix][broker] Close pending acks cleanup gap in BacklogQuotaManager (#25624)
- [fix][broker] ConcurrentLongHashMap throw ArrayIndexOutOfBoundsException (#25644)
- [fix][broker] Correct two race conditions in the tracker code and logic bug in InMemoryDelayedDeliveryTracker that failed with NoSuchElementException (#25681)
- [fix][broker] Decrement unacked counter when removeAllUpTo removes pending acks (#25581)
- [fix][broker] Fix compaction cursor reset may lose mark-delete properties (#25862)
- [fix][broker] Fix ManagedLedgerImpl.advanceCursorsIfNecessary() method may lose non-durable cursor properties in race condition (#25796)
- [fix][broker] Fix non-batched null-value messages not removed during topic compaction (#25817)
- [fix][broker] Fix PersistentMessageExpiryMonitor findEntryComplete() method may lose mark-delete properties in race condition (#25803)
- [fix][broker] Fix precision loss in DataSketchesSummaryLogger by replacing LongAdder with DoubleAdder for sum accumulation (#25594)
- [fix][broker] Fix PulsarService.closeAsync where Condition.signalAll was called without holding a lock (#25777)
- [fix][broker] Fix race in pending acks removal in redeliverUnacknowledgedMessages (#25589)
- [fix][broker] Fix stuck chunks in SharedConsumerAssignor permit tracking (#25620)
- [fix][broker] Merge broker offload extra configurations (#25736)
- [fix][broker] Move pending acks cleanup to selected mark-delete callbacks (#25592)
- [fix][broker] Race condition causes perpetual backlog on internal topics (#25572)
- [fix][broker] Skip backlog-quota eviction on fenced/closing topics (#25684)
- [fix][broker] Use effective offload policies for extra configs (#25781)
- [fix][broker] Wait for orphan schema ledger cleanup before retry (#25579)
- [fix][broker][fix][broker]Replication stats is empty when the cluster is the target cluster of a one-way replication (#25583)
- [fix][broker]Replication is stuck because failed to read entries (#25625)
- [fix][bk] Fix NPE in IsolatedBookieEnsemblePlacementPolicy when policy class does not match (#25825)
- [fix][meta] Fix PulsarZooKeeperClient async addWatch callback retry behavior (#25913)
- [fix][meta] Fix ZooKeeper session reconnect race condition in PulsarZooKeeperClient.clientCreator (#25910)
- [improve][broker] optimize namespaceBundle validation to fix single-thread 100% CPU during unloading entire namespaces (#25626)
- [improve][broker] Prevent stale replicator pending reads after termination (#25767)
- [improve][offload] Coalesce automatic offload triggers to reduce retry loops and ledger scans (#25793)
- [fix][broker][branch-4.2] URL-encode sub-name in Txn pending-ack topic #25727 (#25728)
- [fix][client] Apply Avro logical type conversions when decoding schema without classloader (#25759)
- [fix][client] Clean up unacked messages when unsubscribing a topic with ack timeout backoff (#25916)
- [fix][client] Fix failed to close consumer because of the error: param memorySize is a negative value (#25805)
- [fix][client] Make ClientBuilder serializable (#25730) (#25739)
- [fix][client] Match logical topic when removing unacked messages (#25921)
- [fix][client] Preserve equals in FieldParser map values (#25907)
- [fix][client] Prevent duplicate ServiceUrlProvider initialization (#25899)
- [fix][client] Reset higher-index states on recovery in SameAuthParamsLookupAutoClusterFailover (#25826)
- [fix][client] Stabilize scaleReceiverQueueHint against concurrent enqueue/take (#25578)
- [fix][client]Broker-side producer handle leak if closes a producer which state is regitering schema (#25725)
- [improve][client] Best-effort retry for individual/batch-index acks on send failure when ackReceiptEnabled=false (#25525)
- [improve][client] Clean up unacked message tracker when topics are removed in multi-topic consumers (#25923)
- [improve][client] Implement tls_client_auth for AuthenticationOAuth2 (#25538)
- [improve][client] In cases where there is a risk of message loss, adjust the log level to error (#25854)
- [fix][fn] Fix functions update issue where artifact is provided as a http url (#25840)
- [fix][fn] Fix Go function runtime to continue after user exceptions and add neg-ack tests (#25867)
- [fix][fn] Fix orphan exclusive producer on creation timeout in WorkerUtils.createExclusiveProducerWithRetry (#25942)
- [improve][fn] Avoid gRPC timeout when getting status of a dead process runtime (#25819)
- [improve][fn] make built-in connector reload incremental (#25773)
- [improve][fn] make built-in functions reload incremental (#25868)
- [refactor][fn] Use Map instead of TreeMap for connector/function API types (#25790)
- [improve][functions] Allow customizing Kubernetes service domain suffix in Function Worker (#25872)
- [fix][proxy] Avoid intermittent 502 when admin proxy follows a broker redirect for a request with a body (#25919)
- [fix][proxy] Close channel on connection failure (#25770)
- [improve][cli] Add client side looping in "pulsar-admin topics analyze-backlog" cli to avoid potential HTTP call timeout (#25126)
- [fix][test] Add timeout to initial receives in ResendRequestTest.testSharedSingleAckedPartitionedTopic (#25828)
- [fix][test] Fix flaky ExtensibleLoadManagerImplTest.testLoadBalancerServiceUnitTableViewSyncer (#25596)
- [fix][test] Fix flaky OneWayReplicatorDeduplicationTest.testDeduplication (#25679)
- [fix][test] Fix flaky ProducerCleanupTest timer cleanup (#25864)
- [fix][test] Fix flaky PulsarFunctionTlsTest.testFunctionsCreation() test (#25889)
- [fix][test] Fix flaky ResendRequestTest.testSharedSingleAckedPartitionedTopic() test (#25852)
- [fix][test] Fix flaky SameAuthParamsLookupAutoClusterFailoverTest.testAutoClusterFailover() test (#25892)
- [fix][test] Fix flaky testGetExcludedBookiesWithIsolationGroups (#25640)
- [fix][test] Fix flaky testMsgDropStat in NonPersistentTopicTest (#25426)
- [fix][test] Make NamespacesTest.cleanupAfterMethod tolerant of transient infra failures (#25641)
- [fix][test] Reduce flakiness in testLoadBalancerServiceUnitTableViewSyncer (#25638)
- [fix][test] Stabilize testSecondaryIsolationGroupsBookiesNegative() test (#25900)
- [fix][test] Stabilize WebService rate limiting test (#25866)
- [improve][test] Set diskUsageThreshold to 0.999 for tests to effectively disable the check (#25677)
- [fix][test][branch-4.2] Fix PersistentMessageExpiryMonitorTest
For the complete list, check the full changelog.
v4.0.11
- [fix][sec][branch-4.0] Upgrade avro to 1.11.5 to address CVE-2025-33042 (#25788)
- [fix][sec] Bump org.asynchttpclient:async-http-client from 2.14.5 to 2.15.0 (#25818)
- [fix][sec] Upgrade commons-configuration2 to 2.15.0 to address CVE-2026-45205 (#25844)
- [fix][sec] Upgrade Netty to 4.1.133.Final to address CVEs (#25670)
- [improve][misc] Upgrade Netty to 4.1.134 (#25870)
- [fix][sec] Upgrade Netty to 4.1.135.Final to address several CVEs (#25918)
- [fix][sec] Upgrade thrift to 0.23.0 to address CVE-2026-43869 (#25744)
- [fix][sec] Upgrade vert.x to 4.5.25 to address CVE-2026-6860 (#25737)
- [fix][sec] Upgrade vertx to 4.5.27 to address CVE-2026-6860 (#25745)
- [improve][misc] Upgrade vert.x to 4.5.28 (#25924)
- [improve][build] Remove kotlin-stdlib override; upgrade okhttp3 5.3.2 and okio 3.17.0 (#25855)
- [improve][build] Upgrade org.apache.kerby:kerb-simplekdc from 1.1.1 to 2.1.1 (#25785)
- [improve][misc] Upgrade Jetty to 12.1.9 (#25752)
- [improve][misc] Upgrade Jetty to 12.1.10 (#25943)
- [fix][broker] Clean up orphan ledger on concurrent initial schema creation in BookkeeperSchemaStorage (#25514)
- [fix][broker] Close pending acks cleanup gap in BacklogQuotaManager (#25624)
- [fix][broker] ConcurrentLongHashMap throw ArrayIndexOutOfBoundsException (#25644)
- [fix][broker] Correct two race conditions in the tracker code and logic bug in InMemoryDelayedDeliveryTracker that failed with NoSuchElementException (#25681)
- [fix][broker] Decrement unacked counter when removeAllUpTo removes pending acks (#25581)
- [fix][broker] Fix compaction cursor reset may lose mark-delete properties (#25862)
- [fix][broker] Fix ManagedLedgerImpl.advanceCursorsIfNecessary() method may lose non-durable cursor properties in race condition (#25796)
- [fix][broker] Fix non-batched null-value messages not removed during topic compaction (#25817)
- [fix][broker] Fix PersistentMessageExpiryMonitor findEntryComplete() method may lose mark-delete properties in race condition (#25803)
- [fix][broker] Fix precision loss in DataSketchesSummaryLogger by replacing LongAdder with DoubleAdder for sum accumulation (#25594)
- [fix][broker] Fix PulsarService.closeAsync where Condition.signalAll was called without holding a lock (#25777)
- [fix][broker] Fix race in pending acks removal in redeliverUnacknowledgedMessages (#25589)
- [fix][broker] Fix stuck chunks in SharedConsumerAssignor permit tracking (#25620)
- [fix][broker] Merge broker offload extra configurations (#25736)
- [fix][broker] Move pending acks cleanup to selected mark-delete callbacks (#25592)
- [fix][broker] Race condition causes perpetual backlog on internal topics (#25572)
- [fix][broker] Skip backlog-quota eviction on fenced/closing topics (#25684)
- [fix][broker] Use effective offload policies for extra configs (#25781)
- [fix][broker] Wait for orphan schema ledger cleanup before retry (#25579)
- [fix][broker][fix][broker]Replication stats is empty when the cluster is the target cluster of a one-way replication (#25583)
- [fix][broker]Replication is stuck because failed to read entries (#25625)
- [fix][bk] Fix NPE in IsolatedBookieEnsemblePlacementPolicy when policy class does not match (#25825)
- [fix][meta] Fix PulsarZooKeeperClient async addWatch callback retry behavior (#25913)
- [fix][meta] Fix ZooKeeper session reconnect race condition in PulsarZooKeeperClient.clientCreator (#25910)
- [improve][broker] optimize namespaceBundle validation to fix single-thread 100% CPU during unloading entire namespaces (#25626)
- [improve][broker] PIP-380: Support-setting-up-specific-namespaces-to-skipping-the-load-shedding (#23549)
- [improve][broker] Prevent stale replicator pending reads after termination (#25767)
- [improve][offload] Coalesce automatic offload triggers to reduce retry loops and ledger scans (#25793)
- [fix][client] Apply Avro logical type conversions when decoding schema without classloader (#25759)
- [fix][client] Clean up unacked messages when unsubscribing a topic with ack timeout backoff (#25916)
- [fix][client] Fix failed to close consumer because of the error: param memorySize is a negative value (#25805)
- [fix][client] Fix stale Healthy state in SameAuthParamsLookupAutoClusterFailover causing flaky test (#25388)
- [fix][client] Make ClientBuilder serializable (#25730) (#25740)
- [fix][client] Match logical topic when removing unacked messages (#25921)
- [fix][client] Preserve equals in FieldParser map values (#25907)
- [fix][client] Prevent duplicate ServiceUrlProvider initialization (#25899)
- [fix][client] Reset higher-index states on recovery in SameAuthParamsLookupAutoClusterFailover (#25826)
- [fix][client] Stabilize scaleReceiverQueueHint against concurrent enqueue/take (#25578)
- [fix][client]Broker-side producer handle leak if closes a producer which state is regitering schema (#25725)
- [improve][client] Best-effort retry for individual/batch-index acks on send failure when ackReceiptEnabled=false (#25525)
- [improve][client] Clean up unacked message tracker when topics are removed in multi-topic consumers (#25923)
- [improve][client] Enable configurable preemptive OAuth2 token refresh (#25363)
- [improve][client] Implement tls_client_auth for AuthenticationOAuth2 (#25538)
- [improve][client] In cases where there is a risk of message loss, adjust the log level to error (#25854)
- [fix][fn] Fix functions update issue where artifact is provided as a http url (#25840)
- [fix][fn] Fix Go function runtime to continue after user exceptions and add neg-ack tests (#25867)
- [fix][fn] Fix orphan exclusive producer on creation timeout in WorkerUtils.createExclusiveProducerWithRetry (#25942)
- [improve][fn] Avoid gRPC timeout when getting status of a dead process runtime (#25819)
- [improve][fn] make built-in connector reload incremental (#25773)
- [improve][fn] make built-in functions reload incremental (#25868)
- [refactor][fn] Use Map instead of TreeMap for connector/function API types (#25790)
- [improve][functions] Allow customizing Kubernetes service domain suffix in Function Worker (#25872)
- [improve][proxy][branch-4.0] Restore AdminProxyHandler changes which were accidentially reverted in Jetty 12 upgrade
- [fix][proxy] Avoid intermittent 502 when admin proxy follows a broker redirect for a request with a body (#25919)
- [fix][proxy] Close channel on connection failure (#25770)
- [fix][test] Add timeout to initial receives in ResendRequestTest.testSharedSingleAckedPartitionedTopic (#25828)
- [fix][test] Fix flaky ExtensibleLoadManagerImplTest.testLoadBalancerServiceUnitTableViewSyncer (#25596)
- [fix][test] Fix flaky MessagePublishBufferThrottleTest.testBlockByPublishRateLimiting (#25365)
- [fix][test] Fix flaky OneWayReplicatorDeduplicationTest.testDeduplication (#25679)
- [fix][test] Fix flaky ProducerCleanupTest timer cleanup (#25864)
- [fix][test] Fix flaky PulsarFunctionTlsTest.testFunctionsCreation() test (#25889)
- [fix][test] Fix flaky ResendRequestTest.testSharedSingleAckedPartitionedTopic() test (#25852)
- [fix][test] Fix flaky SameAuthParamsLookupAutoClusterFailoverTest.testAutoClusterFailover() test (#25892)
- [fix][test] Fix flaky testGetExcludedBookiesWithIsolationGroups (#25640)
- [fix][test] Fix flaky testMsgDropStat in NonPersistentTopicTest (#25426)
- [fix][test] Make NamespacesTest.cleanupAfterMethod tolerant of transient infra failures (#25641)
- [fix][test] Reduce flakiness in testLoadBalancerServiceUnitTableViewSyncer (#25638)
- [fix][test] Reduce flakiness in testLoadBalancerServiceUnitTableViewSyncer (#25638)
- [fix][test] Stabilize testSecondaryIsolationGroupsBookiesNegative() test (#25900)
- [fix][build][branch-4.0] Fix issue in backporting PR #25644
- [fix][test] Fix compile error in OffloadPoliciesTest
- [fix][test][branch-4.0] Fix AvroSchemaTest cases that were invalid
- [fix][test][branch-4.0] Fix PersistentMessageExpiryMonitorTest
- [fix][test][branch-4.0] Fix PulsarFunctionTlsTest
For the complete list, check the full changelog.