> ## Documentation Index
> Fetch the complete documentation index at: https://docs.streamnative.io/llms.txt
> Use this file to discover all available pages before exploring further.

# V4.0.12.8

# StreamNative Weekly Release Notes v4.0.12.8

## Download

### Distributions

* [https://github.com/streamnative/pulsar/releases/tag/v4.0.12.8](https://github.com/streamnative/pulsar/releases/tag/v4.0.12.8)

### Packages

* [Maven Central](https://search.maven.org/artifact/io.streamnative/pulsar/4.0.12.8/pom)

### Images

* [sn-platform](https://hub.docker.com/layers/streamnative/sn-platform/4.0.12.8/images/sha256-2e51d99cc3fe899a9bf9322596f9b11992098e37f9b0a3e59e268d085c184015)

* [sn-platform-slim](https://hub.docker.com/layers/streamnative/sn-platform-slim/4.0.12.8/images/sha256-40e8b9950a2084209f5b937365143dee873987a13044cc03de4d45b8cd9e6061)

* [private-cloud](https://hub.docker.com/layers/streamnative/private-cloud/4.0.12.8/images/sha256-40e8b9950a2084209f5b937365143dee873987a13044cc03de4d45b8cd9e6061)

## General Changes

### Apache Pulsar

([#26585](https://github.com/apache/pulsar/pull/26585)) \[fix]\[ml] Close abandoned write ledger handle to prevent leak

([#26455](https://github.com/apache/pulsar/pull/26455)) \[fix]\[client] Fix buffer ownership on the send failure paths

([#26575](https://github.com/apache/pulsar/pull/26575)) \[improve]\[ci] Configure SSH access action default and update Upterm

([#26531](https://github.com/apache/pulsar/pull/26531)) \[improve]\[client] Coalesce message listener drain scheduling

([#26565](https://github.com/apache/pulsar/pull/26565)) \[fix]\[txn] Prevent queued snapshot writes from stalling

([#26369](https://github.com/apache/pulsar/pull/26369)) \[fix]\[txn] Stop the pending ack replay loop from spinning forever

([#26570](https://github.com/apache/pulsar/pull/26570)) \[fix] Fix cursor deadlock when skipping non-recoverable entries during mark-delete persistence

([#26557](https://github.com/apache/pulsar/pull/26557)) \[fix]\[test] Cover scheduler shutdown membership-lock deadlock

([#26566](https://github.com/apache/pulsar/pull/26566)) \[fix]\[client] Complete table view refresh after applying messages

([#26563](https://github.com/apache/pulsar/pull/26563)) \[fix]\[test] Isolate mutable broker fixtures between test methods

([#26564](https://github.com/apache/pulsar/pull/26564)) \[fix]\[test] Allow for CLI startup in function integration tests

([#26561](https://github.com/apache/pulsar/pull/26561)) \[fix]\[test] Await both DLQ producers in multi-consumer test

([#26567](https://github.com/apache/pulsar/pull/26567)) \[fix]\[test] Preserve class loading in broker interceptor fixtures

([#26547](https://github.com/apache/pulsar/pull/26547)) \[fix]\[client] Keep transactional and non-transactional messages in separate batches

([#26556](https://github.com/apache/pulsar/pull/26556)) \[fix]\[fn] Bound function package downloads from BookKeeper and stop SchedulerManager.close() from hanging on a stuck scheduling round

([#25939](https://github.com/apache/pulsar/pull/25939)) \[fix]\[common] Handle synchronous failures from future suppliers

([#25163](https://github.com/apache/pulsar/pull/25163)) \[fix]\[admin] Allow defaultNumPartitions for non-partitioned autoTopicCreation override

([#21006](https://github.com/apache/pulsar/pull/21006)) \[improve]\[broker] Make exposing topic level metric dynamic

([#26482](https://github.com/apache/pulsar/pull/26482)) \[fix]\[broker] Send ActiveConsumerChange for non-persistent Failover subscriptions

([#26551](https://github.com/apache/pulsar/pull/26551)) \[fix]\[broker] Fix multi-role authorization regressions and optimize nested checks

([#26246](https://github.com/apache/pulsar/pull/26246)) \[fix]\[broker] Fix AvgShedder assignment cache keying with stable bundle names

([#26549](https://github.com/apache/pulsar/pull/26549)) \[improve]\[broker] Support OpenID multi-role authorization and improve proxy authentication defaults

([#26513](https://github.com/apache/pulsar/pull/26513)) \[fix]\[broker] Don't serve topic policies from a cache whose init future has not completed

([#26520](https://github.com/apache/pulsar/pull/26520)) \[fix]\[broker] Fix assignment and ownership cleanup races in the extensible load manager

([#26538](https://github.com/apache/pulsar/pull/26538)) \[improve]\[build] Upgrade Oxia Java client to 0.9.5

([#26363](https://github.com/apache/pulsar/pull/26363)) \[fix]\[broker] Fix early completion and false timeouts in SplitManager and UnloadManager

([#26471](https://github.com/apache/pulsar/pull/26471)) \[fix]\[broker] Prevent NPE when the last ACK races with sticky hash reassignment

([#26422](https://github.com/apache/pulsar/pull/26422)) \[fix]\[broker] Debit un-acked messages only when the consumer is actually removed

([#26533](https://github.com/apache/pulsar/pull/26533)) \[fix]\[broker] Stop reporting a deliberate ownership release as an expired resource lock

([#26534](https://github.com/apache/pulsar/pull/26534)) \[fix]\[test] Make consistent hashing consumer selection test deterministic

([#26512](https://github.com/apache/pulsar/pull/26512)) \[fix]\[ml] Preserve cursor properties when recovering from an unreadable cursor ledger

([#26472](https://github.com/apache/pulsar/pull/26472)) \[fix]\[broker] Fix dispatcherPauseOnAckStatePersistentEnabled and schemaValidationEnforced returning wrong values when applied=true

([#26456](https://github.com/apache/pulsar/pull/26456)) \[fix]\[client] Defer op cmd release to the write event loop on send timeout

([#26521](https://github.com/apache/pulsar/pull/26521)) \[improve]\[client] Avoid eager broker metadata allocation for outgoing messages

([#26519](https://github.com/apache/pulsar/pull/26519)) \[improve]\[client] Avoid unused send-stat snapshots for default callbacks

([#26197](https://github.com/apache/pulsar/pull/26197)) \[fix]\[broker] Fix ownership-generation races in OwnershipCache removeOwnership and lock-expiry cleanup

([#26451](https://github.com/apache/pulsar/pull/26451)) \[fix]\[broker] Resolve replicator remote cluster by prefix so cluster names containing a dot work

([#26289](https://github.com/apache/pulsar/pull/26289)) \[fix]\[broker] Fix persistent throughput degradation caused by permit loss during frequent reconnects on Shared subscriptions

([#26492](https://github.com/apache/pulsar/pull/26492)) \[fix]\[client] Release the command header when send serialization fails

### KoP

\[fix] Fix duplication status check

Fix Kafka topic deduplication cursor cleanup

### pulsarctl

Fix policies tests with Pulsar 5 bundles

### Cloud Pulsar Plugins

75e967a4 \[Interceptors] Avoid nullable cache result unboxing

Disable exemplars on the billing Prometheus counters

Cache the system-topic check per topic in BillingMetersInterceptor

Iterate broker interceptors by index on hot paths

### Function Mesh Worker Service

378a4613 fix: use quay.io for minio image

## Security Fixes

### Apache Pulsar

([#26541](https://github.com/apache/pulsar/pull/26541)) \[fix]\[sec] Bump google.golang.org/grpc from 1.83.1 to 1.83.2 in /pulsar-function-go

([#26515](https://github.com/apache/pulsar/pull/26515)) \[fix]\[sec]\[branch-4.x] Upgrade Netty to 4.1.138 to address several CVEs and bugs
