[DRBD-announce] drbd-9.0.20-1
Philipp Reisner
philipp.reisner at linbit.com
Thu Oct 10 13:19:53 CEST 2019
Hi,
With this release the big news is the new way we deal with compatibility
for older linux kernels. It used to be a mechanism based of #IFDEFs that
tainted the main drbd code more and more.
Now the DRBD code is clean Linux-upstream compatible code. In order that
you can compile it against older and distribution kernels the build
process automatically applies a compat-patch. These compat-patches are
computed using coccinelle/spatch semantic patches. See here for more
information:
https://www.linbit.com/en/how-to-make-drbd-compatible-to-the-linux-kernel/
During the long release-candidate phase of this release we had the idea to
offer spatch as a service. I.e. make sure your build environment may connect
to the internet, building should work and you do not need to care about
installing coccinelle/spatch into your build environment.
Other than that the number of bug-fixes that landed in this release is
higher than in any previous releases. What started as a loosely knit group
of open source uses is now a group of serious enterprise users. This time
we got a lot of feedback during the RC phase that allowed us to iron out
more issues than with any previous releases.
A big thank you to our community!
Here is the changelog:
9.0.20-1 (api:genl2/proto:86-115/transport:14)
--------
* fix a case of false split brain detection if a diskless node promotes
multiple times, by aligning the rules for generating a new current-UUID
on a diskless nodes with them on a node with disk
* check if we still have quorum by exchanging a drbd-ping with peers
before creating new current UUID after loosing one peer
* fix after weak handling to not interfere with reconciliation resyncs
* retry connect when one of the relevant flags changes during UUID exchange
* fix reconciliation resync if one of the secondary got an current-UUID update
* fix resync to make progress after it was paused by an other resync operation
* fix false split-brains when a resync source changes current-UUID during
resync operation
* fix restore of D_OUTDATED when the resource first only attached and
then the peer objects are created (in contrast to the usual, new-peer,
attach, connect)
* abort creating new current-UUID when writing to meta-data fails in
the moment where the new-current-UUID should be written
* removed DRBD marking itself as read-only when secondary; this flag
was exposed using the BLKROGET ioctl; that should be left to user-land
use; recent KVM checks that flag, and does not dare auto-promote when
set by DRBD
* fix a small memory-leak when creating peer devices
* fix a possible information leak of kernel memory that pads net-link packets
* completing implications of "allow-remote-read=no"; i.e. when not to
create a new-current-UUID as read-write access to the data set was lost;
also fail both reads and writes if reads are no longer possible
* new option value "rr-conflict=retry-connect"; that helps in scenarios with
quorum where stopping a service takes longer than a temporarily network
outage and DRBD's reconnect
* code cleanups, introduced enums for remaining magic numbers
* new kernel-backward-compatibility framework based on spatch/coccinelle,
replacing an unmaintainable moloch of C preprocessor hell; Merged the
complete kernel-compat submodule
* ships with pre-computed compat-patches for main distros' kernels; in case
an other kernel is found it tries to use local spatch, if that is not
installed the build process tries to use a LINBIT hosted web service
to create the compat patch ("spatch-as-a-service").
* compat with up to Linux-5.3-rc2
https://www.linbit.com/downloads/drbd/9.0/drbd-9.0.20-1.tar.gz
https://launchpad.net/~linbit/+archive/ubuntu/linbit-drbd9-stack
https://github.com/LINBIT/drbd/commits/7dce3c8be99f4912f1490f9bb37f5aff6c873335
cheers!
--
LINBIT | Keeping The Digital World Running
DRBD® and LINBIT® are registered trademarks of LINBIT, Austria.
More information about the drbd-announce
mailing list