[ovs-dev] [PATCH] tests: keep some datapath parsing tests from hanging
Ilya Maximets
i.maximets at samsung.com
Fri Dec 7 15:15:29 UTC 2018
> Whoops, looks like you dropped the list. No problem. I've re-added it.
>
> Scott Cheloha <scottcheloha at gmail.com> writes:
>
>> On Thu, Nov 29, 2018 at 01:15:24PM -0500, Aaron Conole wrote:
>>> Scott Cheloha <scottcheloha at gmail.com> writes:
>>>
>>> > On Thu, Nov 29, 2018 at 11:11:31AM -0500, Aaron Conole wrote:
>>> >> Hi Scott,
>>> >>
>>> >> Scott Cheloha <scottcheloha at gmail.com> writes:
>>> >>
>>> >> > The arguments to sed(1) need to be on the same line in the shell
>>> >> > script or it will just sit there awaiting input.
>>> >> >
>>> >> > Signed-off-by: Scott Cheloha <scottcheloha at gmail.com>
>>> >> > ---
>>> >> >
>>> >> > This is my first submission so I'm not sure if I'm doing this correctly.
>>> >> >
>>> >> > tests/odp.at | 12 ++++--------
>>> >> > 1 file changed, 4 insertions(+), 8 deletions(-)
>>> >> >
>>> >> > diff --git a/tests/odp.at b/tests/odp.at
>>> >> > index 1cff727ae..05dc76dbf 100644
>>> >> > --- a/tests/odp.at
>>> >> > +++ b/tests/odp.at
>>> >> > @@ -83,13 +83,11 @@ sed 's/^/skb_priority(0),skb_mark(0),recirc_id(0),dp_hash(0),/' odp-base.txt | s
>>> >> >
>>> >> > echo
>>> >> > echo '# Valid forms with tunnel and ERSPAN v1 headers.'
>>> >> > - sed
>>> >> > - 's/^/skb_priority(0),tunnel(tun_id=0xfedcba9876543210,src=10.0.0.1,dst=10.0.0.2,ttl=128,erspan(ver=1,idx=0x7),flags(df|key)),skb_mark(0),recirc_id(0),dp_hash(0),/' odp-base.txt
>>> >> > + sed 's/^/skb_priority(0),tunnel(tun_id=0xfedcba9876543210,src=10.0.0.1,dst=10.0.0.2,ttl=128,erspan(ver=1,idx=0x7),flags(df|key)),skb_mark(0),recirc_id(0),dp_hash(0),/' odp-base.txt
>>> >> >
>>> >> > echo
>>> >> > echo '# Valid forms with tunnel and ERSPAN v2 headers.'
>>> >> > - sed
>>> >> > - 's/^/skb_priority(0),tunnel(tun_id=0xfedcba9876543210,src=10.0.0.1,dst=10.0.0.2,ttl=128,erspan(ver=2,dir=0x1,hwid=0x7),flags(df|key)),skb_mark(0),recirc_id(0),dp_hash(0),/' odp-base.txt
>>> >> > + sed 's/^/skb_priority(0),tunnel(tun_id=0xfedcba9876543210,src=10.0.0.1,dst=10.0.0.2,ttl=128,erspan(ver=2,dir=0x1,hwid=0x7),flags(df|key)),skb_mark(0),recirc_id(0),dp_hash(0),/' odp-base.txt
>>> >> > ) > odp-in.txt
>>> >> > AT_CAPTURE_FILE([odp-in.txt])
>>> >> >
>>> >> > @@ -186,13 +184,11 @@ sed -n 's/,frag=no),.*/,frag=later)/p' odp-base.txt
>>> >> >
>>> >> > echo
>>> >> > echo '# Valid forms with tunnel and ERSPAN v1 headers.'
>>> >> > - sed
>>> >> > - 's/^/skb_priority(0),tunnel(tun_id=0xfedcba9876543210,src=10.0.0.1,dst=10.0.0.2,ttl=128,erspan(ver=1/0,idx=0x7/0xf),flags(df|key)),skb_mark(0),recirc_id(0),dp_hash(0),/' odp-base.txt
>>> >> > + sed 's/^/skb_priority(0),tunnel(tun_id=0xfedcba9876543210,src=10.0.0.1,dst=10.0.0.2,ttl=128,erspan(ver=1/0,idx=0x7/0xf),flags(df|key)),skb_mark(0),recirc_id(0),dp_hash(0),/' odp-base.txt
>>> >> >
>>> >> > echo
>>> >> > echo '# Valid forms with tunnel and ERSPAN v2 headers.'
>>> >> > - sed
>>> >> > - 's/^/skb_priority(0),tunnel(tun_id=0xfedcba9876543210,src=10.0.0.1,dst=10.0.0.2,ttl=128,erspan(ver=2,dir=0x1,hwid=0x7/0xf),flags(df|key)),skb_mark(0),recirc_id(0),dp_hash(0),/' odp-base.txt
>>> >> > + sed 's/^/skb_priority(0),tunnel(tun_id=0xfedcba9876543210,src=10.0.0.1,dst=10.0.0.2,ttl=128,erspan(ver=2,dir=0x1,hwid=0x7/0xf),flags(df|key)),skb_mark(0),recirc_id(0),dp_hash(0),/' odp-base.txt
>>> >> > ) > odp.txt
>>> >> > AT_CAPTURE_FILE([odp.txt])
>>> >> > AT_CHECK_UNQUOTED([ovstest test-odp parse-wc-keys < odp.txt], [0], [`cat odp.txt`
>>> >>
>>> >> I see the following error on a RHEL7 system:
>>> >>
>>> >> 485: OVS datapath key parsing and formatting - valid forms FAILED (odp.at:107)
>>> >>
>>> >> Let me know if you want a zip of the testsuite directory. I can make it
>>> >> available.
>>> >
>>> > I'm getting nearly the same error here on OpenBSD 6.4:
>>> >
>>> > 485: OVS datapath key parsing and formatting - valid forms FAILED (odp.at:108)
>>> >
>>> > But before digging into the meat of the test itself, can you try running that
>>> > test without my patch? When I invoke sed(1) without arguments on RHEL7.6 it
>>> > exits with status 4 and prints a usage statement, which makes me think that
>>> > the test is failing/broken without this patch. (The fact that the test hangs
>>> > here with OpenBSD's sed seems to be a historical difference in behavior between
>>> > the two implementations.)
>>>
>>> I looked at the last few builds on the build server, and this series is
>>> the only one that fails this test suite.
>>>
>>> Thanks!
>>
>> Sure thing.
>>
>> So, uh, what do I need to do next?
>
> Can you reproduce this error locally? Meaning, if you run a 'make
> distcheck' do you see it? Can you try on CentOS7 or using a RHEL7
> Developer license install? Maybe Ubuntu? I can schedule the job again
> on the server and see if it was just a transient failure.
The test fails just because it is wrong, syntactically.
You need to replace 'dir=0x1' with 'dir=1'. After that it works on my Ubuntu
at least. But the test itself is still broken because it doesn't work on BSD.
It constantly fails on my FreeBSD setup. My best guess is that because of
difference between 'sed's, i.e. BSD sed does not understand commands that
intended to strip out connection tracking fields. I'm not a sed expert, so
I have no quick solution how to fix it.
Without the patch testsuite hangs on FreeBSD, with patch it just fails these tests.
So, maybe it's worth to apply the patch (with fixed 'dir' format) anyway and start
thinking how to make it work with BSD sed.
>
>> Or, rather, what happens next?
>
> I guess, more testing :)
>
>> -Scott
More information about the dev
mailing list