# drbd-9.2.21-rc.2 and drbd-9.3.5-rc.2

**URL:** <https://forums.linbit.com/t/drbd-9-2-21-rc-2-and-drbd-9-3-5-rc-2/1305>\
**Category:** Release Announcements\
**Tags:** drbd\
**Created:** [November 11, 2026, 4:32pm UTC](https://forums.linbit.com/t/drbd-9-2-21-rc-2-and-drbd-9-3-5-rc-2/1305 "2026-11-11T16:32:42Z")\
**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:** [November 11, 2026, 4:32pm UTC](https://forums.linbit.com/t/drbd-9-2-21-rc-2-and-drbd-9-3-5-rc-2/1305/1 "2026-11-11T16:32:42Z")

</div>

Hi,

here is the DRBD-9.3.5-rc.2 release. I decided on a second release  
candidate, as things did not calm down over the last week, which you  
want before a release.

I am now targeting next week for the final release.

This is a release candidate. Please test it.

9.3.5-rc.2 (api:genl2/proto:86-101,118-125/transport:23)  
--------  
\* Serve changed block tracking on the drbd netlink family too, so that  
&nbsp;&nbsp;&nbsp;it works on kernels without the drbd2 family (before 6.2)  
\* All fixes from 9.2.21-rc.2  
&nbsp;&nbsp;- Fix a sync source running out of memory when the sync target  
&nbsp;&nbsp;&nbsp;&nbsp;requests faster than it can read: a target with rs-discard-granularity  
&nbsp;&nbsp;&nbsp;&nbsp;keeps its requests within max-buffers, and the source allocates the  
&nbsp;&nbsp;&nbsp;&nbsp;pages of a resync read only when it submits the read  
&nbsp;&nbsp;- Fix resyncs in opposite directions stopping for good with  
&nbsp;&nbsp;&nbsp;&nbsp;max-parallel-resyncs: only the requesting side takes a slot  
&nbsp;&nbsp;- Fix an attaching node waiting in WFBitMapT forever while its peer  
&nbsp;&nbsp;&nbsp;&nbsp;decided there is nothing to sync  
&nbsp;&nbsp;- Fix a failed local write-zeroes leaving the old data on a disk that  
&nbsp;&nbsp;&nbsp;&nbsp;stays UpToDate  
&nbsp;&nbsp;- Fix auto-promote giving up long before auto-promote-timeout  
&nbsp;&nbsp;- Fix disconnect: the peer going to NetworkFailure instead of  
&nbsp;&nbsp;&nbsp;&nbsp;Disconnecting, and "drbdadm disconnect" failing with -18 when the  
&nbsp;&nbsp;&nbsp;&nbsp;peer tears down first  
&nbsp;&nbsp;- Fix TLS: two nodes stalling in the handshake until the TLS timeout,  
&nbsp;&nbsp;&nbsp;&nbsp;and going StandAlone when the peer resets the connection during the  
&nbsp;&nbsp;&nbsp;&nbsp;handshake  
&nbsp;&nbsp;- Fix a use-after-free of the rdma control timer on teardown  
&nbsp;&nbsp;- Fix the build on kernels before 4.17 (RHEL 7) and with Linux 7.4,  
&nbsp;&nbsp;&nbsp;&nbsp;and the send buffer not growing during a resync on Linux 7.4

9.3.5-rc.1 (api:genl2/proto:86-101,118-125/transport:23)  
--------  
\* Track changed blocks for incremental backups: a tracking bitmap slot  
&nbsp;&nbsp;&nbsp;records every write to the backing device; cbt-flush and cbt-start  
&nbsp;&nbsp;&nbsp;bracket a snapshot taken while I/O is suspended on all nodes  
\* suspend-io now also waits for the barrier ack of the last epoch, so  
&nbsp;&nbsp;&nbsp;that with protocols A and B the writes are on the peers' stable  
&nbsp;&nbsp;&nbsp;storage too; flush-to-peers=no skips that wait  
\* Add rdma2, a new RDMA transport that moves all data with one-sided  
&nbsp;&nbsp;&nbsp;RDMA-WRITE, sends bios zero-copy, and fails over to a surviving path  
&nbsp;&nbsp;&nbsp;when a link goes down  
\* Serve the new drbd2 netlink family next to the drbd family  
\* Optionally serve DRBD 8.4 userland over the netlink family at version  
&nbsp;&nbsp;&nbsp;1 (CONFIG\_DRBD\_NL\_DRBD1, rpmbuild --with nl\_drbd1,  
&nbsp;&nbsp;&nbsp;DEB\_BUILD\_OPTIONS=nl\_drbd1); off by default  
\* Fix lb-tcp skipping a path for good after the peer closed it first  
&nbsp;&nbsp;&nbsp;during a disconnect, which starved every later handshake  
\* Fix spurious and racy "bitmap locked" warnings when bitmap operations  
&nbsp;&nbsp;&nbsp;on different peer slots run concurrently  
\* All fixes from 9.2.21-rc.1  
&nbsp;&nbsp;- Fix a resync target staying Inconsistent with nothing left to sync:  
&nbsp;&nbsp;&nbsp;&nbsp;when the Primary cannot reach the sync source, after aborting a weak  
&nbsp;&nbsp;&nbsp;&nbsp;sync source, and when P\_RS\_CANCEL\_AHEAD overtakes the Ahead state  
&nbsp;&nbsp;&nbsp;&nbsp;change  
&nbsp;&nbsp;- Fix a reconciliation resync target waiting in WFBitMapT forever, and  
&nbsp;&nbsp;&nbsp;&nbsp;out-of-sync bits from before a lost diskless Primary being dropped at  
&nbsp;&nbsp;&nbsp;&nbsp;equal dagtags  
&nbsp;&nbsp;- Fix a peer's connect-time upgrade from Outdated going unnoticed,  
&nbsp;&nbsp;&nbsp;&nbsp;which left writes unreplicated  
&nbsp;&nbsp;- Fix an Outdated sync source being marked UpToDate after a resync  
&nbsp;&nbsp;&nbsp;&nbsp;with failed blocks  
&nbsp;&nbsp;- Fix the day0 slots, a regression in 9.2.20: forget-peer left a slot  
&nbsp;&nbsp;&nbsp;&nbsp;that the next UUID bump filled with a later generation, and a peer  
&nbsp;&nbsp;&nbsp;&nbsp;created from the day0 UUID could be refused as unrelated data;  
&nbsp;&nbsp;&nbsp;&nbsp;attach repairs such meta data  
&nbsp;&nbsp;- Fix promoting a peer that holds an older generation of the data a  
&nbsp;&nbsp;&nbsp;&nbsp;diskless Primary exposes  
&nbsp;&nbsp;- Fix P\_OUT\_OF\_SYNC: never sent for Primaries with node-id 8 or higher,  
&nbsp;&nbsp;&nbsp;&nbsp;a crash after del-peer of a Primary, and writes left pending for a  
&nbsp;&nbsp;&nbsp;&nbsp;peer that lost its connection  
&nbsp;&nbsp;- Fix the activity log: AL updates turned off while a crashed Primary  
&nbsp;&nbsp;&nbsp;&nbsp;resyncs, the superblock written too late on "al-updates no", and the  
&nbsp;&nbsp;&nbsp;&nbsp;in-core AL not written when AL updates come back on  
&nbsp;&nbsp;- Fix a dry-run connect (--tentative) establishing the connection  
&nbsp;&nbsp;&nbsp;&nbsp;without a resync  
&nbsp;&nbsp;- Fix the last close returning before the peers have the last write on  
&nbsp;&nbsp;&nbsp;&nbsp;stable storage, and auto-demote failing on a pending signal  
&nbsp;&nbsp;- Fix call-pri-lost-after-sb killing the receiver instead of demoting  
&nbsp;&nbsp;- Fix online resize: drain application I/O before the commit and before  
&nbsp;&nbsp;&nbsp;&nbsp;a participant replies, cache the peers' size answers per volume, and  
&nbsp;&nbsp;&nbsp;&nbsp;refuse a too small peer while syncing from a larger one  
&nbsp;&nbsp;- Fix a receiver deadlock at the end of a resync when the link fails  
&nbsp;&nbsp;&nbsp;&nbsp;while the bitmap is written, and bound the memory a bitmap write-out  
&nbsp;&nbsp;&nbsp;&nbsp;holds  
&nbsp;&nbsp;- Fix resync pacing: the fixed resync-rate (c-plan-ahead 0) holds, the  
&nbsp;&nbsp;&nbsp;&nbsp;resync queue at the backing device is bounded so application I/O does  
&nbsp;&nbsp;&nbsp;&nbsp;not wait behind it, and DRBD logs when max-buffers or c-max-rate  
&nbsp;&nbsp;&nbsp;&nbsp;limit a resync  
&nbsp;&nbsp;- Fix connect and disconnect issues: a spurious NetworkFailure right  
&nbsp;&nbsp;&nbsp;&nbsp;after a handshake, a stale ping timeout dropping the next connect, a  
&nbsp;&nbsp;&nbsp;&nbsp;peer's close while connecting taken as a network error, ko-count 0  
&nbsp;&nbsp;&nbsp;&nbsp;being counted down, and a second peer accepted beside a DRBD 8.4 peer  
&nbsp;&nbsp;- Fix lb-tcp: a NULL pointer dereference in the receiver, a CPU spin  
&nbsp;&nbsp;&nbsp;&nbsp;when the peer closes mid-payload, zero-length data chunks, hot-adding  
&nbsp;&nbsp;&nbsp;&nbsp;paths, and listeners left on unused paths  
&nbsp;&nbsp;- Fix rdma: use-after-free and refcount underflows on teardown during  
&nbsp;&nbsp;&nbsp;&nbsp;connect, a 60 s hang after a failed establish, going StandAlone on an  
&nbsp;&nbsp;&nbsp;&nbsp;interrupted connect, and a crash with a peer running rdma2  
&nbsp;&nbsp;- Fix the TLS handshake compat code (upstream fixes): leaks, refcount  
&nbsp;&nbsp;&nbsp;&nbsp;and use-after-free bugs, and a missing admin check on DONE  
&nbsp;&nbsp;- Fix memory corruption by peer\_device flags on 32-bit kernels  
&nbsp;&nbsp;- Fix a negative ap-in-flight after a resend, BarrierAck count warnings,  
&nbsp;&nbsp;&nbsp;&nbsp;sending on after a send failed, and an unsent packet flushed at  
&nbsp;&nbsp;&nbsp;&nbsp;disconnect ("Wrong magic value" on the peer)  
&nbsp;&nbsp;- Fix attach hanging after the node was a verify target, and a double  
&nbsp;&nbsp;&nbsp;&nbsp;release when linking the holder fails  
&nbsp;&nbsp;- Show the submit and sent ages of requests in debugfs again, and mark  
&nbsp;&nbsp;&nbsp;&nbsp;peer writes that completed locally  
&nbsp;&nbsp;- Fix building SUSE KMPs on SLES 16, and the build with  
&nbsp;&nbsp;&nbsp;&nbsp;CONFIG\_DRBD\_TIMING\_STATS

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

> <https://github.com/LINBIT/drbd/commit/c75ff4bfd35ffd5eb18d9c785fcfda36b1d6bd35>
>
> Signed-off-by: Philipp Reisner \<philipp.reisner@linbit.com\>

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

> <https://github.com/LINBIT/drbd/commit/0b6dd9039687fe61ae449cb5a2b1b6e7b5b9a4e7>
>
> Signed-off-by: Philipp Reisner \<philipp.reisner@linbit.com\>

cheers,  
Phil
