Skip to content

Commit 20099e0

Browse files
authored
KTOR-5099 Fix memory leak in HttpRequestRetry plugin (#3316)
1 parent 28308e7 commit 20099e0

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

ktor-client/ktor-client-core/common/src/io/ktor/client/plugins/HttpRequestRetry.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -327,8 +327,11 @@ public class HttpRequestRetry internal constructor(configuration: Configuration)
327327

328328
private fun prepareRequest(request: HttpRequestBuilder): HttpRequestBuilder {
329329
val subRequest = HttpRequestBuilder().takeFrom(request)
330-
val subRequestJob = Job(request.executionContext)
331-
subRequest.executionContext = subRequestJob
330+
request.executionContext.invokeOnCompletion { cause ->
331+
val subRequestJob = subRequest.executionContext as CompletableJob
332+
if (cause == null) subRequestJob.complete()
333+
else subRequestJob.completeExceptionally(cause)
334+
}
332335
return subRequest
333336
}
334337

0 commit comments

Comments
 (0)