Hello DRBD users, I am glad to announce yet another release, drbd-9.1.15 and drbd-9.2.4.
Our 'eat your own dog food' policy led to another bug we were able to fix shortly before the release (during the rc.1 phase). It reproduces on drbd-9.2. On drbd-9.1 it reproduces only with a non-default CPU mask configured. I know that users of recent kernels are eagerly waiting for this release. Even if a previous DRBD release was compile-time compatible with Linux-6.2 and later, the resulting module crashed your system. This got fixed. You find bug fixes at the top of the changelog with bitter consequences, like locking up a resource or causing an OOPS. What they have in common is that they are about very rare edge cases. The bugs have been in the code for a very long time. As usual, when fixing these bugs, we improved the test-suite as well, which runs 82 tests on every commit by now. Recently I learned that by running these tests, we cover 92.1% of all functions of the DRBD kernel code and 78.6% of all code lines. It might be that the real number is even higher since that first coverage analysis did not include the test runs, where we test protocol compatibility with older DRBD releases. Due to the number of fixes of bugs that have severe consequences, I recommend upgrading. 9.1.15 (api:genl2/proto:110-121/transport:17) -------- * fix how flush requests are marked when submitted to the Linux IO stack on the secondary node * when establishing a connection failed with a two-pc timeout, a receiver thread deadlocked, causing drbdsetup calls to block on that resource (difficult to trigger) * fixed a NULL-ptr deref (a OOPS) caused by a rare race condition while taking a resource down * fix a possible hard kernel-lockup, can only be triggerd when a CPU-mask is configured * updated kernel compatibility to at least Linux head and also fixed a bug in the compat checks/rules that caused OOPSes of the previous drbd releases when compiled with Linux-6.2 (or on RHEL 9.2 kernel). * fix an aspect of the data-generation (UUID) handling where DRBD failed to do a resync when a diskless node in the remaining partition promotes and demotes while a diskful node is isolated * fix an aspect of the data-generation (UUID) handling where DRBD considered a node to have unrelated data; this bug was triggered by a sequence involving removing two nodes from a cluster and readding one with the "day-0" UUIDs. * do not block specific state changes (promote, demote, attach, and detach) when only some nodes add a new minor 9.2.4 (api:genl2/proto:110-122/transport:18) -------- * fix a possible deadlock when disconnecting during a resync * fix a possible hard kernel-lockup * changes merged from drbd-9.1.15 - fix how flush requests are marked when submitted to the Linux IO stack on the secondary node - when establishing a connection failed with a two-pc timeout, a receiver thread deadlocked, causing drbdsetup calls to block on that resource (difficult to trigger) - fixed a NULL-ptr deref (a OOPS) caused by a rare race condition while taking a resource down - updated kernel compatibility to at least Linux head and also fixed a bug in the compat checks/rules that caused OOPSes of the previous drbd releases when compiled with Linux-6.2 (or on RHEL 9.2 kernel). - fix an aspect of the data-generation (UUID) handling where DRBD failed to do a resync when a diskless node in the remaining partition promotes and demotes while a diskful node is isolated - fix an aspect of the data-generation (UUID) handling where DRBD considered a node to have unrelated data; this bug was triggered by a sequence involving removing two nodes from a cluster and readding one with the "day-0" UUIDs. - do not block specific state changes (promote, demote, attach, and detach) when only some nodes add a new minor https://pkg.linbit.com//downloads/drbd/9/drbd-9.1.15.tar.gz https://github.com/LINBIT/drbd/commit/b6d225583f833dc02d3e13cd92864b30f2fd442a https://pkg.linbit.com//downloads/drbd/9/drbd-9.2.4.tar.gz https://github.com/LINBIT/drbd/commit/460cfc1025ba5abb63ac9ed2895d6cec178bb39c _______________________________________________ Star us on GITHUB: https://github.com/LINBIT drbd-user mailing list drbd-user@lists.linbit.com https://lists.linbit.com/mailman/listinfo/drbd-user