-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Client and server unintentionally sharing a UDP source port #128
Comments
As this is not occurring frequently, it is not a priority for me at present. |
An offending CMD_SEARCH.
|
Might this issue cause the following error from VxWorks, which was reported to me earlier today:
This was apparently from an EPICS 7 IOC build with QSRV and the AreaDetector pvaDriver (but it isn't 100% certain that's what he actually configured). |
Seen again. Same situation.
|
I've seen this pop up 4 times during 2 days of stress testing of P4P. I was able to catch one instance with wireshark and confirm that somehow the PVA client is sending UDP searches with the same source port number which the server is listening on. So
src.port==dst.port
. This causes the server to see it's own replies.Since the client operation is timing out, I take it that there are two sockets with the same source port. I'm not sure if bind() to port zero can do this?
The structure of these tests is to start the server first, then the client.
Where
isolate=True
is a shorthand for setting the following, which should cause the server to choose a random port by binding to port 0 then finding which ports are used.The
self.server.conf()
is callingpvAccessCPP/src/server/serverContext.cpp
Lines 216 to 262 in 31261ce
Which is producing a Configuration which can be use to configure a PVA client.
Previously noted on #104 (comment)
The text was updated successfully, but these errors were encountered: