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 Mar 2, 2023, at 11:46 PM, Martin Wilck <mwilck@xxxxxxxx> wrote:
> 
> 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>
Hello Martin, 

Doesn’t "something in between failed and up” semantics describe ALUA state transitioning pretty well?

Thanks,
Brian
> 
> 
> 
>> ---
>>  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