All of lore.kernel.org
 help / color / mirror / Atom feed
* [LTP] [PATCH] commands/mkswap01: Update wait_for_file function
@ 2016-01-29 15:56 shuang.qiu
  2016-02-02 14:35 ` Cyril Hrubis
  2016-02-26 13:42 ` Stanislav Kholmanskikh
  0 siblings, 2 replies; 15+ messages in thread
From: shuang.qiu @ 2016-01-29 15:56 UTC (permalink / raw)
  To: ltp

From: Shuang Qiu <shuang.qiu@oracle.com>

In commit a76b72ad31fa7bb22a09f323dadd5db7c00c7f56,it depends on the files 
under /dev/disk/by-* in wait_for_file function.But sometimes udev does not 
refresh automatically during runtime and the symbolic links will not appear.
Update the function to use blkid instead.

Signed-off-by: Shuang Qiu <shuang.qiu@oracle.com>
---
 testcases/commands/mkswap/mkswap01.sh |   25 +++++++++++++------------
 1 file changed, 13 insertions(+), 12 deletions(-)

diff --git a/testcases/commands/mkswap/mkswap01.sh b/testcases/commands/mkswap/mkswap01.sh
index ae4c98a..fdfc712 100755
--- a/testcases/commands/mkswap/mkswap01.sh
+++ b/testcases/commands/mkswap/mkswap01.sh
@@ -46,25 +46,26 @@ cleanup()
 	tst_rmdir
 }
 
-wait_for_file()
+wait_for_device()
 {
-	local path="$1"
+	local token="$1"
 	local retries=10
 
-	if [ -z "$path" ]; then
+	if [ -z "$token" ]; then
 		return
 	fi
 
 	while [ $retries -gt 0 ]; do
-		if [ -e "$path" ]; then
+		blkid -t "$token" $TST_DEVICE >/dev/null
+		if [ $? -eq 0 ]; then
 			return
 		fi
-		tst_resm TINFO "Waiting for $path to appear"
+		tst_resm TINFO "Waiting for device $token prepared"
 		retries=$((retries - 1))
 		tst_sleep 10ms
 	done
 
-	tst_resm TWARN "The file $path haven't appeared"
+	tst_resm TWARN "The device $token haven't prepared"
 }
 
 mkswap_verify()
@@ -72,7 +73,7 @@ mkswap_verify()
 	local mkswap_op="$1"
 	local op_arg="$2"
 	local swapfile="$3"
-	local dev_file="$5"
+	local token="$5"
 
 	local before=`awk '/SwapTotal/ {print $2}' /proc/meminfo`
 
@@ -84,7 +85,7 @@ mkswap_verify()
 		local pagesize=$PAGE_SIZE
 	fi
 
-	wait_for_file "$dev_file"
+	wait_for_device "$token"
 
 	swapon $swapfile 2>/dev/null
 
@@ -138,7 +139,7 @@ mkswap_test()
 	local op_arg="$2"
 	local device="$3"
 	local size="$4"
-	local dev_file="$5"
+	local token="$5"
 
 	local mkswap_cmd="mkswap $mkswap_op $op_arg $TST_DEVICE $size"
 
@@ -156,7 +157,7 @@ mkswap_test()
 	fi
 
 	if [ -n "$device" ]; then
-		mkswap_verify "$mkswap_op" "$op_arg" "$device" "$size" "$dev_file"
+		mkswap_verify "$mkswap_op" "$op_arg" "$device" "$size" "$token"
 		if [ $? -ne 0 ]; then
 			tst_resm TFAIL "'${mkswap_cmd}' failed, not expected."
 			return
@@ -173,9 +174,9 @@ mkswap_test "" "" "$TST_DEVICE" "$((DEVICE_SIZE-10000))"
 mkswap_test "-f" "" "$TST_DEVICE" "$((DEVICE_SIZE+10000))"
 mkswap_test "-c" "" "$TST_DEVICE"
 mkswap_test "-p" "2048" "$TST_DEVICE"
-mkswap_test "-L" "ltp_testswap" "-L ltp_testswap" "" "/dev/disk/by-label/ltp_testswap"
+mkswap_test "-L" "ltp_testswap" "-L ltp_testswap" "" "LABEL=ltp_testswap"
 mkswap_test "-v1" "" "$TST_DEVICE"
-mkswap_test "-U" "$UUID" "-U $UUID" "" "/dev/disk/by-uuid/$UUID"
+mkswap_test "-U" "$UUID" "-U $UUID" "" "UUID=$UUID"
 mkswap_test "-V"
 mkswap_test "-h"
 
-- 
1.7.9.5


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [LTP] [PATCH] commands/mkswap01: Update wait_for_file function
  2016-01-29 15:56 [LTP] [PATCH] commands/mkswap01: Update wait_for_file function shuang.qiu
