Should NVME_SC_INVALID_NS be translated to BLK_STS_IOERR instead of BLK_STS_NOTSUPP so that multipath(both native and dm) can failover on the failure?

Jirong Feng jirong.feng at easystack.cn
Tue Jan 2 02:33:45 PST 2024


in function nvmet_subsys_nsid_exists() added in the patch, remove the 
'\n' from line `if (sprintf(name, "%u\n", nsid) <= 0)`, the patch works 
exactly as what I expect, fio keeps running and multipath does failover.

> Can you paste the log output (host and controller)?
>
host:

[Tue Jan  2 10:22:11 2024] print_req_error: 8 callbacks suppressed
[Tue Jan  2 10:22:11 2024] print_req_error: I/O error, dev nvme1n1, 
sector 186257448 flags ca01
[Tue Jan  2 10:22:11 2024] device-mapper: multipath: Failing path 259:1.
[Tue Jan  2 10:22:11 2024] nvme nvme1: rescanning namespaces.
[Tue Jan  2 10:22:11 2024] device-mapper: multipath round-robin: 
repeat_count > 1 is deprecated, using 1 instead

target:

[Tue Jan  2 10:21:57 2024] nvmet: ctrl 1 update keep-alive timer for 15 secs
[Tue Jan  2 10:22:12 2024] nvmet: jirong add: returning 
NVME_ANA_PERSISTENT_LOSS
[Tue Jan  2 10:22:12 2024] nvmet_tcp: failed cmd 00000000de551a59 id 37 
opcode 1, data_len: 4096
[Tue Jan  2 10:22:12 2024] nvmet: ctrl 1 reschedule traffic based 
keep-alive timer
[Tue Jan  2 10:22:17 2024] nvmet: ctrl 1 update keep-alive timer for 15 secs





More information about the Linux-nvme mailing list