Re: [bug report] most of blktests nvme/ failed on the latest linux tree

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

 





On 28/06/2023 13:34, Shinichiro Kawasaki wrote:
On Jun 28, 2023 / 12:52, Max Gurtovoy wrote:
Hi Yi,

On 28/06/2023 12:21, Max Gurtovoy wrote:


On 28/06/2023 11:14, Sagi Grimberg wrote:


Yi,

Do you have hostnqn and hostid files in your /etc/nvme directory?


No, only one discovery.conf there.

# ls /etc/nvme/
discovery.conf

So the hostid is generated every time if it is not passed.
We should probably revert the patch and add it back when
blktests are passing.

Seems like the patch is doing exactly what it should do - fix
wrong behavior of users that override hostid.
Can we fix the tests instead ?

Right, I got confused between a provided host and the default host...

I think we need to add check that /etc/nvme/[hostnqn,hostid] exist
in the test cases.

Right.
And if one of the files doesn't exist, generate the value.

Should it go to tests/nvme/rc ?

Can you please try adding the bellow un-tested code to blktests and re-run:

[root@r-arch-stor03 blktests]# git diff
diff --git a/tests/nvme/rc b/tests/nvme/rc
index 191f3e2..88e6fa1 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"}


I tried the patch above, and still see the errors. def_hostnqn and def_hostid
were not passed to 'nvme discover' and 'nvme connect'. I added some more change
as below patch and confirmed the nvme test group failures were avoided
(nvme_trtype=loop).

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

Looks good.
can you please send a patch with the above ?
you can add my
Signed-off-by: Max Gurtovoy <mgurtovoy@xxxxxxxxxx>



[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux