typesafegithub / typesafegithub/github-workflows-kt

[Bug] Server failed on missing body length

Aperta
#2,368 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

bug
Lingua principale
Kotlin
Stelle
664
Fork
30
Merge medio
4g 19h
PR unite (30g)
5

Descrizione

Component

Action

Not sure what triggered it, but see GET - //%20%20%20%20%22/wp-config.php.save%22,,/php-perf.php below.

Expected

No failure.

Actual

What happens instead?

Got this stack trace:

2026-06-24 21:35:39.628	
2026-06-24 19:35:39,628 <INFO > <eventLoopGroupProxy-4-5            > <[]> <{request-id=4jj9s36l5eqi6si}> <                        io.ktor.server.Application> 500 Internal Server Error: GET - //%20%20%20%20%22/wp-config.php.save%22,,/php-perf.php in 103ms
	
		2026-06-24 21:35:39.627	
	... 12 more
	
		2026-06-24 21:35:39.627	
	at io.ktor.http.cio.HttpBodyKt.parseHttpBody(HttpBody.kt:112)
	
		2026-06-24 21:35:39.627	
keep-alive should be disabled (connection: close)
	
		2026-06-24 21:35:39.627	
chunked transfer encoding should be used or
	
		2026-06-24 21:35:39.627	
Caused by: java.lang.IllegalStateException: Failed to parse request body: request body length should be specified,
	
		2026-06-24 21:35:39.627	
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:704)
	
		2026-06-24 21:35:39.627	
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:717)
	
		2026-06-24 21:35:39.627	
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:798)
	
		2026-06-24 21:35:39.627	
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:586)
	
		2026-06-24 21:35:39.627	
	at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:89)
	
		2026-06-24 21:35:39.627	
	at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:124)
	
		2026-06-24 21:35:39.627	
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
	
		2026-06-24 21:35:39.627	
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:34)
	
		2026-06-24 21:35:39.627	
	at io.ktor.utils.io.ByteWriteChannelOperationsKt$writer$job$1.invokeSuspend(ByteWriteChannelOperations.kt:185)
	
		2026-06-24 21:35:39.627	
	at io.ktor.client.engine.cio.UtilsKt$readResponse$2$1$body$httpBodyParser$1.invoke(utils.kt)
	
		2026-06-24 21:35:39.627	
	at io.ktor.client.engine.cio.UtilsKt$readResponse$2$1$body$httpBodyParser$1.invoke(utils.kt)
	
		2026-06-24 21:35:39.627	
	at io.ktor.client.engine.cio.UtilsKt$readResponse$2$1$body$httpBodyParser$1.invokeSuspend(utils.kt:211)
	
		2026-06-24 21:35:39.627	
	at io.ktor.http.cio.HttpBodyKt.parseHttpBody(HttpBody.kt:120)
	
		2026-06-24 21:35:39.627	
	at io.ktor.utils.io.ByteWriteChannelOperationsKt.close(ByteWriteChannelOperations.kt:130)
	
		2026-06-24 21:35:39.627	
	at io.ktor.utils.io.ByteChannel.cancel(ByteChannel.kt:462)
	
		2026-06-24 21:35:39.627	
keep-alive should be disabled (connection: close)
	
		2026-06-24 21:35:39.627	
chunked transfer encoding should be used or
	
		2026-06-24 21:35:39.627	
io.ktor.utils.io.ClosedByteChannelException: Failed to parse request body: request body length should be specified,
	
		2026-06-24 21:35:39.627	
2026-06-24 19:35:39,627 <WARN > <DefaultDispatcher-worker-15        > <[]> <{}> <com.github.benmanes.caffeine.cache.LocalAsyncCache> Exception thrown during asynchronous load

Workaround, if exists

None/unknonw.

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

The failure reaches io.ktor.http.cio.HttpBodyKt.parseHttpBody at HttpBody.kt:112 and HttpBody.kt:120 while the bindings server handles the malformed GET shown in the report. Start by reproducing that request and tracing the request-body parsing path; done means it no longer produces the reported 500 response and stack trace.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
kotlin
Ambito
backend, networking
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Tranquilla
Chiarezza
Da chiarire
Idoneità per principianti
42/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.