WebRTC ICE keeps an idle thread per STUN/TURN hostname lookup
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 68/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- cpp
- Domain
- networking
Research direction
Start in ice_session.cpp and compare the pinned WebRTC AsyncResolver behavior with upstream fix 1366b0f841 (webrtc:12659). Verify how each STUN/TURN hostname lookup creates and destroys its resolver thread, including destruction during an active lookup. Done means ICE sessions no longer retain an idle thread per hostname and interface, without requiring a submodule update.
Written by the indexing model from the issue text.
Description
With the WebRTC backend in 1.6.0, the pinned WebRTC's rtc::AsyncResolver starts an rtc::Thread per lookup that idles until its port is destroyed. Every ICE session keeps one per hostname per network interface.
Destroying a resolver mid-lookup also joins its thread, stalling the global lock until getaddrinfo returns.
Upstream WebRTC fixed this in 1366b0f841 (webrtc:12659). We can fix it in ice_session.cpp without a submodule update, unless you'd prefer the update.
- Dominant language
- C++
- Stars
- 10k
- Forks
- 747
- Avg merge
- 5d 19h
- Merged PRs (30d)
- 1
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from ValveSoftware/GameNetworkingSockets
-
Native ICE resolves STUN/TURN hostnames under the global lockPossibly taken @tintinhamans claimed this 10 days ago. Open
Difficulty 4/5 3-5 days Newbie friendliness 55/100
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
ValveSoftware/GameNetworkingSockets#425 · 7 comments ·
-
Difficulty 4/5 3-5 days Newbie friendliness 38/100
-
steamworks
Difficulty 4/5 3-5 days Newbie friendliness 35/100
ValveSoftware/GameNetworkingSockets#386 · 2 comments ·
-
Difficulty 4/5 3-5 days Newbie friendliness 30/100