I've verified the fix on my environment, thanks for the fix. Tested-by: Yi Zhang <yi.zhang@xxxxxxxxxx> On Wed, Jun 28, 2023 at 8:44 PM Shin'ichiro Kawasaki <shinichiro.kawasaki@xxxxxxx> wrote: > > From: Max Gurtovoy <mgurtovoy@xxxxxxxxxx> > > After the kernel commit ae8bd606e09b ("nvme-fabrics: prevent overriding > of existing host"), 'nvme discover' and 'nvme connect' commands fail > when pair of hostid and hostnqn is not provide. This caused failure of > many test cases in the nvme group with kernel messages "nvme_fabrics: > found same hostid XXX but different hostnqn YYY". > > To avoid the failure, specify valid hostnqn and hostid to the nvme > commands always. Prepare def_hostnqn and def_hostid even when > /etc/nvme/hostnqn or /etc/nvme/hostid is not available. Using these > values, add --hostnqn and --hostid options to the nvme commands in > _nvme_discover() and _nvme_connect_subsys(). > > Reported-by: Yi Zhang <yi.zhang@xxxxxxxxxx> > Link: https://lore.kernel.org/linux-nvme/CAHj4cs_qUWzetD0203EKbBLNv3KF=qgTLsWLeHN3PY7UE6mzmw@xxxxxxxxxxxxxx/ > Signed-off-by: Max Gurtovoy <mgurtovoy@xxxxxxxxxx> > Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@xxxxxxx> > --- > tests/nvme/rc | 29 +++++++++++++++++++++-------- > 1 file changed, 21 insertions(+), 8 deletions(-) > > diff --git a/tests/nvme/rc b/tests/nvme/rc > index 191f3e2..1c2c2fa 100644 > --- a/tests/nvme/rc > +++ b/tests/nvme/rc > @@ -14,8 +14,23 @@ def_remote_wwnn="0x10001100aa000001" > def_remote_wwpn="0x20001100aa000001" > def_local_wwnn="0x10001100aa000002" > def_local_wwpn="0x20001100aa000002" > -def_hostnqn="$(cat /etc/nvme/hostnqn 2> /dev/null)" > -def_hostid="$(cat /etc/nvme/hostid 2> /dev/null)" > + > +if [ -f "/etc/nvme/hostid" ]; then > + def_hostid="$(cat /etc/nvme/hostid 2> /dev/null)" > +else > + def_hostid="$(uuidgen)" > +fi > +if [ -z "$def_hostid" ] ; then > + def_hostid="0f01fb42-9f7f-4856-b0b3-51e60b8de349" > +fi > + > +if [ -f "/etc/nvme/hostnqn" ]; then > + def_hostnqn="$(cat /etc/nvme/hostnqn 2> /dev/null)" > +fi > +if [ -z "$def_hostnqn" ] ; then > + def_hostnqn="nqn.2014-08.org.nvmexpress:uuid:${def_hostid}" > +fi > + > nvme_trtype=${nvme_trtype:-"loop"} > nvme_img_size=${nvme_img_size:-"1G"} > nvme_num_iter=${nvme_num_iter:-"1000"} > @@ -442,12 +457,8 @@ _nvme_connect_subsys() { > elif [[ "${trtype}" != "loop" ]]; then > ARGS+=(-a "${traddr}" -s "${trsvcid}") > fi > - if [[ "${hostnqn}" != "$def_hostnqn" ]]; then > - ARGS+=(--hostnqn="${hostnqn}") > - fi > - if [[ "${hostid}" != "$def_hostid" ]]; then > - ARGS+=(--hostid="${hostid}") > - fi > + ARGS+=(--hostnqn="${hostnqn}") > + ARGS+=(--hostid="${hostid}") > if [[ -n "${hostkey}" ]]; then > ARGS+=(--dhchap-secret="${hostkey}") > fi > @@ -483,6 +494,8 @@ _nvme_discover() { > local trsvcid="${3:-$def_trsvcid}" > > ARGS=(-t "${trtype}") > + ARGS+=(--hostnqn="${def_hostnqn}") > + ARGS+=(--hostid="${def_hostid}") > if [[ "${trtype}" = "fc" ]]; then > ARGS+=(-a "${traddr}" -w "${host_traddr}") > elif [[ "${trtype}" != "loop" ]]; then > -- > 2.40.1 > -- Best Regards, Yi Zhang