Treat portable UDP churn errors as transient
ci / test (push) Canceled after 0s
ci / fuzz-smoke (push) Canceled after 0s
ci / macos-client (macos-aarch64, macos-14) (push) Canceled after 0s
ci / macos-client (macos-x86_64, macos-13) (push) Canceled after 0s
ci / windows-client (push) Canceled after 0s
ci / package-release (linux-x86_64, ubuntu-latest, , , ) (push) Canceled after 0s
ci / package-release (macos-aarch64, macos-14, , , ) (push) Canceled after 0s
ci / package-release (macos-x86_64, macos-13, , , ) (push) Canceled after 0s
ci / package-release (windows-aarch64, windows-latest, aarch64, windows, aarch64-pc-windows-msvc) (push) Canceled after 0s
ci / package-release (windows-x86_64, windows-latest, , , ) (push) Canceled after 0s
ci / remote-bench (push) Canceled after 0s
ci / publish-gitea-release (push) Canceled after 0s

This commit is contained in:
DuProcess
2026-07-16 21:09:42 -04:00
parent 5ebabfc674
commit e36f1fa936
+10
View File
@@ -10,6 +10,11 @@ pub fn is_transient_udp_error(err: &std::io::Error) -> bool {
std::io::ErrorKind::Interrupted
| std::io::ErrorKind::TimedOut
| std::io::ErrorKind::WouldBlock
| std::io::ErrorKind::ConnectionRefused
| std::io::ErrorKind::ConnectionReset
| std::io::ErrorKind::AddrNotAvailable
| std::io::ErrorKind::NetworkUnreachable
| std::io::ErrorKind::HostUnreachable
) || err.raw_os_error().is_some_and(is_transient_udp_os_error)
}
@@ -129,6 +134,11 @@ mod tests {
std::io::ErrorKind::Interrupted,
std::io::ErrorKind::TimedOut,
std::io::ErrorKind::WouldBlock,
std::io::ErrorKind::ConnectionRefused,
std::io::ErrorKind::ConnectionReset,
std::io::ErrorKind::AddrNotAvailable,
std::io::ErrorKind::NetworkUnreachable,
std::io::ErrorKind::HostUnreachable,
] {
let err = std::io::Error::from(kind);
assert!(is_transient_udp_error(&err));