On 11/19/20 2:30 AM, Zimoch Dirk (PSI) wrote:
> The strings " MRIMA-CH-01D1:O" and similar correspond to CA search broadcasts on the net, coming in over the "real" network interface.
Yes, which I know is unexpected for a unittest, which would normally be isolated.
The udpSockFanoutTest() which is causing you problems was added after a regression
as a way ensure that the OS specific epicsSocketEnableAddressUseForDatagramFanout()
functions have the intended effects, and that CA/PVA search will work.
I couldn't think of an isolated way to do this (eg. broadcast over loopback isn't portable).
https://github.com/epics-base/epics-base/commit/416061088567f401cfc3cfe9acbc82c7cbcb173d#diff-e2d4c9066a589e7f761c71e5170648cf32efb6c8f6dcb8b59bf605c00493d917R350
>> -----Ursprüngliche Nachricht-----
>> Von: Core-talk <core-talk-bounces at aps.anl.gov> Im Auftrag von Zimoch Dirk
>> (PSI) via Core-talk
>> Gesendet: Donnerstag, 19. November 2020 11:28
>> An: Michael Davidsaver <mdavidsaver at gmail.com>
>> Cc: EPICS core-talk <core-talk at aps.anl.gov>
>> Betreff: AW: AW: Problems with hanging osiSockTest
>>
>> I have tested the latest 7.0 commit.
>>
>> osiSockTest still hangs on the virbr0 interface:
>>
>> # Interface 192.168.122.255:5064
>> # Not LO
>> # RX1 start
>> # RX2 start
>> # RX ignore n=32 cmd=0 size=0 dtype=1 dcnt=13 body=
>> # RX ignore n=32 cmd=0 size=0 dtype=1 dcnt=13 body=
>> # RX ignore n=32 cmd=0 size=0 dtype=1 dcnt=13 body=
>> # RX ignore n=32 cmd=0 size=0 dtype=1 dcnt=13 body=
>> # RX ignore n=32 cmd=6 size=32 dtype=5 dcnt=8 body=MRIMA-CH-01D1:O
>> # RX ignore n=32 cmd=6 size=32 dtype=5 dcnt=8 body=MRIMA-CH-01D1:O
>> # RX ignore n=32 cmd=0 size=0 dtype=1 dcnt=13 body=
>> # RX ignore n=32 cmd=0 size=0 dtype=1 dcnt=13 body=
>> # RX ignore n=32 cmd=0 size=0 dtype=1 dcnt=13 body=
>> # RX ignore n=32 cmd=0 size=0 dtype=1 dcnt=13 body=
>> # RX ignore n=32 cmd=0 size=0 dtype=1 dcnt=13 body=
>> # RX ignore n=32 cmd=0 size=0 dtype=1 dcnt=13 body=
>> # RX ignore n=32 cmd=0 size=0 dtype=1 dcnt=13 body=
>> # RX ignore n=32 cmd=0 size=0 dtype=1 dcnt=13 body=
>> # RX ignore n=32 cmd=0 size=0 dtype=1 dcnt=13 body=
>> # RX ignore n=32 cmd=0 size=0 dtype=1 dcnt=13 body=
>> # RX ignore n=32 cmd=6 size=32 dtype=5 dcnt=8 body=MRIDI-BPM-SEC3:
>> # RX ignore n=32 cmd=6 size=32 dtype=5 dcnt=8 body=MRIDI-BPM-SEC3:
>> # RX ignore n=32 cmd=0 size=0 dtype=1 dcnt=13 body=
>> # RX ignore n=32 cmd=0 size=0 dtype=1 dcnt=13 body=
>> # RX ignore n=32 cmd=0 size=0 dtype=1 dcnt=13 body=
>> # RX ignore n=32 cmd=0 size=0 dtype=1 dcnt=13 body=
>> # RX ignore n=32 cmd=0 size=0 dtype=1 dcnt=13 body=
>> # RX ignore n=32 cmd=0 size=0 dtype=1 dcnt=13 body=
>> # RX ignore n=32 cmd=0 size=0 dtype=1 dcnt=13 body=
>> # RX ignore n=32 cmd=0 size=0 dtype=1 dcnt=13 body=
>> # RX ignore n=32 cmd=0 size=0 dtype=1 dcnt=13 body=
>> # RX ignore n=32 cmd=0 size=0 dtype=1 dcnt=13 body=
>> # RX ignore n=32 cmd=0 size=0 dtype=1 dcnt=13 body=
>> # RX ignore n=32 cmd=0 size=0 dtype=1 dcnt=13 body=
>> # RX ignore n=32 cmd=6 size=32 dtype=5 dcnt=8 body=MRIDI-BPM-SEC12
>> # RX ignore n=32 cmd=6 size=32 dtype=5 dcnt=8 body=MRIDI-BPM-SEC12
>> # RX ignore n=32 cmd=0 size=0 dtype=1 dcnt=13 body=
>> # RX ignore n=32 cmd=0 size=0 dtype=1 dcnt=13 body=
>> # RX ignore n=32 cmd=6 size=32 dtype=5 dcnt=8 body=MRIMA-CV-02SB:O
>> # RX ignore n=32 cmd=6 size=32 dtype=5 dcnt=8 body=MRIMA-CV-02SB:O
>> # RX ignore n=32 cmd=0 size=0 dtype=1 dcnt=13 body=
>> # RX ignore n=32 cmd=0 size=0 dtype=1 dcnt=13 body=
>> # RX ignore n=32 cmd=0 size=0 dtype=1 dcnt=13 body=
>> # RX ignore n=32 cmd=0 size=0 dtype=1 dcnt=13 body=
>> # RX ignore n=32 cmd=0 size=0 dtype=1 dcnt=13 body=
>> # RX ignore n=32 cmd=0 size=0 dtype=1 dcnt=13 body=
>> [...]
>>
>>
>>> -----Ursprüngliche Nachricht-----
>>> Von: Michael Davidsaver <mdavidsaver at gmail.com>
>>> Gesendet: Donnerstag, 19. November 2020 00:52
>>> An: Zimoch Dirk (PSI) <dirk.zimoch at psi.ch>
>>> Cc: Johnson, Andrew N. <anj at anl.gov>; EPICS core-talk <core-
>>> talk at aps.anl.gov>
>>> Betreff: Re: AW: Problems with hanging osiSockTest
>>>
>>> On 11/18/20 10:00 AM, Michael Davidsaver wrote:
>>>> Running this test again myself, I realize that osiSockTest
>>>> is not so robust against firewalls. I'm adding a check to
>>>> handle EPERM from sendto(). This may not be related to
>>>> what you see, but I'm also adding some detail to the
>>>> 'RX ignore' message.
>>>
>>> Dirk, can you test the lastest from the 7.0 branch?
>>>
>>> The relevant change is:
>>>
>>> https://github.com/epics-base/epics-
>>> base/commit/d83e3b5de11f8ed52e76498c6f6fc412ba20b000
>>>
>>>
>>>> On 11/18/20 4:32 AM, Zimoch Dirk (PSI) via Core-talk wrote:
>>>>> After this:
>>>>>
>>>>> 1..24
>>>>>
>>>>> ok 1 - osiSockAttach
>>>>>
>>>>> # udpSockTest()
>>>>>
>>>>> ok 2 - epicsSocketCreate INET, DGRAM, 0
>>>>>
>>>>> ok 3 - setsockopt BROADCAST := 1
>>>>>
>>>>> ok 4 - getsockopt BROADCAST => 1
>>>>>
>>>>> ok 5 - setsockopt BROADCAST := 0
>>>>>
>>>>> ok 6 - getsockopt BROADCAST => 0
>>>>>
>>>>> ok 7 - setsockopt MULTICAST_LOOP := 1
>>>>>
>>>>> ok 8 - getsockopt MULTICAST_LOOP => 1
>>>>>
>>>>> ok 9 - setsockopt MULTICAST_LOOP := 0
>>>>>
>>>>> ok 10 - getsockopt MULTICAST_LOOP => 0
>>>>>
>>>>> ok 11 - setsockopt IP_MULTICAST_TTL := 2
>>>>>
>>>>> ok 12 - getsockopt IP_MULTICAST_TTL => 2
>>>>>
>>>>> ok 13 - setsockopt IP_MULTICAST_TTL := 1
>>>>>
>>>>> ok 14 - getsockopt IP_MULTICAST_TTL => 1
>>>>>
>>>>> # udpSockFanoutBindTest()
>>>>>
>>>>> # First test if epicsSocketEnableAddressUseForDatagramFanout() is
>> necessary
>>>>>
>>>>> ok 15 - bind() to port 43731
>>>>>
>>>>> ok 16 - bind() to 43731 error -1, 98
>>>>>
>>>>> # Now the real test
>>>>>
>>>>> ok 17 - bind() to port 43731
>>>>>
>>>>> ok 18 - bind() to port 43731
>>>>>
>>>>> # udpSockFanoutTest()
>>>>>
>>>>> # Interface 129.129.130.255:5064
>>>>>
>>>>> # Not LO
>>>>>
>>>>> # RX1 start
>>>>>
>>>>> # RX2 start
>>>>>
>>>>> # RX ignore
>>>>>
>>>>> # RX ignore
>>>>>
>>>>> # RX2 success 0
>>>>>
>>>>> # RX1 success 0
>>>>>
>>>>> # RX ignore
>>>>>
>>>>> # RX ignore
>>>>>
>>>>> # RX ignore
>>>>>
>>>>> # RX ignore
>>>>>
>>>>> # RX ignore
>>>>>
>>>>> # RX ignore
>>>>>
>>>>> # RX2 success 1
>>>>>
>>>>> # RX1 success 1
>>>>>
>>>>> # RX ignore
>>>>>
>>>>> # RX ignore
>>>>>
>>>>> # RX2 success 2
>>>>>
>>>>> # RX1 success 2
>>>>>
>>>>> # RX ignore
>>>>>
>>>>> # RX ignore
>>>>>
>>>>> # RX2 success 3
>>>>>
>>>>> # RX1 success 3
>>>>>
>>>>> # RX ignore
>>>>>
>>>>> # RX ignore
>>>>>
>>>>> # RX ignore
>>>>>
>>>>> # RX ignore
>>>>>
>>>>> # RX1 success 4
>>>>>
>>>>> # RX2 success 4
>>>>>
>>>>> # RX ignore
>>>>>
>>>>> # RX ignore
>>>>>
>>>>> # RX ignore
>>>>>
>>>>> # RX ignore
>>>>>
>>>>> # RX1 success 5
>>>>>
>>>>> # RX1 end
>>>>>
>>>>> # RX2 success 5
>>>>>
>>>>> # RX2 end
>>>>>
>>>>> # Result: RX1 3f:0 RX2 3f:0
>>>>>
>>>>> # Interface 192.168.122.255:5064
>>>>>
>>>>> # Not LO
>>>>>
>>>>> # RX1 start
>>>>>
>>>>> # RX2 start
>>>>>
>>>>> # RX ignore
>>>>>
>>>>> [...]
>>>>>
>>>>> Now it repeatedly prints "# RX ignore" forever...
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> *Von:*Johnson, Andrew N. <anj at anl.gov>
>>>>> *Gesendet:* Dienstag, 17. November 2020 18:11
>>>>> *An:* Zimoch Dirk (PSI) <dirk.zimoch at psi.ch>
>>>>> *Cc:* EPICS core-talk <core-talk at aps.anl.gov>
>>>>> *Betreff:* Re: Problems with hanging osiSockTest
>>>>>
>>>>>
>>>>>
>>>>> Dirk,
>>>>>
>>>>>
>>>>>
>>>>> What happens if you run that test manually? All EPICS unit tests can be run
>>> individually without using the test harness to see more details as the test
>>> proceeds. This is my output on RHEL-7.8, which takes about 6 seconds to run:
>>>>>
>>>>>
>>>>>
>>>>> *tux% *cd modules/libcom/test/O.linux-x86_64/
>>>>>
>>>>> *tux% *./osiSockTest
>>>>>
>>>>> 1..24
>>>>>
>>>>> ok 1 - osiSockAttach
>>>>>
>>>>> # udpSockTest()
>>>>>
>>>>> ok 2 - epicsSocketCreate INET, DGRAM, 0
>>>>>
>>>>> ok 3 - setsockopt BROADCAST := 1
>>>>>
>>>>> ok 4 - getsockopt BROADCAST => 1
>>>>>
>>>>> ok 5 - setsockopt BROADCAST := 0
>>>>>
>>>>> ok 6 - getsockopt BROADCAST => 0
>>>>>
>>>>> ok 7 - setsockopt MULTICAST_LOOP := 1
>>>>>
>>>>> ok 8 - getsockopt MULTICAST_LOOP => 1
>>>>>
>>>>> ok 9 - setsockopt MULTICAST_LOOP := 0
>>>>>
>>>>> ok 10 - getsockopt MULTICAST_LOOP => 0
>>>>>
>>>>> ok 11 - setsockopt IP_MULTICAST_TTL := 2
>>>>>
>>>>> ok 12 - getsockopt IP_MULTICAST_TTL => 2
>>>>>
>>>>> ok 13 - setsockopt IP_MULTICAST_TTL := 1
>>>>>
>>>>> ok 14 - getsockopt IP_MULTICAST_TTL => 1
>>>>>
>>>>> # udpSockFanoutBindTest()
>>>>>
>>>>> # First test if epicsSocketEnableAddressUseForDatagramFanout() is
>>> necessary
>>>>>
>>>>> ok 15 - bind() to port 55467
>>>>>
>>>>> ok 16 - bind() to 55467 error -1, 98
>>>>>
>>>>> # Now the real test
>>>>>
>>>>> ok 17 - bind() to port 55467
>>>>>
>>>>> ok 18 - bind() to port 55467
>>>>>
>>>>> # udpSockFanoutTest()
>>>>>
>>>>> # Interface 164.54.11.255:5064
>>>>>
>>>>> # Not LO
>>>>>
>>>>> # RX1 start
>>>>>
>>>>> # RX2 start
>>>>>
>>>>> # RX2 success 0
>>>>>
>>>>> # RX1 success 0
>>>>>
>>>>> # RX2 success 1
>>>>>
>>>>> # RX1 success 1
>>>>>
>>>>> # RX2 success 2
>>>>>
>>>>> # RX1 success 2
>>>>>
>>>>> # RX ignore
>>>>>
>>>>> # RX ignore
>>>>>
>>>>> # RX1 success 3
>>>>>
>>>>> # RX2 success 3
>>>>>
>>>>> # RX2 success 4
>>>>>
>>>>> # RX1 success 4
>>>>>
>>>>> # RX1 success 5
>>>>>
>>>>> # RX1 end
>>>>>
>>>>> # RX2 success 5
>>>>>
>>>>> # RX2 end
>>>>>
>>>>> # Result: RX1 3f:0 RX2 3f:0
>>>>>
>>>>> # Interface 192.168.122.255:5064
>>>>>
>>>>> # Not LO
>>>>>
>>>>> # RX1 start
>>>>>
>>>>> # RX2 start
>>>>>
>>>>> # RX1 success 0
>>>>>
>>>>> # RX2 success 0
>>>>>
>>>>> # RX1 success 1
>>>>>
>>>>> # RX2 success 1
>>>>>
>>>>> # RX1 success 2
>>>>>
>>>>> # RX2 success 2
>>>>>
>>>>> # RX ignore
>>>>>
>>>>> # RX ignore
>>>>>
>>>>> # RX1 success 3
>>>>>
>>>>> # RX2 success 3
>>>>>
>>>>> # RX1 success 4
>>>>>
>>>>> # RX2 success 4
>>>>>
>>>>> # RX1 success 5
>>>>>
>>>>> # RX1 end
>>>>>
>>>>> # RX2 success 5
>>>>>
>>>>> # RX2 end
>>>>>
>>>>> # Result: RX1 3f:0 RX2 3f:0
>>>>>
>>>>> ok 19 - Found non-loopback interface
>>>>>
>>>>> ok 20 - Successes 2
>>>>>
>>>>> # tcpSockReuseBindTest(0)
>>>>>
>>>>> ok 21 - bind() to port 53058
>>>>>
>>>>> ok 22 - bind() to 53058 error -1, 98
>>>>>
>>>>> # tcpSockReuseBindTest(1)
>>>>>
>>>>> # epicsSocketEnableAddressReuseDuringTimeWaitState
>>>>>
>>>>> ok 23 - bind() to port 34068
>>>>>
>>>>> ok 24 - bind() to 34068 error -1, 98
>>>>>
>>>>>
>>>>>
>>>>> Results
>>>>>
>>>>> =======
>>>>>
>>>>> Tests: 24
>>>>>
>>>>> Passed: 24 = 100.00%
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> - Andrew
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Nov 17, 2020, at 4:47 AM, Zimoch Dirk (PSI) via Core-talk <core-
>>> talk at aps.anl.gov <mailto:core-talk at aps.anl.gov>> wrote:
>>>>>
>>>>>
>>>>>
>>>>> Hello everybody,
>>>>>
>>>>> I have problems with a test in EPICS 7 commit
>>> 8fd36d8eef3420b42e7936e949928a6b43df7e15.
>>>>>
>>>>> osiSockTest seems to take forever.
>>>>>
>>>>> 'make runtests' hangs here:
>>>>> osiSockTest.t ................. 1/24
>>>>>
>>>>> 'make tapfiles' hangs here:
>>>>> perl -CSD osiSockTest.t -tap > osiSockTest.tap
>>>>>
>>>>> I am testing on RedHat 7 (linux-x86_64).
>>>>>
>>>>> Any ideas?
>>>>>
>>>>> Dirk
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>>
>>>>> Complexity comes for free, simplicity you have to work for.
>>>>>
>>>>>
>>>>>
>>>>
>
- References:
- Problems with hanging osiSockTest Zimoch Dirk (PSI) via Core-talk
- Re: Problems with hanging osiSockTest Johnson, Andrew N. via Core-talk
- AW: Problems with hanging osiSockTest Zimoch Dirk (PSI) via Core-talk
- Re: AW: Problems with hanging osiSockTest Michael Davidsaver via Core-talk
- Re: AW: Problems with hanging osiSockTest Michael Davidsaver via Core-talk
- AW: AW: Problems with hanging osiSockTest Zimoch Dirk (PSI) via Core-talk
- AW: AW: Problems with hanging osiSockTest Zimoch Dirk (PSI) via Core-talk
- Navigate by Date:
- Prev:
Re: AW: Problems with hanging osiSockTest Michael Davidsaver via Core-talk
- Next:
Re: AW: AW: Problems with hanging osiSockTest Michael Davidsaver via Core-talk
- Index:
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
<2020>
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
AW: AW: Problems with hanging osiSockTest Zimoch Dirk (PSI) via Core-talk
- Next:
Re: AW: AW: Problems with hanging osiSockTest Michael Davidsaver via Core-talk
- Index:
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
<2020>
2021
2022
2023
2024
|