[ovs-dev] [PATCH] tests: keep some datapath parsing tests from hanging

Ilya Maximets i.maximets at samsung.com
Mon Dec 10 17:34:32 UTC 2018


On 10.12.2018 20:25, Ben Pfaff wrote:
> On Fri, Dec 07, 2018 at 06:15:29PM +0300, Ilya Maximets wrote:
>>> 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.
> 
> Seems reasonable.  I folded in the "dir" fix and applied this to master.

Looks like you fixed it only in one of two places. 

> 
> 


More information about the dev mailing list