Highlights
- PIP-121 — AutoClusterFailover: Clients can now fail over between Pulsar clusters automatically using a new
ServiceInfoProviderabstraction that updates service info dynamically (#541, #547). - TLS 1.3 support (#529).
- Millisecond-precision operation timeout: New configuration option to set operation timeouts in milliseconds (#543).
- Security: Dependencies bumped to pick up upstream CVE fixes (#540).
Features
- Add TLS 1.3 support by @ciuncan in #529
- PIP-121: Introduce
ServiceInfoProviderto update service info dynamically by @BewareMyPower in #541 - PIP-121: Implement
AutoClusterFailoverby @BewareMyPower in #547 - Add operation timeout configuration in milliseconds by @zhanglistar in #543
- Implement missing
pulsar_message_set_schema_versionin the C API by @zhanglistar in #552
Improvements
- Enhance connection and timeout logging by @zhanglistar in #539
- Bump dependencies to latest versions for CVEs by @BewareMyPower in #540
- Replace deprecated Boost.Asio APIs by @arhoads in #535
Bug Fixes
- Fix
seekblocking forever when thesubscribeRPC is slower than theseekRPC by @BewareMyPower in #533 - Fix multi-topics consumer crash when one internal consumer fails
getBrokerConsumerStatsAsyncby @BewareMyPower in #538 - Fix clang-tidy errors not being detected, and fix the underlying issues by @BewareMyPower in #544
- Fix incorrect last sequence id when sending messages in a batch by @zhanglistar in #546
- Fix crash caused by Asio object lifetime and thread-safety issue by @BewareMyPower in #551
- Fix
Readersegfault whenmessageListenerThreads=0by @zhanglistar in #553 - Fix connection leak caused by request timers not being cancelled in time by @BewareMyPower in #555
- Fix
hasMessageAvailablereturning true after seeking to a timestamp newer than the last message by @BewareMyPower in #556 - Fix aarch64 build on Alpine by @BewareMyPower in #558
Tests
- Fix flaky
ReaderTest.testAsyncReadby @zhanglistar in #545 - Fix stray log output after client close by @zhanglistar in #548
New Contributors
- @ciuncan made their first contribution in #529
- @zhanglistar made their first contribution in #539
Full Changelog: v4.0.0...v4.1.0