Tags: LINBIT/drbd
Tags
9.3.2 (api:genl2/proto:86-101,118-124/transport:21)
--------
* Use genl pre_doit/post_doit for netlink request setup and teardown
* Handle recv returning 0 (EOF) in recv_bio
* Revert flush_send_buffer send error causing state change
* Fix a page leak in the RDMA transport's send-page path
* All fixes from 9.2.18
- Fix when a diskless primary creates a new current UUID,
fixing possible silent data divergence later
- Fix quorum calculation upon attach/detach operations
- Handle split-brain recovery strategies during attach
like they are handled during connect
- Hanle attaching of large devices (~100TiB) without triggering
the NMI watchdog
- Fix a race condition in the RDMA code that could lead to
leaking a cm object
- Skip new-region resync for zero-guarantee backends at attach
- drbdsetup attach waits for completion of disk state negotiation
before returning
- Fix missing disk line in drbdsetup show while in D_NEGOTIATING state
- A few fixes found by the static analyzer smatch
9.2.18 (api:genl2/proto:86-101,118-124/transport:21) -------- * Fix when a diskless primary creates a new current UUID, fixing possible silent data divergence later * Fix quorum calculation upon attach/detach operations * Handle split-brain recovery strategies during attach like they are handled during connect * Hanle attaching of large devices (~100TiB) without triggering the NMI watchdog * Fix a race condition in the RDMA code that could lead to leaking a cm object * Skip new-region resync for zero-guarantee backends at attach * drbdsetup attach waits for completion of disk state negotiation before returning * Fix missing disk line in drbdsetup show while in D_NEGOTIATING state * A few fixes found by the static analyzer smatch
9.3.1 (api:genl2/proto:86-101,118-124/transport:21)
--------
* Use compound pages to optimize large I/O performance
* New option for setting the discard granularity exposed on
diskless nodes
* Add per-peer_device tiebreaker config flag for quorum
* Fix compat-8.4 /proc/drbd output for connected resources
* Fix a race that could lead that a resyncs stalls when it
should complete.
* All fixes from 9.2.17
- Fix a kernel crash triggered by a crafted/invalid netlink message
- Fix a crash when resyncing with a peer supporting proto 121,
e.g. drbd-9.1.23
- Fixed two corner case regressions regarding bitmap lifetime
(introduced with 9.2.16)
- Add a static analyzer that checks for correctly handling bitmap
object lifetime; it identified 6 bugs
- Correctly request BLK_FEAT_STABLE_WRITES from the kernel; Kernels
side changes lead to this queue flag not being active
- Fix lb-tcp to not corrupt data when it reassembles a data chunk, it
split for sending over multiple paths in parallel
- Add a special case to ensure LINSTOR re-provisioned nodes with thin
volumes get the necessary incremental resync
- Always do a two-phase-commit for attach, closes a race that could
lead to an inconsistent repl states
- Skip unnecessary resync when a missed end-of-resync has 0 bits;
before that fix, DRBD could end up in inconsistent repl states
- Fix a case where a send error was ignored on congested connections
- Make detection of missed end-of-resync symmetric; the bug led to
inconsistent repl states
- Make the RDMA transport compatible with RXE (software RoCE),
and some mainly performance-related fixes
9.2.17 (api:genl2/proto:86-101,118-124/transport:21) -------- * Fix a kernel crash triggered by a crafted/invalid netlink message * Fix a crash when resyncing with a peer supporting proto 121, e.g. drbd-9.1.23 * Fixed two corner case regressions regarding bitmap lifetime (introduced with 9.2.16) * Add a static analyzer that checks for correctly handling bitmap object lifetime; it identified 6 bugs * Correctly request BLK_FEAT_STABLE_WRITES from the kernel; Kernels side changes lead to this queue flag not being active * Fix lb-tcp to not corrupt data when it reassembles a data chunk, it split for sending over multiple paths in parallel * Add a special case to ensure LINSTOR re-provisioned nodes with thin volumes get the necessary incremental resync * Always do a two-phase-commit for attach, closes a race that could lead to an inconsistent repl states * Skip unnecessary resync when a missed end-of-resync has 0 bits; before that fix, DRBD could end up in inconsistent repl states * Fix a case where a send error was ignored on congested connections * Make detection of missed end-of-resync symmetric; the bug led to inconsistent repl states * Make the RDMA transport compatible with RXE (software RoCE), and some mainly performance-related fixes
9.3.0 (api:genl2/proto:86-101,118-123/transport:19) -------- * was forked off between 9.2.12 and 9.2.13 * Implemented resync without replication and made it the default; the previous (drbd-9.2 and earlier) behavior is still available via a config option. With that, the resync operation begins with mirroring of application writes disabled, and it performs multiple resync passes, clearing bits in the bitmap. It enables application write mirroring when the resync is nearly complete. That reduces the I/O load during resync, and in most cases, it reduces resync time. * Implemented support for bitmap granularity between 4k and 1M, including exchanging bitmaps with peers with a different bitmap block size * Give filesystems mounted on DRBD a chance to bring their on-disk representations into a consistent state before suspending I/O. * Add support for omitting bitmap allocation for standalone devices * Explicit config option for drbd8-api-compatibility mode * Dropped support for RHEL7 and support for kernels older than 3.10. * All fixes from 9.2.13 to 9.2.16 * Compatibility with Linux-6.18
9.2.16 (api:genl2/proto:86-101,118-122/transport:19) -------- * Do not trigger the OOM-killer when allocating a too-big dirty bitmap during attach; instead, fail the attach operation. * Do not flush half-created packets out while closing a connection * Fixed a bug that, in rare circumstances, when flapping between Ahead and resync, can lead to a divide by zero error. * Fixed a bug that caused DRBD to send too many P_PEERS_IN_SYNC packets when finishing a resync; on huge devices ( >10TB), that led to temporarily higher I/O latencies. * Fixed two unhandled corner case to automatically reintegrate an I/O frozen primary into a larger partition that created a newer data generation * Compatibility with Linux-6.17 and 6.18-rc6
9.2.15 (api:genl2/proto:86-101,118-122/transport:19) -------- * Fixed the regression introduced with 9.2.13, where a DRBD primary resource never finishes a resync with a newly added peer * Make DRBD's ability to discard(trim) blocks on a resync-target if they are all zero on the sync source compatible with block devices that have a lower max_hw_sectors_kb value than the rs-discard-granularity * Fixed a regression introduced with 9.2.8, where DRBD failed to write the metadata to its new location after an online resize, when the "two-node cluster, no AL-updates on secondary" optimization was active * Added a missing spinlock in the code responsible for applying unacknowledged peer requests to the bitmap, i.e. when a peer leaves the cluster unexpectedly; We never got a crash report on Linux caused by the missing spinlock, the bug was discovered on Windows (winDRBD) * A bunch of fixes for the RDMA transport: A potential BUG() when removing the transport_rdma module, a memory leak upon a send failure, a race between re-creating rx descriptors and disconnecting, and a NULL ptr deref as a consequence of a race between removing a path and accepting a connection * Add the kernel side of drbd v8 compatibility, which includes drbdsetup command line compatibility, reading and writing of v8 metadata, and v8 style /proc/drbd. By default, this is not compiled in * Verified compatibility for Linux-6.16 and 6.17-rc5
9.2.14 (api:genl2/proto:86-101,118-122/transport:19) -------- * Fix a race condition between write requests and very short resyncs that might cause DRBD to fail to resync that racing write. * Fix the suspend-IO command so that it waits until all pending writes are completed before it returns. From now on, it can be used to create consistent snapshots of the primary and the secondary. * Improve DRBD's pooling of buffer pages. The old implementation stopped freeing any of those buffer pages if the kernel would leak a single page reference. * Fix corner case CM leaks in the RDMA transport. * Fix a warning on recent kernels (RHEL10) regarding DRBD failing to set queue parameters for zoned block devices. * Dockerfile for RHEL10 * Compatibility with Linux 6.14 and 6.15
9.2.13 (api:genl2/proto:86-101,118-122/transport:19) -------- * Fix a bug in the rs-discard-granularity feature; when having three or more replicas and after a particular resync scenario in the final consequence, it led to inconsistencies in the mirroring aka data corruption * Fix a bug that causes drbd not to finish a write request; DRBD noticed that the request did not finish and abandoned the connection; it happened only on resync-target primaries * Fix a bug that causes machine freeze (without OOPS message) under particular heavy network load conditions (a missing call to skb_abort_seq_read()) * An up-to-date node no longer gets outdated by a far (not a neighbor) primary that is incapable (I.e. has an inconsistent disk and no access to up-to-date data) * Fix for a race condition between new writes getting submitted and a connection getting abandoned due to a send error; when it triggered, DRBD failed to complete a (or multiple) write request(s) * Fix a (never observed) race condition that causes false ping timeouts * Fix a minor memory leak; it failed to free the memory allocated for a specific class of state change log messages * Fix a reference counting bug in the RDMA transport upon address or route resolution errors * Fix detecting dead peers on idle connections in the RDMA transport * Enable TCP keepalive packets by default in the TCP transports * Add a DKMS package for RPM-based Linux distributions * Add a docker recipe for sles15 * Compatibility with coccinelle 1.2 * Compatibility with Linux 6.13
9.2.12 (api:genl2/proto:86-101,118-122/transport:19)
--------
* Fix a complicated distributed deadlock corner case that caused
DRBD to being unable to reconnect after losing connection during
a resync
* Fix the RDMA transport for use with an intel card; fixed various
aspects where we depended on Mellanox cards' behavior
* Changes merged from 9.1.22
- Fix a corner case that can happen when DRBD establishes multiple
connections in parallel, which could lead one connection to end up in
an inconsistent replication state of WFBitMapT/Established
- Fix a corner case in which a reconciliation resync ends up in
WFBitMapT/Established
- Restrict protocol compatibility to the most recent 8.4 and 9.0 releases
- Fix a corner case causing a module ref leak on drbd_transport_tcp;
if it hits, you can not rmmod it
- rate-limit resync progress while resync is paused
- resync-target inherits history UUIDs when resync finishes,
this can prevent unexpected "unrelared data" events later
- Updated compatibility code for Linux 6.11 and 6.12
PreviousNext