Native ICE STUN failover can stall when server entries share an address
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 45/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- networking
- Lĩnh vực
- networking
Hướng nghiên cứu
Look at the native ICE client code, likely in files handling STUN server lists and failover logic. The issue describes a loop when duplicate addresses exist in the server list. Start by finding where STUN requests are made and how the next server is selected after a timeout. Check for address-based indexing. The fix involves ensuring unique address selection or marking discovery as failed. Test with a setup using duplicate hostname entries.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
We hit a repeatable stall in the native ICE client on Windows with GameNetworkingSockets 1.6.0.
When a STUN request times out, the client uses the server's address to find its position in the configured server list, then tries the next entry. If several entries have the same address, it keeps finding the first match and retrying the same next entry.
The client doesn't mark STUN discovery as failed, and the retries continue without a pause.
In our setup, stun.l.google.com and stun1.l.google.com through stun4.l.google.com all resolved to the same IPv4 and IPv6 addresses.
On a machine with an additional network adapter, sends through that adapter failed with WSAEADDRNOTAVAIL or WSAENETUNREACH. During match startup, the repeated retries caused the game to freeze.
We worked around it by configuring only STUN hostnames that resolve to distinct addresses. The keepalive path also appears to select servers by address, so duplicate entries may affect it as well.
- Ngôn ngữ chính
- C++
- Star
- 9.9k
- Fork
- 749
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của ValveSoftware/GameNetworkingSockets
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
-
Feature Request: Player Region Filtering and Maximum Latency Preference for Steam Networking Đang mở
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
-
TSan: data race on the unsynchronized static FILE* lazy init in Plat_IsInDebugSession (Linux) Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
ValveSoftware/GameNetworkingSockets#425 · 7 bình luận ·
Tất cả issue của ValveSoftware/GameNetworkingSockets
Issue tương tự
-
[CI] Nightly Clang build broken: structured binding captured in a lambda in FileDataSource.cpp Đang mởbug build
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 91/100
facebookincubator/velox#19194 ·
-
JIT-compiled number -> Decimal conversion silently overflows instead of raising DECIMAL_OVERFLOW Đang mởfuzz
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
ClickHouse/ClickHouse#122114 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
-
module/agent platform/macos type/bug/regression
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
-
enhancement PyCDE
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100