[lvm-devel] [PATCH] test: lvmetad_dump always timed out when using nc
Eric Ren
zren at suse.com
Thu Dec 14 10:27:39 UTC 2017
Hi zkabelac,
Hmm strange, tested on fedora, it has not this issue.
```
[root at localhost test]# which oscat
/usr/bin/which: no oscat in
(/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
[root at localhost test]# lib/runner --flavours udev-lvmetad --only
lvmetad-dump.sh
running 1 tests
### passed: [udev-lvmetad] shell/lvmetad-dump.sh 3
### 1 tests: 1 passed, 0 skipped, 0 timed out, 0 warned, 0 failed
```
I guess it may be because openSUSE and fedora use different "nc" tool:
```
openSUSE:
# rpm -qf /usr/bin/nc
netcat-openbsd-1.178-1.2.x86_64
fedora:
# rpm -qf /usr/bin/nc
nmap-ncat-7.50-3.fc27.x86_64
```
Thanks,
Eric
On 12/13/2017 07:13 PM, Eric Ren wrote:
> lvmetad_dump uses either "socat" or "nc" to communicate
> with lvmetad. But when using "nc" if "socat" is not
> available, nc will listen forever by default, causing the
> testcase timed out.
>
> Signed-off-by: Eric Ren <zren at suse.com>
> ---
> test/lib/aux.sh | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/test/lib/aux.sh b/test/lib/aux.sh
> index 6bc7bd47e..4603c1504 100644
> --- a/test/lib/aux.sh
> +++ b/test/lib/aux.sh
> @@ -243,14 +243,14 @@ lvmetad_talk() {
> local use=nc
> if type -p socat >& /dev/null; then
> use=socat
> - elif echo | not nc -U "$TESTDIR/lvmetad.socket" ; then
> + elif echo | not nc -w 1 -U "$TESTDIR/lvmetad.socket" ; then
> echo "WARNING: Neither socat nor nc -U seems to be available." 1>&2
> echo "## failed to contact lvmetad."
> return 1
> fi
>
> if test "$use" = nc ; then
> - nc -U "$TESTDIR/lvmetad.socket"
> + nc -w 1 -U "$TESTDIR/lvmetad.socket"
> else
> socat "unix-connect:$TESTDIR/lvmetad.socket" -
> fi | tee -a lvmetad-talk.txt
More information about the lvm-devel
mailing list