Redesign tests based on `QueueTestHead` and `onFinalizeWeak`
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 45/100
Direzione di ricerca
Inizia con i test di Http1ClientStageSuite e ClientTimeoutSuite che combinano QueueTestHead con request.body.onFinalizeWeak. Leggi org.http4s.blazecore.util.EntityBodyWriter#writeEntityBody, in particolare l’ordine di drain e writeEnd. Il lavoro è completato quando i test rilevano che la richiesta è stata inviata senza dipendere dalla finalizzazione del body stream e non mostrano più la flakiness segnalata.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Http1ClientStageSuite and ClientTimeoutSuite."Idle timeout on slow POST body" use a combo of QueueTestHead to mock the network side of the connection and request.body.onFinalizeWeak to trigger some action in QueueTestHead. In these tests onFinalizeWeak is meant to detect when the request has been sent. The problem is that finalisation of the request body stream, does not guarantee the request has been sent. This can be clearly seen in the code of org.http4s.blazecore.util.EntityBodyWriter#writeEntityBody where writeEnd is executed after drain:
def writeEntityBody(p: EntityBody[F]): F[Boolean] = {
val writeBody: F[Unit] = p.through(writePipe).compile.drain
val writeBodyEnd: F[Boolean] = fromFutureNoShift(F.delay(writeEnd(Chunk.empty)))
writeBody *> writeBodyEnd
}
This issue leads to flaky tests like this one:
https://github.com/http4s/http4s/runs/4498891671?check_suite_focus=true#step:13:5129
- Lingua principale
- Scala
- Stelle
- 371
- Fork
- 63
- Merge medio
- 1g 18h
- PR unite (30g)
- 8
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun 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 http4s/blaze
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
http4s/blaze#918 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
http4s/blaze#894 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 30/100
I maintainer di solito rispondono entro 1 giorno
-
support
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
http4s/blaze#774 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di http4s/blaze
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno
-
requires-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
apache/datafusion-comet#7001 ·
I maintainer di solito rispondono entro 1 giorno
-
? - Needs Triage documentation user_tools
Difficoltà 2/5 Mezza giornata Idoneità per principianti 62/100
NVIDIA/cudf-spark-tools#2190 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
lichess-org/lila#22088 ·
I maintainer di solito rispondono entro 1 giorno
-
documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
I maintainer di solito rispondono entro 1 giorno