Re: Problematic monitor command forwarding

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I think in order to fix this we need some infrastructure in the mons
to make commands truly idempotent.  Since all update operations go
through the leader monitor, we could add a unique request id on the
client command (if there isn't already one) and maintain a persistent
set of recent completed commands in paxos.

This kind of approach is probably also a win because a *lot* of random
mon commands have subtle idempotency bugs where they respond
immediately based on uncommitted state that may be lost in an untimely
election or mon restart/failure.

s


On Mon, May 10, 2021 at 2:07 PM Brad Hubbard <bhubbard@xxxxxxxxxx> wrote:
>
> The purpose of this email is to trigger a discussion on how we rectify
> the following situation so client commands are executed by the monitor
> only once and in the order they are submitted.
>
> https://tracker.ceph.com/issues/49428 describes a scenario where we
> can end up with commands executed more than once and out of order
> according to the client.
>
> In that tracker a client sends an 'erasure-code-profile rm' to mon.c
> and immediately receives an injected connection failure. The client
> then connects to mon.a and reissues the 'rm' command which returns the
> expected 'does not exist' result. The client code then issues an
> 'erasure-code-profile set' command. Shortly after this the original
> 'rm' command is forwarded to mon.a from mon.c and the 'set' command is
> cancelled because of this and the command, and the test, fails.
>
> From the client side the commands executed look like this.
>
> erasure-code-profile rm
> erasure-code-profile set
>
> From the mon side it looks like this.
>
> erasure-code-profile rm
> erasure-code-profile set
> erasure-code-profile rm
>
> I appreciate any feedback on the best way to tackle this one.
>
> --
> Cheers,
> Brad
> _______________________________________________
> Dev mailing list -- dev@xxxxxxx
> To unsubscribe send an email to dev-leave@xxxxxxx
_______________________________________________
Dev mailing list -- dev@xxxxxxx
To unsubscribe send an email to dev-leave@xxxxxxx



[Index of Archives]     [CEPH Users]     [Ceph Devel]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux