Dear DRBD-users,
With the upcoming release, we are fixing a surprisingly large number of
bugs across the board. All of the issues are related to unusual
timings. An example is the resize that could lock up when a write on a
remote peer switched an activity log extent on the resizing machine at
the "wrong time".
The other large fix is for the scenario where a diskless primary is
isolated from all storage servers at once, and the storage servers are
isolated from each other at the same time. E.g., a network switch
failure.
During the RC phase, another round of subtle corner case fixes came
in. After I merged those, we had increased failure frequencies for some
tests in the nightly stability runs. Analyzing these issues to the root
causes and applying fixes for those problems delayed the release by 2
days.
I recommend upgrading to this release.
9.3.3 (api:genl2/proto:86-101,118-124/transport:21)
--------
* Support adding and removing paths on established lb-tcp connections
* Fix a page-reference leak on TLS connections by copying instead of
referencing pages when sending
* Reject paths that would make incoming connections ambiguous
* All fixes from 9.2.19
- Fix silent data divergence when a diskless primary creates a new
current UUID that a peer never received (e.g. switch failure);
the optimistic UUID is now confirmed via the data stream before
being relied upon
- Fix silent data corruption when a diskless primary suppressed its
current-UUID bump because a peer had been resynced by a third node
- Fix a false split-brain ("Unrelated data, aborting!") caused by
pushing a peer's bitmap UUIDs into the local history
- Hold a primary-loss survivor at Consistent until it reconciles with
the surviving peers, so a stale node cannot promote and serve
un-reconciled data
- Reconcile two peers holding the same current UUID but still carrying
out-of-sync bits toward each other, instead of silently dropping the
divergence
- Fix a list corruption crash when freeing a peer_req that was
still linked on the send_oos list
- Fix an AB-BA deadlock between online resize and activity-log
transactions
- Fix a use-after-free of the TCP listener during connection setup
- Fix a list corruption crash and assertion failures when a peer
disconnects while online-verify requests are still in flight
- Fix several races during connection teardown that could crash or
hang (ack_sender requeue, pending ping work, in-progress lb-tcp
connect)
- Abort a two-phase-commit on peers when the target connection fails
to prepare
- Added max_parallel_resyncs module parameter to cap how many
volumes may resync (or verify) in parallel
- Fix multiple RDMA transport bugs hit during racing teardown: a
NULL pointer dereference, a self-deadlock, and a cm object leak
- Fix bogus resync speed/ETA reported in /proc/drbd when the
out-of-sync amount grows
- Do not throttle a resync that is losing ground to ongoing writes
https://pkg.linbit.com//downloads/drbd/9/drbd-9.3.3.tar.gz
https://pkg.linbit.com//downloads/drbd/9/drbd-9.2.19.tar.gz
cheers,
Philipp