Commit c638b77
fix(udp): demote normal UdpEndpoint EOF exits from Warn to Debug
T4 added Warn logging for all UdpEndpoint.start() read-loop exits.
In production this caused ~100 Warn/min noise from QUIC (UDP/443)
sessions on mask.icloud.com that close normally via EOF — a 1:1 ratio
with new UDP connection establishments, confirming these are expected
QUIC session teardowns, not errors.
Add isUdpEndpointNormalClose() to classify:
- io.EOF → normal peer close (QUIC session end, NatTimeout expiry)
- "use of closed network connection" → Reset(0) cleanup race, expected
- everything else → real errors, keep Warn
EOF/closed-connection exits now log at Debug; genuine errors (broken
pipe, connection reset, etc.) remain at Warn for observability.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>1 parent 7bae9c5 commit c638b77
1 file changed
+25
-1
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| 11 | + | |
11 | 12 | | |
| 13 | + | |
12 | 14 | | |
13 | 15 | | |
14 | 16 | | |
| |||
38 | 40 | | |
39 | 41 | | |
40 | 42 | | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
41 | 61 | | |
42 | 62 | | |
43 | 63 | | |
44 | 64 | | |
45 | 65 | | |
46 | 66 | | |
47 | | - | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
48 | 72 | | |
49 | 73 | | |
50 | 74 | | |
| |||
0 commit comments