Message ID | 1477709726-5442-4-git-send-email-bmarzins@redhat.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Delegated to: | christophe varoqui |
Headers | show |
On 10/29/2016 04:55 AM, Benjamin Marzinski wrote: > When a path is part of a multipath device, it must not change it's wwid. > If it can, when multipathd is reconfigured, you can end up with two > multipath devices owning the same path, eventually leading to a crash. > > Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com> > --- > libmultipath/dmparser.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > Hmm. While I do see that this is an issue, just continuing is probably as bad; the wwid change might be genuine, in which case this device has no business being part of that particular multipath device. Can't we just evict that offending path eg by orphaning it and let the admin figure things out? Cheers, Hannes
On Sun, Oct 30, 2016 at 02:45:01PM +0100, Hannes Reinecke wrote: > On 10/29/2016 04:55 AM, Benjamin Marzinski wrote: > >When a path is part of a multipath device, it must not change it's wwid. > >If it can, when multipathd is reconfigured, you can end up with two > >multipath devices owning the same path, eventually leading to a crash. > > > >Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com> > >--- > > libmultipath/dmparser.c | 8 ++++++++ > > 1 file changed, 8 insertions(+) > > > Hmm. While I do see that this is an issue, just continuing is probably as > bad; the wwid change might be genuine, in which case this device has no > business being part of that particular multipath device. > Can't we just evict that offending path eg by orphaning it and let the admin > figure things out? Possibly, but sometimes devices change wwids temporarily when they get temporarily unmapped, which can happen when you resize them. When I tried orphaning them, I could get multipath devices getting created for that temporary wwid, which was pretty confusing. My later patch also disables access to these paths, so multipath can't keep writing to them, but you don't get these annoying fake mutipath devices. -Ben > > Cheers, > > Hannes > -- > Dr. Hannes Reinecke zSeries & Storage > hare@suse.de +49 911 74053 688 > SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg > GF: J. Hawn, J. Guild, F. Imendörffer, HRB 16746 (AG Nürnberg) -- dm-devel mailing list dm-devel@redhat.com https://www.redhat.com/mailman/listinfo/dm-devel
diff --git a/libmultipath/dmparser.c b/libmultipath/dmparser.c index 9e79ecd..87e8398 100644 --- a/libmultipath/dmparser.c +++ b/libmultipath/dmparser.c @@ -380,6 +380,14 @@ disassemble_map (vector pathvec, char * params, struct multipath * mpp, strncpy(pp->wwid, mpp->wwid, WWID_SIZE - 1); + /* + * Do not allow in-use patch to change wwid + */ + else if (strcmp(pp->wwid, mpp->wwid) != 0) { + condlog(0, "%s: path wwid appears to have changed. Using map wwid.\n", pp->dev_t); + strncpy(pp->wwid, mpp->wwid, WWID_SIZE); + } + pgp->id ^= (long)pp; pp->pgindex = i + 1;
When a path is part of a multipath device, it must not change it's wwid. If it can, when multipathd is reconfigured, you can end up with two multipath devices owning the same path, eventually leading to a crash. Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com> --- libmultipath/dmparser.c | 8 ++++++++ 1 file changed, 8 insertions(+)