Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion src/Common/tests/System/Net/Sockets/TestSettings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,11 @@ public static class TestSettings
public const int FailingTestTimeout = 100;

// Number of redundant UDP packets to send to increase test reliability
public const int UDPRedundancy = 10;
// Update: was 10, changing to 1 to measure impact of random test failures occurring on *nix.
// Certain random failures appear to be caused by a UDP client sending in a loop (based on UDPRedundancy)
// to a server which was closed but another server created (on a different thread \ test) that happens to
// have the same port #.
// This occurs on *nix but not Windows because *nix uses random values (1024-65535) while Windows increments.
public const int UDPRedundancy = 1;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it would be good to make this change (no retry) and monitor the Windows (and Linux) tests for any new timeout errors. It's been a few months since the retry was added and there have been many changes made since then including removing tests that would eat all available memory.

If the Linux tests improve (as I suspect) but the Windows tests degrade due to timeouts, then we'll need to determine how to best address that including adding the retry back (perhaps only for Windows, it that's the case).

FWIW I've been running the Windows tests locally for a couple hours in simulated load without issue (win 10 with no UDP retry) - I'll keep monitoring that to see if something comes up. Doing the same on Linux definitely appears to help with the random failures, although I do get a hang occasionally - every 1,000 runs or so (with or without UDP retry) so I suspect that's a different problem.

}
}