On 5/8/24 5:24 AM, Martin Wilck wrote: > From: Rajashekhar M A <rajs@xxxxxxxxxx> > > When a host is configured with a few LUNs and IO is running, > injecting FC faults repeatedly leads to path recovery problems. > The LUNs have 4 paths each and 3 of them come back active after > say an FC fault which makes two of the paths go down, instead of > all 4. This happens after several iterations of continuous FC faults. > > Reason here is that we're returning an I/O error whenever we're > encountering sense code 06/04/0a (LOGICAL UNIT NOT ACCESSIBLE, > ASYMMETRIC ACCESS STATE TRANSITION) instead of retrying. > > mwilck: Moved this code to alua_check_sense() as suggested by > Mike Christie [1]. Evan Milne had raised the question whether pg->state > should be set to transitioning in the UA case [2]. I believe that doing > this is correct. SCSI_ACCESS_STATE_TRANSITIONING by itself doesn't cause > I/O errors. Our handler schedules an RTPG, which will only result in > an I/O error condition if the transitioning timeout expires. > > [1] https://lore.kernel.org/all/0bc96e82-fdda-4187-148d-5b34f81d4942@xxxxxxxxxx/ > [2] https://lore.kernel.org/all/CAGtn9r=kicnTDE2o7Gt5Y=yoidHYD7tG8XdMHEBJTBraVEoOCw@xxxxxxxxxxxxxx/ > > Signed-off-by: Hannes Reinecke <hare@xxxxxxx> > Signed-off-by: Martin Wilck <mwilck@xxxxxxxx> > Reviewed-by: Damien Le Moal <dlemoal@xxxxxxxxxx> > --- Reviewed-by: Mike Christie <michael.christie@xxxxxxxxxx>