Re: [PATCH] [PATCH] libmultipath: return 'ghost' state when port is in transition

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

 



On Tue, 2023-02-21 at 12:56 -0800, Brian Bunker wrote:
> A test unit ready command sent on a path in standby state will not
> result
> in a failed path. The same should be true for a path in the
> transitioning state.
> 
> Signed-off-by: Brian Bunker brian@xxxxxxxxxxxxxxx

In general, I'm somewhat reluctant to change things in this area.
GHOST state is not clearly defined, unfortunately; it has evolved 
from the original "inq succeeds but tur fails" to a somewhat hand-
waving "something in between failed and up" semantics. 

Internally, multipathd treats GHOST paths almost exactly like UP paths,
except that they get a different priority assigned. If for whatever
reason multipathd switches to a PG in this state, the path state is
highly likely to switch to FAILED soon after, as regular IO will fail
on these paths; at least without explicit ALUA. Is that what we want to
see for TRANSITIONING state?

But yes, this change is in the spirit of 5da642f ("Return 'ghost' state
when port is in standby").

CC'ing Ben for confirmation.

Reviewed-by: Martin Wilck <mwilck@xxxxxxxx>

> ---
>  libmultipath/checkers/tur.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/libmultipath/checkers/tur.c
> b/libmultipath/checkers/tur.c
> index 551dc4f0..fff7987b 100644
> --- a/libmultipath/checkers/tur.c
> +++ b/libmultipath/checkers/tur.c
> @@ -179,10 +179,11 @@ retry:
>                 else if (key == 0x2) {
>                         /* Not Ready */
>                         /* Note: Other ALUA states are either UP or
> DOWN */
> -                       if( asc == 0x04 && ascq == 0x0b){
> +                       if (asc == 0x04 &&
> +                           (ascq == 0x0b || ascq == 0x0a)) {
>                                 /*
>                                  * LOGICAL UNIT NOT ACCESSIBLE,
> -                                * TARGET PORT IN STANDBY STATE
> +                                * TARGET PORT IN STANDBY OR
> TRANSITION STATE
>                                  */
>                                 *msgid = CHECKER_MSGID_GHOST;
>                                 return PATH_GHOST;
> --
> 
> --
> dm-devel mailing list
> dm-devel@xxxxxxxxxx
> https://listman.redhat.com/mailman/listinfo/dm-devel
> 

--
dm-devel mailing list
dm-devel@xxxxxxxxxx
https://listman.redhat.com/mailman/listinfo/dm-devel





[Index of Archives]     [DM Crypt]     [Fedora Desktop]     [ATA RAID]     [Fedora Marketing]     [Fedora Packaging]     [Fedora SELinux]     [Yosemite Discussion]     [KDE Users]     [Fedora Docs]

  Powered by Linux