[Drbd-dev] DRBD Bug Report
Lars Ellenberg
lars.ellenberg at linbit.com
Mon Oct 31 11:58:52 CET 2016
On Tue, Oct 25, 2016 at 01:23:42AM +0000, Guo, Lei wrote:
> Version:9.0.5/9.0.4
> File:drbd_state.c
>
> Two nodes are setup, Node 1 is primary, node 2 is secondary.
> On node 2 , command “drbdadm down r0” returns error.
>
> [error] Failed to disconnected or detach the r0.
> cmd_result=[11], cmd_output=[r0: State change failed: (-10) State change was refused by peer node
> additional info from kernel:failed to disconnect
>
>
> The possible bug is as follows.
> static enum outdate_what outdate_on_disconnect(struct drbd_connection *connection)
> {
> struct drbd_resource *resource = connection->resource;
>
> if (connection->fencing_policy >= FP_RESOURCE &&
> resource->role[NOW] != connection->peer_role[NOW]) {
> if (resource->role[NOW] == R_PRIMARY)
> return OUTDATE_PEER_DISKS;
> if (connection->peer_role[NOW] != R_PRIMARY) <--------- should be “if (connection->peer_role[NOW] == R_PRIMARY)”
Yes.
And I thought I fixed that some weeks ago.
But apparently I did not push a test case,
and it got lost during the last merge/release cycle.
Pushed now.
Note though that this is by far not the only thing
that is broken with enabled fencing-policies on DRBD 9.
I was operating on the assumption that there had been only a few missing
missing parts regarding pacemaker (and other) integration. Turned out I
was wrong, and DRBD 9 + fencing policies is pretty much completely
broken in the module itself still. We are working on it.
--
: Lars Ellenberg
: LINBIT | Keeping the Digital World Running
: DRBD -- Heartbeat -- Corosync -- Pacemaker
: R&D, Integration, Ops, Consulting, Support
DRBD® and LINBIT® are registered trademarks of LINBIT
More information about the drbd-dev
mailing list