* [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.