@ 2016-02-02 14:35 ` Cyril Hrubis
  2016-02-03  1:28   ` Shuang Qiu
  2016-02-26 13:42 ` Stanislav Kholmanskikh
  1 sibling, 1 reply; 15+ messages in thread
From: Cyril Hrubis @ 2016-02-02 14:35 UTC (permalink / raw)
  To: ltp

Hi!
> In commit a76b72ad31fa7bb22a09f323dadd5db7c00c7f56,it depends on the files 
> under /dev/disk/by-* in wait_for_file function.But sometimes udev does not 
> refresh automatically during runtime and the symbolic links will not appear.

Isn't that udev bug?

> Update the function to use blkid instead.

Does actually the swapon in the verify function work? Since as far as I
can tell it actually opens the symlink in question in order to get the
swap device.

Have you tried stracing it in case that the code waiting for the device
timeouted?

-- 
Cyril Hrubis
chrubis@suse.cz

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [LTP] [PATCH] commands/mkswap01: Update wait_for_file function
  2016-02-02 14:35 ` Cyril Hrubis
@ 2016-02-03  1:28   ` Shuang Qiu
  2016-02-04 13:17     ` Cyril Hrubis
  0 siblings, 1 reply; 15+ messages in thread
From: Shuang Qiu @ 2016-02-03  1:28 UTC (permalink / raw)
  To: ltp

Hi Cyril,
Thanks for review.
On 02/02/2016 10:35 PM, Cyril Hrubis wrote:
> Hi!
>> In commit a76b72ad31fa7bb22a09f323dadd5db7c00c7f56,it depends on the files
>> under /dev/disk/by-* in wait_for_file function.But sometimes udev does not
>> refresh automatically during runtime and the symbolic links will not appear.
> Isn't that udev bug?
It does not look like a bug,restart udev(or run udevtrigger) or 
partprobe will create the symbolic link.
>
>> Update the function to use blkid instead.
> Does actually the swapon in the verify function work? Since as far as I
> can tell it actually opens the symlink in question in order to get the
> swap device.
>
> Have you tried stracing it in case that the code waiting for the device
> timeouted?
I tried it with UEK.Sometimes waiting for device timeout but swapon 
works,i.e.:

...
...

mkswap01 6 TINFO : Waiting for /dev/disk/by-label/ltp_testswap to appear
mkswap01 6 TINFO : Waiting for /dev/disk/by-label/ltp_testswap to appear
mkswap01 6 TINFO : Waiting for /dev/disk/by-label/ltp_testswap to appear
mkswap01 6 TWARN : The file /dev/disk/by-label/ltp_testswap haven't appeared
mkswap01 6 TPASS : 'mkswap -L ltp_testswap /dev/sda7 ' passed.
...

But we can find the label or UUID for device in blkid.
Per my testing with blkid,swapon will not fail after checking blkid.

Thanks
Shuang
>


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [LTP] [PATCH] commands/mkswap01: Update wait_for_file function
  2016-02-03  1:28   ` Shuang Qiu
@ 2016-02-04 13:17     ` Cyril Hrubis
  2016-02-05  5:41       ` Shuang Qiu
  2016-02-25 16:51       ` Stanislav Kholmanskikh
  0 siblings, 2 replies; 15+ messages in thread
From: Cyril Hrubis @ 2016-02-04 13:17 UTC (permalink / raw)
  To: ltp

Hi!
> > Does actually the swapon in the verify function work? Since as far as I
> > can tell it actually opens the symlink in question in order to get the
> > swap device.
> >
> > Have you tried stracing it in case that the code waiting for the device
> > timeouted?
> I tried it with UEK.Sometimes waiting for device timeout but swapon 
> works,i.e.:
> 
> ...
> ...
> 
> mkswap01 6 TINFO : Waiting for /dev/disk/by-label/ltp_testswap to appear
> mkswap01 6 TINFO : Waiting for /dev/disk/by-label/ltp_testswap to appear
> mkswap01 6 TINFO : Waiting for /dev/disk/by-label/ltp_testswap to appear
> mkswap01 6 TWARN : The file /dev/disk/by-label/ltp_testswap haven't appeared
> mkswap01 6 TPASS : 'mkswap -L ltp_testswap /dev/sda7 ' passed.
> ...

That looks strange to me. Since if I strace 'swapon -L ltp_testswap' I got:

...
stat("/dev/disk/by-label/ltp_testswap", 0x7ffef8293800) = -1 ENOENT (No such file or directory)
...

Then it proceeds to exit with error. So I'm geniuely confused.

Hmm but looking at blkid man page, it says that udev symlinks may depend
on settings in /etc/blkid.conf. That may be the difference after all.

Looking at the manual page doing 'blkid -L ltp_testswap' and 'blkid -U
$UUID' should be the only correct solution. Does that work for you?

-- 
Cyril Hrubis
chrubis@suse.cz

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [LTP] [PATCH] commands/mkswap01: Update wait_for_file function
  2016-02-04 13:17     ` Cyril Hrubis
@ 2016-02-05  5:41       ` Shuang Qiu
  2016-02-08 15:34         ` Cyril Hrubis
  2016-02-25 16:51       ` Stanislav Kholmanskikh
  1 sibling, 1 reply; 15+ messages in thread
From: Shuang Qiu @ 2016-02-05  5:41 UTC (permalink / raw)
  To: ltp

On 02/04/2016 09:17 PM, Cyril Hrubis wrote:
> Hi!
>>> Does actually the swapon in the verify function work? Since as far as I
>>> can tell it actually opens the symlink in question in order to get the
>>> swap device.
>>>
>>> Have you tried stracing it in case that the code waiting for the device
>>> timeouted?
>> I tried it with UEK.Sometimes waiting for device timeout but swapon
>> works,i.e.:
>>
>> ...
>> ...
>>
>> mkswap01 6 TINFO : Waiting for /dev/disk/by-label/ltp_testswap to appear
>> mkswap01 6 TINFO : Waiting for /dev/disk/by-label/ltp_testswap to appear
>> mkswap01 6 TINFO : Waiting for /dev/disk/by-label/ltp_testswap to appear
>> mkswap01 6 TWARN : The file /dev/disk/by-label/ltp_testswap haven't appeared
>> mkswap01 6 TPASS : 'mkswap -L ltp_testswap /dev/sda7 ' passed.
>> ...
> That looks strange to me. Since if I strace 'swapon -L ltp_testswap' I got:
>
> ...
> stat("/dev/disk/by-label/ltp_testswap", 0x7ffef8293800) = -1 ENOENT (No such file or directory)
> ...
>
> Then it proceeds to exit with error. So I'm geniuely confused.
>
> Hmm but looking at blkid man page, it says that udev symlinks may depend
> on settings in /etc/blkid.conf. That may be the difference after all.
>
> Looking at the manual page doing 'blkid -L ltp_testswap' and 'blkid -U
> $UUID' should be the only correct solution. Does that work for you?
Yes.
But it does not support blkid -L/-U with lower version of blkid 
util(such like in RHEL5.11).
So I use "-t" option to search the label and UUID instead in the patch.

Thanks
Shuang
>


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [LTP] [PATCH] commands/mkswap01: Update wait_for_file function
  2016-02-05  5:41       ` Shuang Qiu
@ 2016-02-08 15:34         ` Cyril Hrubis
  2016-02-17  8:30           ` Shuang Qiu
  0 siblings, 1 reply; 15+ messages in thread
From: Cyril Hrubis @ 2016-02-08 15:34 UTC (permalink / raw)
  To: ltp

Hi!
> >> mkswap01 6 TINFO : Waiting for /dev/disk/by-label/ltp_testswap to appear
> >> mkswap01 6 TINFO : Waiting for /dev/disk/by-label/ltp_testswap to appear
> >> mkswap01 6 TINFO : Waiting for /dev/disk/by-label/ltp_testswap to appear
> >> mkswap01 6 TWARN : The file /dev/disk/by-label/ltp_testswap haven't appeared
> >> mkswap01 6 TPASS : 'mkswap -L ltp_testswap /dev/sda7 ' passed.
> >> ...
> > That looks strange to me. Since if I strace 'swapon -L ltp_testswap' I got:
> >
> > ...
> > stat("/dev/disk/by-label/ltp_testswap", 0x7ffef8293800) = -1 ENOENT (No such file or directory)
> > ...
> >
> > Then it proceeds to exit with error. So I'm geniuely confused.
> >
> > Hmm but looking at blkid man page, it says that udev symlinks may depend
> > on settings in /etc/blkid.conf. That may be the difference after all.
> >
> > Looking at the manual page doing 'blkid -L ltp_testswap' and 'blkid -U
> > $UUID' should be the only correct solution. Does that work for you?
> Yes.
> But it does not support blkid -L/-U with lower version of blkid 
> util(such like in RHEL5.11).
> So I use "-t" option to search the label and UUID instead in the patch.

Looking around the backward compatible way should be:

blkid -l -t LABEL=foo
blkid -l -t UUID=foo

Does that work for you?

-- 
Cyril Hrubis
chrubis@suse.cz

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [LTP] [PATCH] commands/mkswap01: Update wait_for_file function
  2016-02-08 15:34         ` Cyril Hrubis
@ 2016-02-17  8:30           ` Shuang Qiu
  0 siblings, 0 replies; 15+ messages in thread
From: Shuang Qiu @ 2016-02-17  8:30 UTC (permalink / raw)
  To: ltp

On 02/08/2016 11:34 PM, Cyril Hrubis wrote:
> Hi!
>>>> mkswap01 6 TINFO : Waiting for /dev/disk/by-label/ltp_testswap to appear
>>>> mkswap01 6 TINFO : Waiting for /dev/disk/by-label/ltp_testswap to appear
>>>> mkswap01 6 TINFO : Waiting for /dev/disk/by-label/ltp_testswap to appear
>>>> mkswap01 6 TWARN : The file /dev/disk/by-label/ltp_testswap haven't appeared
>>>> mkswap01 6 TPASS : 'mkswap -L ltp_testswap /dev/sda7 ' passed.
>>>> ...
>>> That looks strange to me. Since if I strace 'swapon -L ltp_testswap' I got:
>>>
>>> ...
>>> stat("/dev/disk/by-label/ltp_testswap", 0x7ffef8293800) = -1 ENOENT (No such file or directory)
>>> ...
>>>
>>> Then it proceeds to exit with error. So I'm geniuely confused.
>>>
>>> Hmm but looking at blkid man page, it says that udev symlinks may depend
>>> on settings in /etc/blkid.conf. That may be the difference after all.
>>>
>>> Looking at the manual page doing 'blkid -L ltp_testswap' and 'blkid -U
>>> $UUID' should be the only correct solution. Does that work for you?
>> Yes.
>> But it does not support blkid -L/-U with lower version of blkid
>> util(such like in RHEL5.11).
>> So I use "-t" option to search the label and UUID instead in the patch.
> Looking around the backward compatible way should be:
>
> blkid -l -t LABEL=foo
> blkid -l -t UUID=foo
>
> Does that work for you?
According to the man page,-l option will look up only one device which 
matches -t NAME=value if there are multiple devices matched.And it will 
print all devices without -l option.
So I though just -t option is enough in this case.
But blkid -l -t also works.

Thanks
Shuang
>


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [LTP] [PATCH] commands/mkswap01: Update wait_for_file function
  2016-02-04 13:17     ` Cyril Hrubis
  2016-02-05  5:41       ` Shuang Qiu
@ 2016-02-25 16:51       ` Stanislav Kholmanskikh
  2016-02-25 17:22         ` Stanislav Kholmanskikh
  2016-03-02 13:42         ` Cyril Hrubis
  1 sibling, 2 replies; 15+ messages in thread
From: Stanislav Kholmanskikh @ 2016-02-25 16:51 UTC (permalink / raw)
  To: ltp



On 02/04/2016 04:17 PM, Cyril Hrubis wrote:
> Hi!
>>> Does actually the swapon in the verify function work? Since as far as I
>>> can tell it actually opens the symlink in question in order to get the
>>> swap device.
>>>
>>> Have you tried stracing it in case that the code waiting for the device
>>> timeouted?
>> I tried it with UEK.Sometimes waiting for device timeout but swapon
>> works,i.e.:
>>
>> ...
>> ...
>>
>> mkswap01 6 TINFO : Waiting for /dev/disk/by-label/ltp_testswap to appear
>> mkswap01 6 TINFO : Waiting for /dev/disk/by-label/ltp_testswap to appear
>> mkswap01 6 TINFO : Waiting for /dev/disk/by-label/ltp_testswap to appear
>> mkswap01 6 TWARN : The file /dev/disk/by-label/ltp_testswap haven't appeared
>> mkswap01 6 TPASS : 'mkswap -L ltp_testswap /dev/sda7 ' passed.
>> ...
>
> That looks strange to me. Since if I strace 'swapon -L ltp_testswap' I got:
>
> ...
> stat("/dev/disk/by-label/ltp_testswap", 0x7ffef8293800) = -1 ENOENT (No such file or directory)
> ...
>
> Then it proceeds to exit with error. So I'm geniuely confused.

Hmm, in my case swapon -L test does not fail, if there is no 
/dev/disk/by-label/test:

root@skholman-m7 stas]# rm /dev/disk/by-label/test
rm: remove symbolic link `/dev/disk/by-label/test'? y
[root@skholman-m7 stas]# BLKID_FILE=/tmp/none strace swapon -L test &> 
/tmp/o; echo $?
0
[root@skholman-m7 stas]# grep by-label /tmp/o
stat64("/dev/disk/by-label/test", 0x7feff9b6130) = -1 ENOENT (No such 
file or directory)
[root@skholman-m7 stas]#

(but in the strace output I see that swapon tries to read some sectors 
from all available block devices)

Maybe the version of libblkid plays a role here.

Using 'blkid -t' simply makes wait_for_file/wait_for_device not fail if 
there is no /dev/disk/by-label/ symlink. I suppose 'blkid -t' could be 
substituted with /bin/true in my case.

>
> Hmm but looking at blkid man page, it says that udev symlinks may depend
> on settings in /etc/blkid.conf. That may be the difference after all.
>
> Looking at the manual page doing 'blkid -L ltp_testswap' and 'blkid -U
> $UUID' should be the only correct solution. Does that work for you?
>

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [LTP] [PATCH] commands/mkswap01: Update wait_for_file function
  2016-02-25 16:51       ` Stanislav Kholmanskikh
@ 2016-02-25 17:22         ` Stanislav Kholmanskikh
  2016-03-02 13:42         ` Cyril Hrubis
  1 sibling, 0 replies; 15+ messages in thread
From: Stanislav Kholmanskikh @ 2016-02-25 17:22 UTC (permalink / raw)
  To: ltp



