# drbd-9.3.4-rc.1

**URL:** <https://forums.linbit.com/t/drbd-9-3-4-rc-1/1267>\
**Category:** Release Announcements\
**Tags:** drbd\
**Created:** [September 8, 2026, 7:45pm UTC](https://forums.linbit.com/t/drbd-9-3-4-rc-1/1267 "2026-09-08T19:45:18Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![phil\_reisner](https://avatars.discourse-cdn.com/v4/letter/p/779978/32.png) [@phil\_reisner](https://forums.linbit.com/u/phil_reisner)\
**Post date:** [September 8, 2026, 7:45pm UTC](https://forums.linbit.com/t/drbd-9-3-4-rc-1/1267/1 "2026-09-08T19:45:18Z")

</div>

Hi,

Following yesterday's 9.2.20-rc.1 release, here is the release in the  
9.3 series.

The delay was, as so often, due to issues in the kernel compatibility  
system. Supporting such a broad range of kernel versions is  
challenging. Solved for this time.

This is a release candidate. Please test it.

9.3.4-rc.1 (api:genl2/proto:86-101,118-124/transport:22)  
--------  
\* Generate the netlink interface code with the upstream YNL generator  
&nbsp;&nbsp;&nbsp;instead of the genl\_magic macro system  
\* Fix a ProtocolError disconnect loop ("BAD! BarrierAck received with  
&nbsp;&nbsp;&nbsp;n\_writes=...") when two volumes of one connection replicate and  
&nbsp;&nbsp;&nbsp;resync without replication at the same time  
\* Tolerate a verify-alg mismatch when connecting, and refuse to start  
&nbsp;&nbsp;&nbsp;an online verify while the algorithms differ, instead of rejecting  
&nbsp;&nbsp;&nbsp;the connection outright  
\* Fix several bitmap lifetime bugs around attach and detach: a NULL  
&nbsp;&nbsp;&nbsp;bitmap dereference in the peer device statistics, a missing bitmap  
&nbsp;&nbsp;&nbsp;in drbd\_set\_sync(), concurrent drbd\_bm\_free() callers, and freeing  
&nbsp;&nbsp;&nbsp;a bitmap that a later attach published  
\* Fix a device reference leak and a NULL pointer dereference when a  
&nbsp;&nbsp;&nbsp;peer request's bio allocation fails under memory pressure  
\* Hold state\_rwlock while walking the transfer log from debugfs  
\* All fixes from 9.2.20  
&nbsp;&nbsp;- Fix a sync target overwriting acknowledged writes with older resync  
&nbsp;&nbsp;&nbsp;&nbsp;data when the sync source lost the diskless primary; such writes are  
&nbsp;&nbsp;&nbsp;&nbsp;now held back or postponed (new feature flag WRITE\_POSTPONE) instead  
&nbsp;&nbsp;&nbsp;&nbsp;of being silently rolled back  
&nbsp;&nbsp;- Fix data corruption when a peer bitmap that is being cleared by a  
&nbsp;&nbsp;&nbsp;&nbsp;running resync was copied for a second peer  
&nbsp;&nbsp;- Fix several ways a Primary lost its obligation to start a new data  
&nbsp;&nbsp;&nbsp;&nbsp;generation after losing a peer, each ending in silent divergence,  
&nbsp;&nbsp;&nbsp;&nbsp;and a spurious I/O error when a deferred generation resumes; the  
&nbsp;&nbsp;&nbsp;&nbsp;obligation is now tracked per volume and logged  
&nbsp;&nbsp;- Fix a diskless Primary losing a peer: rotate the current UUID so the  
&nbsp;&nbsp;&nbsp;&nbsp;stale peer resyncs on return, outdate far-away members before  
&nbsp;&nbsp;&nbsp;&nbsp;resuming I/O, and keep the sole UpToDate survivor UpToDate; also  
&nbsp;&nbsp;&nbsp;&nbsp;fixes promotions freezing I/O on nodes not connected to every member  
&nbsp;&nbsp;- Fix a resync target ending with stale data or an old data generation  
&nbsp;&nbsp;&nbsp;&nbsp;when a crashed primary rejoins or a diskless primary announces a new  
&nbsp;&nbsp;&nbsp;&nbsp;generation mid-resync  
&nbsp;&nbsp;- Fix al-updates=no: honour it at attach time, and mark all bitmap  
&nbsp;&nbsp;&nbsp;&nbsp;slots out of sync after a primary crash  
&nbsp;&nbsp;- Fix kernel memory corruption by a malicious or man-in-the-middle  
&nbsp;&nbsp;&nbsp;&nbsp;peer sending out-of-range payload, drain or digest sizes, and a  
&nbsp;&nbsp;&nbsp;&nbsp;divide error caused by bogus peer block sizes  
&nbsp;&nbsp;- Fix a use-after-free of the resource when a connections dump is  
&nbsp;&nbsp;&nbsp;&nbsp;interrupted, and a refcount imbalance flooding the log with put\_ldev  
&nbsp;&nbsp;&nbsp;&nbsp;assertions after a resync request allocation failure  
&nbsp;&nbsp;- Fix soft lockups: the sender thread pinning a CPU while its  
&nbsp;&nbsp;&nbsp;&nbsp;connection is down, and IRQ-disabled bitmap scans on multi-TiB  
&nbsp;&nbsp;&nbsp;&nbsp;volumes  
&nbsp;&nbsp;- Fix several deadlocks and hangs: whole-bitmap IO vs clear\_peer\_slot()  
&nbsp;&nbsp;&nbsp;&nbsp;or online resize, WFBitMapS on an equal-UUID reconnect with leftover  
&nbsp;&nbsp;&nbsp;&nbsp;out-of-sync bits, demotion starved by a failing connect handshake,  
&nbsp;&nbsp;&nbsp;&nbsp;and connection teardown blocked behind an unacknowledged resync  
&nbsp;&nbsp;&nbsp;&nbsp;conflict  
&nbsp;&nbsp;- Fix many two-phase-commit issues: stale replies answering the wrong  
&nbsp;&nbsp;&nbsp;&nbsp;transaction, prepared peers that disconnected, forwarding node  
&nbsp;&nbsp;&nbsp;&nbsp;handling, a state\_sem leak on timeout, and unbounded connect  
&nbsp;&nbsp;&nbsp;&nbsp;retries; log which volume a connect is waiting for  
&nbsp;&nbsp;- Fix resyncs stalling short of completion, and a connection dropping  
&nbsp;&nbsp;&nbsp;&nbsp;to StandAlone when a crashed primary rejoins during a resync  
&nbsp;&nbsp;- Fix drbd\_suspend\_io() not waiting for in-flight writes; a detach  
&nbsp;&nbsp;&nbsp;&nbsp;hanging on a dead backing device stays interruptible  
&nbsp;&nbsp;- Fix restoring quorum after a reboot when the remaining members are  
&nbsp;&nbsp;&nbsp;&nbsp;diskless  
&nbsp;&nbsp;- Fix connection losses: online resize ending in ProtocolError,  
&nbsp;&nbsp;&nbsp;&nbsp;volume-less connections reconnecting every ping-timeout, lb-tcp  
&nbsp;&nbsp;&nbsp;&nbsp;"drbdadm down" stalling for a connect-int, and a TLS control socket  
&nbsp;&nbsp;&nbsp;&nbsp;close going unnoticed  
&nbsp;&nbsp;- Declare a connection broken where a two-phase-commit send failed,  
&nbsp;&nbsp;&nbsp;&nbsp;and repeat a disconnect without delay and with a bound; together  
&nbsp;&nbsp;&nbsp;&nbsp;they end a hanging "drbdadm disconnect"  
&nbsp;&nbsp;- Do not account requests as waiting for the activity log while it is  
&nbsp;&nbsp;&nbsp;&nbsp;suspended; the stale counters throttled resync to c-min-rate and  
&nbsp;&nbsp;&nbsp;&nbsp;drained the epoch for every incoming peer write

[https://pkg.linbit.com//downloads/drbd/9/drbd-9.3.4-rc.1.tar.gz](https://pkg.linbit.com//downloads/drbd/9/drbd-9.3.4-rc.1.tar.gz)

> <https://github.com/LINBIT/drbd/commit/e8a510108477b2c4bda30429487740ad2da1deaa>

-Phil
