If md.nr_disks changes from 1 to 0, the node is pure gateway then. Seems it
doesn't need
to do any recovery work since no object will locate in the pure gateway.
------------------ Original ------------------
From: "Hitoshi Mitake";<[email protected]>;
Date: Thu, Sep 11, 2014 10:34 AM
To: "Bingpeng Zhu"<[email protected]>;
Cc: "sheepdog"<[email protected]>; "Bingpeng
Zhu"<[email protected]>;
Subject: Re: [sheepdog] [PATCH v1] sheep/md: fix dog cluster info command show
wrong disk number
At Wed, 10 Sep 2014 20:08:32 +0800,
Bingpeng Zhu wrote:
>
> If we enable diskvnodes mode and encounter EIO, running dog
> cluster info will show wrong disk number in the new epoch.
> We should update node disks when handling EIO and unplug the
> disk.
>
> Signed-off-by: Bingpeng Zhu <[email protected]>
> ---
> sheep/md.c | 3 +++
> 1 files changed, 3 insertions(+), 0 deletions(-)
>
> diff --git a/sheep/md.c b/sheep/md.c
> index b13d30a..378d1f1 100644
> --- a/sheep/md.c
> +++ b/sheep/md.c
> @@ -541,6 +541,9 @@ static void md_do_recover(struct work *work)
> out:
> sd_rw_unlock(&md.lock);
>
> + if (disk)
> + update_node_disks();
> +
The change looks reasonable. But I have a question:
> if (nr > 0)
> kick_recover();
Does the above conditional branch (nr > 0) required? When a node has
single disk and faces EIO, md.nr_disks can change from 1 to 0. In such
a case, the code will not call kick_recover(). I think it is a
problematic behavior. How do you think?
Thanks,
Hitoshi
>
> --
> 1.7.1
>
>
>
>
> --
> sheepdog mailing list
> [email protected]
> http://lists.wpkg.org/mailman/listinfo/sheepdog
--
sheepdog mailing list
[email protected]
http://lists.wpkg.org/mailman/listinfo/sheepdog