On 02/25/2016 07:51 PM, Stanislav Kholmanskikh wrote:
>
>
> On 02/04/2016 04:17 PM, Cyril Hrubis wrote:
>> Hi!
>>>> Does actually the swapon in the verify function work? Since as far as I
>>>> can tell it actually opens the symlink in question in order to get the
>>>> swap device.
>>>>
>>>> Have you tried stracing it in case that the code waiting for the device
>>>> timeouted?
>>> I tried it with UEK.Sometimes waiting for device timeout but swapon
>>> works,i.e.:
>>>
>>> ...
>>> ...
>>>
>>> mkswap01 6 TINFO : Waiting for /dev/disk/by-label/ltp_testswap to appear
>>> mkswap01 6 TINFO : Waiting for /dev/disk/by-label/ltp_testswap to appear
>>> mkswap01 6 TINFO : Waiting for /dev/disk/by-label/ltp_testswap to appear
>>> mkswap01 6 TWARN : The file /dev/disk/by-label/ltp_testswap haven't
>>> appeared
>>> mkswap01 6 TPASS : 'mkswap -L ltp_testswap /dev/sda7 ' passed.
>>> ...
>>
>> That looks strange to me. Since if I strace 'swapon -L ltp_testswap' I
>> got:
>>
>> ...
>> stat("/dev/disk/by-label/ltp_testswap", 0x7ffef8293800) = -1 ENOENT
>> (No such file or directory)
>> ...
>>
>> Then it proceeds to exit with error. So I'm geniuely confused.
>
> Hmm, in my case swapon -L test does not fail, if there is no
> /dev/disk/by-label/test:
>
> root@skholman-m7 stas]# rm /dev/disk/by-label/test
> rm: remove symbolic link `/dev/disk/by-label/test'? y
> [root@skholman-m7 stas]# BLKID_FILE=/tmp/none strace swapon -L test &>
> /tmp/o; echo $?
> 0
> [root@skholman-m7 stas]# grep by-label /tmp/o
> stat64("/dev/disk/by-label/test", 0x7feff9b6130) = -1 ENOENT (No such
> file or directory)
> [root@skholman-m7 stas]#
>
> (but in the strace output I see that swapon tries to read some sectors
> from all available block devices)
>
> Maybe the version of libblkid plays a role here.
>
> Using 'blkid -t' simply makes wait_for_file/wait_for_device not fail if
> there is no /dev/disk/by-label/ symlink. I suppose 'blkid -t' could be
> substituted with /bin/true in my case.

My system doesn't provide /etc/blkid.conf

>
>>
>> Hmm but looking at blkid man page, it says that udev symlinks may depend
>> on settings in /etc/blkid.conf. That may be the difference after all.
>>
>> Looking at the manual page doing 'blkid -L ltp_testswap' and 'blkid -U
>> $UUID' should be the only correct solution. Does that work for you?
>>
>

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [LTP] [PATCH] commands/mkswap01: Update wait_for_file function
  2016-01-29 15:56 [LTP] [PATCH] commands/mkswap01: Update wait_for_file function shuang.qiu
  2016-02-02 14:35 ` Cyril Hrubis
@ 2016-02-26 13:42 ` Stanislav Kholmanskikh
  2016-03-02  6:20   ` Shuang Qiu
  1 sibling, 1 reply; 15+ messages in thread
From: Stanislav Kholmanskikh @ 2016-02-26 13:42 UTC (permalink / raw)
  To: ltp

Hi!

Sorry for my spam in [1], [2]. My brain barely functioned on yesterday's 
evening. Now I understand that calling blkid is the right choice to 
check whether a block device exists. :-[

Both blkid, mkswap, swapon use libblkd (and take into account settings 
in blkid.conf), so if blkid finds the device, then mkswap, swapon will 
find it as well.


On 01/29/2016 06:56 PM, shuang.qiu@oracle.com wrote:
> From: Shuang Qiu <shuang.qiu@oracle.com>
>
> In commit a76b72ad31fa7bb22a09f323dadd5db7c00c7f56,it depends on the files
> under /dev/disk/by-* in wait_for_file function.But sometimes udev does not
> refresh automatically during runtime and the symbolic links will not appear.
> Update the function to use blkid instead.

checkpatch.pl warns about the style of the commit reference.

Maybe add here that blkid (since it uses libblkid as mkswap, swapon 
does) is sufficient to check the availability of block devices, whereas 
explicit checking of /dev/disk/by-* should be avoided where possible 
(man 8 blkid) ?

Plus one more comment below.

>
> Signed-off-by: Shuang Qiu <shuang.qiu@oracle.com>
> ---
>   testcases/commands/mkswap/mkswap01.sh |   25 +++++++++++++------------
>   1 file changed, 13 insertions(+), 12 deletions(-)
>
> diff --git a/testcases/commands/mkswap/mkswap01.sh b/testcases/commands/mkswap/mkswap01.sh
> index ae4c98a..fdfc712 100755
> --- a/testcases/commands/mkswap/mkswap01.sh
> +++ b/testcases/commands/mkswap/mkswap01.sh
> @@ -46,25 +46,26 @@ cleanup()
>   	tst_rmdir
>   }
>
> -wait_for_file()
> +wait_for_device()
>   {
> -	local path="$1"
> +	local token="$1"
>   	local retries=10
>
> -	if [ -z "$path" ]; then
> +	if [ -z "$token" ]; then
>   		return
>   	fi
>
>   	while [ $retries -gt 0 ]; do
> -		if [ -e "$path" ]; then
> +		blkid -t "$token" $TST_DEVICE >/dev/null
> +		if [ $? -eq 0 ]; then
>   			return
>   		fi
> -		tst_resm TINFO "Waiting for $path to appear"
> +		tst_resm TINFO "Waiting for device $token prepared"
>   		retries=$((retries - 1))
>   		tst_sleep 10ms
>   	done
>
> -	tst_resm TWARN "The file $path haven't appeared"
> +	tst_resm TWARN "The device $token haven't prepared"

Since we rely on blkid for device availability checking, maybe change 
TWARN to TBROK here?


>   }
>
>   mkswap_verify()
> @@ -72,7 +73,7 @@ mkswap_verify()
>   	local mkswap_op="$1"
>   	local op_arg="$2"
>   	local swapfile="$3"
> -	local dev_file="$5"
> +	local token="$5"
>
>   	local before=`awk '/SwapTotal/ {print $2}' /proc/meminfo`
>
> @@ -84,7 +85,7 @@ mkswap_verify()
>   		local pagesize=$PAGE_SIZE
>   	fi
>
> -	wait_for_file "$dev_file"
> +	wait_for_device "$token"
>
>   	swapon $swapfile 2>/dev/null
>
> @@ -138,7 +139,7 @@ mkswap_test()
>   	local op_arg="$2"
>   	local device="$3"
>   	local size="$4"
> -	local dev_file="$5"
> +	local token="$5"
>
>   	local mkswap_cmd="mkswap $mkswap_op $op_arg $TST_DEVICE $size"
>
> @@ -156,7 +157,7 @@ mkswap_test()
>   	fi
>
>   	if [ -n "$device" ]; then
> -		mkswap_verify "$mkswap_op" "$op_arg" "$device" "$size" "$dev_file"
> +		mkswap_verify "$mkswap_op" "$op_arg" "$device" "$size" "$token"
>   		if [ $? -ne 0 ]; then
>   			tst_resm TFAIL "'${mkswap_cmd}' failed, not expected."
>   			return
> @@ -173,9 +174,9 @@ mkswap_test "" "" "$TST_DEVICE" "$((DEVICE_SIZE-10000))"
>   mkswap_test "-f" "" "$TST_DEVICE" "$((DEVICE_SIZE+10000))"
>   mkswap_test "-c" "" "$TST_DEVICE"
>   mkswap_test "-p" "2048" "$TST_DEVICE"
> -mkswap_test "-L" "ltp_testswap" "-L ltp_testswap" "" "/dev/disk/by-label/ltp_testswap"
> +mkswap_test "-L" "ltp_testswap" "-L ltp_testswap" "" "LABEL=ltp_testswap"
>   mkswap_test "-v1" "" "$TST_DEVICE"
> -mkswap_test "-U" "$UUID" "-U $UUID" "" "/dev/disk/by-uuid/$UUID"
> +mkswap_test "-U" "$UUID" "-U $UUID" "" "UUID=$UUID"
>   mkswap_test "-V"
>   mkswap_test "-h"
>
>

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [LTP] [PATCH] commands/mkswap01: Update wait_for_file function
  2016-02-26 13:42 ` Stanislav Kholmanskikh
@ 2016-03-02  6:20   ` Shuang Qiu
  0 siblings, 0 replies; 15+ messages in thread
