Flaky: AuthProxyHeadersTest.rtm intermittently sees 3 proxy tunnels, expects 2
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 48/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- java
- Ambito
- networking, testing
Direzione di ricerca
Inizia in slack-api-client/src/test/java/test_with_remote_apis/AuthProxyHeadersTest.java, concentrandoti su rtm(), sul conteggio del ConnectHandler Jetty incorporato e sull’asserzione dello scim() adiacente. Esamina la modifica esistente rtmConnect(..., false) e traccia il tunnel CONNECT aggiuntivo intermittente. Il lavoro è completato quando il test è deterministico e continua a verificare il comportamento di autenticazione del proxy.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
test_with_remote_apis.AuthProxyHeadersTest.rtm is flaky. It asserts the embedded proxy handled exactly 2 connections:
assertThat(callCount.get(), is(2));
but intermittently observes 3 (Expected: is <2> ... but: was <3>), failing the build. The test's callCount is incremented by the embedded Jetty ConnectHandler on every non-407 CONNECT tunnel, so a 3 means an extra tunnel was opened through the proxy during the RTM flow.
Status of the attempted fix (this is the point of the issue)
A change on the api branch switched the call to rtmConnect(rtmBotToken, false) — dropping the fullUserInfoRequired users.info call on the theory that it was the extra HTTPS round-trip inflating the tunnel count to 3. See the change on api:
- commit
89bf7f3— "test: stabilize AuthProxyHeadersTest.rtm proxy connection count" - current test on
api: AuthProxyHeadersTest.java
// two connections (rtm.connect + websocket), otherwise a third tunnel can be opened
try (RTMClient rtm = slack.rtmConnect(rtmBotToken, false)) {
That change does not make the test deterministic. A build that includes the false change on api still failed rtm with was <3> at the is(2) assertion. So dropping users.info was, at most, a partial mitigation — the extra CONNECT tunnel has another source (a WebSocket reconnect, a keep-alive revalidation opening a fresh tunnel, or similar timing). Whether the change lowers the flake rate is unconfirmed; it does not eliminate the flake.
Repro / evidence
Intermittent — the same test passes on other builds, and fails on others with the false change present. Confirmed by the fact that the assertion still hits was <3> on api, which carries the change.
Possible directions (not yet chosen)
- Assert a bounded range instead of an exact count — the test's real intent is "the proxy was used with the auth header," not "exactly N tunnels." A tolerant assertion (e.g.
>= 2, oranyOf(is(2), is(3))) would kill the flake without weakening what's verified (a 407 or a leaked connection would still show up as a wrong count). Follows the same pattern already used in the siblingscim()test in this file (assertTrue(callCount.get() >= 1)). - Find and eliminate the extra tunnel — trace whether the RTM WebSocket connect opens a second CONNECT under the proxy (reconnect / pooled-connection revalidation) and make the count deterministic. Harder; needs the proxy's per-CONNECT logging enabled to see the real tunnel sequence.
Filing so the flake is on the record and the false change on api isn't mistaken for a settled fix.
- Lingua principale
- Java
- Stelle
- 602
- Fork
- 234
- Merge medio
- 2g 8h
- PR unite (30g)
- 6
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di slackapi/java-slack-sdk
-
Upgrade JettyForse già presa @skrcode l’ha presa 33 giorni fa. Apertaauto-triage-skip dependencies good first issue
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
slackapi/java-slack-sdk#1567 · 4 commenti ·
-
auto-triage-skip discussion enhancement
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
slackapi/java-slack-sdk#1535 · 5 commenti ·
-
auto-triage-skip question untriaged
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
slackapi/java-slack-sdk#1528 · 7 commenti ·
-
Update okhttp to 5.xApertaauto-triage-skip dependencies project:slack-api-client project:slack-app-backend
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
slackapi/java-slack-sdk#1500 · 11 commenti · 1 reazione ·
-
Table Block SupportApertaauto-triage-skip enhancement project:slack-api-model
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
slackapi/java-slack-sdk#1499 · 4 commenti · 3 reazioni ·
Tutte le issue di slackapi/java-slack-sdk
Issue simili
-
bug status: needs triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
LawnchairLauncher/lawnchair#7360 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Temporal transforms put pre-epoch timestamps at `.999999` into the previous unitForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
apache/iceberg#18371 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 80/100
objectionary/hone-maven-plugin#1297 ·
I maintainer di solito rispondono entro 1 giorno
-
bug documentation iam
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
objectionary/lints#1541 ·
I maintainer di solito rispondono entro 1 giorno