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

**URL:** <https://forums.linbit.com/t/drbd-9-2-21-rc-1-and-drbd-9-3-5-rc-1/1299>\
**Category:** Release Announcements\
**Tags:** kubernetes, drbd\
**Created:** [November 3, 2026, 6:41pm UTC](https://forums.linbit.com/t/drbd-9-2-21-rc-1-and-drbd-9-3-5-rc-1/1299 "2026-11-03T18:41:25Z")\
**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 3, 2026, 6:41pm UTC](https://forums.linbit.com/t/drbd-9-2-21-rc-1-and-drbd-9-3-5-rc-1/1299/1 "2026-11-03T18:41:25Z")

</div>

Hi,

The DRBD-9.3.5-rc.1 release brings two new features. First, it adds an  
interface to use one of DRBD’s change-tracking bitmaps to support backup  
software. Together with the new drbd-utils release, it adds new commands  
to enable, reset, and dump tracked changes in an extent-list  
format. This is compatible with what many backup software programs can  
consume to optimize taking incremental backups. To get this to backup  
software, LINSTOR will also support it, and our integrations with  
Kubernetes, OpenStack, OpenNebula, and Apache CloudStack (and others if  
possible) will support passing the CBT information as well.

The second new feature worth mentioning is a reworked RDMA transport. It  
is called rdma2, and it builds on recent work (released with drbd-9.3.1)  
allocating receive buffers in large chunks. Under optimal conditions,  
that means with large BIOs, I saw lab machines maxing out a 100Gbps link  
using Connext-X5 cards while replicating a write stream with DRBD.

Another change is completely transparent for you as users. We are  
switching the netlink family to drbd2. This is an important step for  
bringing drbd-9 to upstream Linux. It will allow us to have a drbd-9 in  
upstream Linux that is compatible with very old drbd-8.4 drbd-utils.

On top of that, the release includes a large number of bug fixes. We  
fixed many bugs identified by the community and by us at LINBIT, as we  
use more and more LLMs to analyze events in DRBD clusters.

This is a release candidate. Please test it.

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.1.tar.gz](https://pkg.linbit.com/downloads/drbd/9/drbd-9.3.5-rc.1.tar.gz)

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

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

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

cheers,  
Philipp