From: Shuang Qiu @ 2016-03-02  6:20 UTC (permalink / raw)
  To: ltp

Hi Stanislav,

Thanks for review.
I agree your comments and will submit another patch.

Thanks
Shuang
On 02/26/2016 09:42 PM, Stanislav Kholmanskikh wrote:
> Hi!
>
> Sorry for my spam in [1], [2]. My brain barely functioned on 
> yesterday's evening. Now I understand that calling blkid is the right 
> choice to check whether a block device exists. :-[
>
> Both blkid, mkswap, swapon use libblkd (and take into account settings 
> in blkid.conf), so if blkid finds the device, then mkswap, swapon will 
> find it as well.
>
>
> On 01/29/2016 06:56 PM, shuang.qiu@oracle.com wrote:
>> From: Shuang Qiu <shuang.qiu@oracle.com>
>>
>> In commit a76b72ad31fa7bb22a09f323dadd5db7c00c7f56,it depends on the 
>> files
>> under /dev/disk/by-* in wait_for_file function.But sometimes udev 
>> does not
>> refresh automatically during runtime and the symbolic links will not 
>> appear.
>> Update the function to use blkid instead.
>
> checkpatch.pl warns about the style of the commit reference.
>
> Maybe add here that blkid (since it uses libblkid as mkswap, swapon 
> does) is sufficient to check the availability of block devices, 
> whereas explicit checking of /dev/disk/by-* should be avoided where 
> possible (man 8 blkid) ?
>
> Plus one more comment below.
>
>>
>> Signed-off-by: Shuang Qiu <shuang.qiu@oracle.com>
>> ---
>>   testcases/commands/mkswap/mkswap01.sh |   25 +++++++++++++------------
>>   1 file changed, 13 insertions(+), 12 deletions(-)
>>
>> diff --git a/testcases/commands/mkswap/mkswap01.sh 
>> b/testcases/commands/mkswap/mkswap01.sh
>> index ae4c98a..fdfc712 100755
>> --- a/testcases/commands/mkswap/mkswap01.sh
>> +++ b/testcases/commands/mkswap/mkswap01.sh
>> @@ -46,25 +46,26 @@ cleanup()
>>       tst_rmdir
>>   }
>>
>> -wait_for_file()
>> +wait_for_device()
>>   {
>> -    local path="$1"
>> +    local token="$1"
>>       local retries=10
>>
>> -    if [ -z "$path" ]; then
>> +    if [ -z "$token" ]; then
>>           return
>>       fi
>>
>>       while [ $retries -gt 0 ]; do
>> -        if [ -e "$path" ]; then
>> +        blkid -t "$token" $TST_DEVICE >/dev/null
>> +        if [ $? -eq 0 ]; then
>>               return
>>           fi
>> -        tst_resm TINFO "Waiting for $path to appear"
>> +        tst_resm TINFO "Waiting for device $token prepared"
>>           retries=$((retries - 1))
>>           tst_sleep 10ms
>>       done
>>
>> -    tst_resm TWARN "The file $path haven't appeared"
>> +    tst_resm TWARN "The device $token haven't prepared"
>
> Since we rely on blkid for device availability checking, maybe change 
> TWARN to TBROK here?
>
>
>>   }
>>
>>   mkswap_verify()
>> @@ -72,7 +73,7 @@ mkswap_verify()
>>       local mkswap_op="$1"
>>       local op_arg="$2"
>>       local swapfile="$3"
>> -    local dev_file="$5"
>> +    local token="$5"
>>
>>       local before=`awk '/SwapTotal/ {print $2}' /proc/meminfo`
>>
>> @@ -84,7 +85,7 @@ mkswap_verify()
>>           local pagesize=$PAGE_SIZE
>>       fi
>>
>> -    wait_for_file "$dev_file"
>> +    wait_for_device "$token"
>>
>>       swapon $swapfile 2>/dev/null
>>
>> @@ -138,7 +139,7 @@ mkswap_test()
>>       local op_arg="$2"
>>       local device="$3"
>>       local size="$4"
>> -    local dev_file="$5"
>> +    local token="$5"
>>
>>       local mkswap_cmd="mkswap $mkswap_op $op_arg $TST_DEVICE $size"
>>
>> @@ -156,7 +157,7 @@ mkswap_test()
>>       fi
>>
>>       if [ -n "$device" ]; then
>> -        mkswap_verify "$mkswap_op" "$op_arg" "$device" "$size" 
>> "$dev_file"
>> +        mkswap_verify "$mkswap_op" "$op_arg" "$device" "$size" "$token"
>>           if [ $? -ne 0 ]; then
>>               tst_resm TFAIL "'${mkswap_cmd}' failed, not expected."
>>               return
>> @@ -173,9 +174,9 @@ mkswap_test "" "" "$TST_DEVICE" 
>> "$((DEVICE_SIZE-10000))"
>>   mkswap_test "-f" "" "$TST_DEVICE" "$((DEVICE_SIZE+10000))"
>>   mkswap_test "-c" "" "$TST_DEVICE"
>>   mkswap_test "-p" "2048" "$TST_DEVICE"
>> -mkswap_test "-L" "ltp_testswap" "-L ltp_testswap" "" 
>> "/dev/disk/by-label/ltp_testswap"
>> +mkswap_test "-L" "ltp_testswap" "-L ltp_testswap" "" 
>> "LABEL=ltp_testswap"
>>   mkswap_test "-v1" "" "$TST_DEVICE"
>> -mkswap_test "-U" "$UUID" "-U $UUID" "" "/dev/disk/by-uuid/$UUID"
>> +mkswap_test "-U" "$UUID" "-U $UUID" "" "UUID=$UUID"
>>   mkswap_test "-V"
>>   mkswap_test "-h"
>>
>>


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [LTP] [PATCH] commands/mkswap01: Update wait_for_file function
  2016-02-25 16:51       ` Stanislav Kholmanskikh
  2016-02-25 17:22         ` Stanislav Kholmanskikh
