[dm-devel] [QUESTION]: multipath device with wrong path lead to metadata err

Martin Wilck mwilck at suse.com
Wed Jan 20 14:07:11 UTC 2021


On Wed, 2021-01-20 at 10:30 +0800, lixiaokeng wrote:
> Hi Martin:
>     Thanks for your reply.
> 
> 
> > verify_paths() would detect this. We do call verify_paths() in
> > coalesce_paths() before calling domap(), but not immediately
> > before.
> > Perhaps we should move the verify_paths() call down to immediately
> > before the domap() call. That would at least minimize the time
> > window
> > for this race. It's hard to avoid it entirely. The way multipathd
> > is
> > written, the vecs lock is held all the time during
> > coalesce_paths(), 
> > and thus no uevents can be processed. We could also consider
> > calling
> > verify_paths() before *and* after domap().
> 
> Can calling verify_paths() before *and* after domap() deal this
> entirely?

Probably yes. If you look at update_map(), we do it there until domap()
succeeds. Could you try adding a verify_paths() call after domap() in
the failure case, before removing the map? I wouldn't go for a retry
loop like in update_map() at this point.

Martin






More information about the dm-devel mailing list