‘Degraded mode’ for HTTP/2 connections
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 38/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- kotlin
- Domain
- networking
Research direction
Start by tracing how HTTP/2 calls time out, how connections are selected for new exchanges, and how pings and pool eviction are handled. The issue does not name files or tests, so locate those entry points in the OkHttp codebase first. Done means a timed-out call marks its host connection degraded, a pong clears that state, degraded connections carry no new exchanges, and an unresponsive connection is eventually evicted.
Written by the indexing model from the issue text.
Description
A user reported a problem in the field where an HTTP/2 connection remained active at the TCP layer, but dead at the HTTP/2 layer. Turning on HTTP/2 pings mitigated the problem, but our HTTP/2 pings are somewhat clumsy in this situation (they need to be manually configured, and the ping interval is generally too frequent for efficiency and too infrequent for responsiveness).
We sketched out an alternative design:
- When an HTTP/2 call times out at the application layer, mark the host connection as degraded
- Send a ping on the degraded connection
- When the pong is received, unmark the connection as degraded
While an HTTP/2 connection is degraded, don’t use it to carry new exchanges.
If the pong is never received, the connection will eventually be evicted from the pool.
- Dominant language
- Kotlin
- Stars
- 47.1k
- Forks
- 9.3k
- Avg merge
- 18h 18m
- Merged PRs (30d)
- 15
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 lysine-dev/okhttp
-
Difficulty 1/5 Under an hour Newbie friendliness 85/100
lysine-dev/okhttp#9788 ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
lysine-dev/okhttp#9761 · 3 comments ·
Maintainers usually reply within 1 day
-
Remove crossinline `addInterceptor` and `addNetworkInterceptor` overloadsPossibly taken @Amir-Golmoradi claimed this 6 days ago. Openenhancement
Difficulty 3/5 1-2 days Newbie friendliness 58/100
lysine-dev/okhttp#9779 · 1 comment ·
Maintainers usually reply within 1 day
-
HTTP/2 Data padding is not counted toward the connection flow-control window. This deadlocks connections with peers that pad.Possibly taken @Amir-Golmoradi claimed this 6 days ago. Openbug
Difficulty 3/5 1-2 days Newbie friendliness 67/100
lysine-dev/okhttp#9772 · 6 comments ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 55/100
lysine-dev/okhttp#9760 · 3 comments ·
Maintainers usually reply within 1 day
All issues in lysine-dev/okhttp
Similar issues
-
:maddi-inspection-kotlin:test runs out of heap in a full maddi test run; exit 1 with no failing testOpenbuild/ci front-end:kotlin
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
bisq-network/bisq-mobile#1948 ·
Maintainers usually reply within 1 day
-
afk-ok area:data-quality importer size:S
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
enorm-labs/event-junkie#3301 ·
Maintainers usually reply within 1 day
-
Negate special case for Long literals uses the wrong valuePossibly taken @bryantaustin13 claimed this today. Open
Difficulty 1/5 Under an hour Newbie friendliness 85/100
cqframework/clinical_quality_language#1865 ·
Maintainers usually reply within 8 days
-
MDM: interfaceName cannot be set through managed configurationsPossibly taken @JulienUsson claimed this today. Openbug
Difficulty 1/5 Under an hour Newbie friendliness 82/100
bk138/droidVNC-NG#404 · 1 comment ·