@ 2016-03-02 13:42         ` Cyril Hrubis
  2016-03-03  8:59           ` Stanislav Kholmanskikh
  1 sibling, 1 reply; 15+ messages in thread
From: Cyril Hrubis @ 2016-03-02 13:42 UTC (permalink / raw)
  To: ltp

Hi!
> Hmm, in my case swapon -L test does not fail, if there is no 
> /dev/disk/by-label/test:
> 
> root@skholman-m7 stas]# rm /dev/disk/by-label/test
> rm: remove symbolic link `/dev/disk/by-label/test'? y
> [root@skholman-m7 stas]# BLKID_FILE=/tmp/none strace swapon -L test &> 
> /tmp/o; echo $?
> 0
> [root@skholman-m7 stas]# grep by-label /tmp/o
> stat64("/dev/disk/by-label/test", 0x7feff9b6130) = -1 ENOENT (No such 
> file or directory)
> [root@skholman-m7 stas]#
> 
> (but in the strace output I see that swapon tries to read some sectors 
> from all available block devices)
> 
> Maybe the version of libblkid plays a role here.
> 
> Using 'blkid -t' simply makes wait_for_file/wait_for_device not fail if 
> there is no /dev/disk/by-label/ symlink. I suppose 'blkid -t' could be 
> substituted with /bin/true in my case.

Unfortunately for me the swapon just looks for the symlink
(util-linux-2.19.1) while blkid -t also reads first 512 bytes of each
block device. So I guess that using blkid will not help in this case.

Then what about just changing the 'tst_resm TWARN "The file $path
haven't appeared"' from TWARN to TINFO?

-- 
Cyril Hrubis
chrubis@suse.cz

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [LTP] [PATCH] commands/mkswap01: Update wait_for_file function
  2016-03-02 13:42         ` Cyril Hrubis
@ 2016-03-03  8:59           ` Stanislav Kholmanskikh
  2016-03-03  9:43             ` Shuang Qiu
  0 siblings, 1 reply; 15+ messages in thread
From: Stanislav Kholmanskikh @ 2016-03-03  8:59 UTC (permalink / raw)
  To: ltp



On 03/02/2016 04:42 PM, Cyril Hrubis wrote:
> Hi!
>> Hmm, in my case swapon -L test does not fail, if there is no
>> /dev/disk/by-label/test:
>>
>> root@skholman-m7 stas]# rm /dev/disk/by-label/test
>> rm: remove symbolic link `/dev/disk/by-label/test'? y
>> [root@skholman-m7 stas]# BLKID_FILE=/tmp/none strace swapon -L test &>
>> /tmp/o; echo $?
>> 0
>> [root@skholman-m7 stas]# grep by-label /tmp/o
>> stat64("/dev/disk/by-label/test", 0x7feff9b6130) = -1 ENOENT (No such
>> file or directory)
>> [root@skholman-m7 stas]#
>>
>> (but in the strace output I see that swapon tries to read some sectors
>> from all available block devices)
>>
>> Maybe the version of libblkid plays a role here.
>>
>> Using 'blkid -t' simply makes wait_for_file/wait_for_device not fail if
>> there is no /dev/disk/by-label/ symlink. I suppose 'blkid -t' could be
>> substituted with /bin/true in my case.
>
> Unfortunately for me the swapon just looks for the symlink
> (util-linux-2.19.1) while blkid -t also reads first 512 bytes of each
> block device. So I guess that using blkid will not help in this case.
>
> Then what about just changing the 'tst_resm TWARN "The file $path
> haven't appeared"' from TWARN to TINFO?

Well, no objections then. Even if there is no symlink created in time we 
call swapon, swapon will not fail on our systems, but wait_for_file will 
still provide extra 10*10ms for the symlink to be created on your systems.

Shuang ?

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [LTP] [PATCH] commands/mkswap01: Update wait_for_file function
  2016-03-03  8:59           ` Stanislav Kholmanskikh
@ 2016-03-03  9:43             ` Shuang Qiu
  2016-03-03 15:55               ` Cyril Hrubis
  0 siblings, 1 reply; 15+ messages in thread
From: Shuang Qiu @ 2016-03-03  9:43 UTC (permalink / raw)
  To: ltp

On 03/03/2016 04:59 PM, Stanislav Kholmanskikh wrote:
>
>
> On 03/02/2016 04:42 PM, Cyril Hrubis wrote:
>> Hi!
>>> Hmm, in my case swapon -L test does not fail, if there is no
>>> /dev/disk/by-label/test:
>>>
>>> root@skholman-m7 stas]# rm /dev/disk/by-label/test
>>> rm: remove symbolic link `/dev/disk/by-label/test'? y
>>> [root@skholman-m7 stas]# BLKID_FILE=/tmp/none strace swapon -L test &>
>>> /tmp/o; echo $?
>>> 0
>>> [root@skholman-m7 stas]# grep by-label /tmp/o
>>> stat64("/dev/disk/by-label/test", 0x7feff9b6130) = -1 ENOENT (No such
>>> file or directory)
>>> [root@skholman-m7 stas]#
>>>
>>> (but in the strace output I see that swapon tries to read some sectors
>>> from all available block devices)
>>>
>>> Maybe the version of libblkid plays a role here.
>>>
>>> Using 'blkid -t' simply makes wait_for_file/wait_for_device not fail if
>>> there is no /dev/disk/by-label/ symlink. I suppose 'blkid -t' could be
>>> substituted with /bin/true in my case.
>>
>> Unfortunately for me the swapon just looks for the symlink
>> (util-linux-2.19.1) while blkid -t also reads first 512 bytes of each
>> block device. So I guess that using blkid will not help in this case.
>>
>> Then what about just changing the 'tst_resm TWARN "The file $path
>> haven't appeared"' from TWARN to TINFO?
>
> Well, no objections then. Even if there is no symlink created in time 
> we call swapon, swapon will not fail on our systems, but wait_for_file 
> will still provide extra 10*10ms for the symlink to be created on your 
> systems.
>
> Shuang ?
It is ok for me too.
I did not find any other issue if change TWARN to TINFO.

Thanks
Shuang


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [LTP] [PATCH] commands/mkswap01: Update wait_for_file function
  2016-03-03  9:43             ` Shuang Qiu
@ 2016-03-03 15:55               ` Cyril Hrubis
  0 siblings, 0 replies; 15+ messages in thread
From: Cyril Hrubis @ 2016-03-03 15:55 UTC (permalink / raw)
  To: ltp

Hi!
Fix pushed, thanks.

-- 
Cyril Hrubis
chrubis@suse.cz

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2016-03-03 15:55 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-01-29 15:56 [LTP] [PATCH] commands/mkswap01: Update wait_for_file function shuang.qiu
2016-02-02 14:35 ` Cyril Hrubis
2016-02-03  1:28   ` Shuang Qiu
2016-02-04 13:17     ` Cyril Hrubis
2016-02-05  5:41       ` Shuang Qiu
2016-02-08 15:34         ` Cyril Hrubis
2016-02-17  8:30           ` Shuang Qiu
2016-02-25 16:51       ` Stanislav Kholmanskikh
2016-02-25 17:22         ` Stanislav Kholmanskikh
2016-03-02 13:42         ` Cyril Hrubis
2016-03-03  8:59           ` Stanislav Kholmanskikh
2016-03-03  9:43             ` Shuang Qiu
2016-03-03 15:55               ` Cyril Hrubis
2016-02-26 13:42 ` Stanislav Kholmanskikh
2016-03-02  6:20   ` Shuang Qiu

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.