Anyone have issues with Ktor's 1.0.0-rc apache cli...
# ktor
r
Anyone have issues with Ktor's 1.0.0-rc apache client? I have a client defined as follows:
Copy code
private val client = HttpClient(Apache) {
    expectSuccess = false
    install(JsonFeature) {
      serializer = JacksonSerializer()
    }
  }
and during an upload using
WriterContent
as the body, ktor hangs, and the app suspension point never resumes, with the stack:
Copy code
"DefaultDispatcher-worker-1@6464" daemon prio=5 tid=0x39 nid=NA waiting
  java.lang.Thread.State: WAITING
	  at sun.misc.Unsafe.park(Unsafe.java:-1)
	  at java.util.concurrent.locks.LockSupport.park(LockSupport.java:304)
	  at kotlinx.coroutines.io.jvm.javaio.BlockingAdapter.submitAndAwait(Blocking.kt:215)
	  at kotlinx.coroutines.io.jvm.javaio.BlockingAdapter.submitAndAwait(Blocking.kt:185)
	  at kotlinx.coroutines.io.jvm.javaio.OutputAdapter.write(Blocking.kt:107)
	  - locked <0x1ba1> (a kotlinx.coroutines.io.jvm.javaio.OutputAdapter)
	  at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:221)
	  at sun.nio.cs.StreamEncoder.implWrite(StreamEncoder.java:282)
	  at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:125)
	  - locked <0x1ba2> (a java.io.OutputStreamWriter)
	  at java.io.OutputStreamWriter.write(OutputStreamWriter.java:207)
          ....snip....
	  at io.ktor.http.content.WriterContent.writeTo(WriterContent.kt:20)
	  at io.ktor.client.engine.apache.ApacheRequestProducer$1.invokeSuspend(ApacheRequestProducer.kt:50)
	  at io.ktor.client.engine.apache.ApacheRequestProducer$1.invoke(ApacheRequestProducer.kt:-1)
	  at kotlinx.coroutines.io.CoroutinesKt$launchChannel$job$1.invokeSuspend(Coroutines.kt:123)
	  at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:32)
	  at kotlinx.coroutines.DispatchedKt.resumeCancellable(Dispatched.kt:163)
	  at kotlinx.coroutines.intrinsics.CancellableKt.startCoroutineCancellable(Cancellable.kt:23)
	  at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.kt:109)
	  at kotlinx.coroutines.AbstractCoroutine.start(AbstractCoroutine.kt:160)
	  at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch(Builders.common.kt:54)
	  at kotlinx.coroutines.BuildersKt.launch(Unknown Source:1)
	  at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch$default(Builders.common.kt:47)
	  at kotlinx.coroutines.BuildersKt.launch$default(Unknown Source:1)
	  at kotlinx.coroutines.io.CoroutinesKt.launchChannel(Coroutines.kt:118)
	  at kotlinx.coroutines.io.CoroutinesKt.writer(Coroutines.kt:82)
	  at io.ktor.client.engine.apache.ApacheRequestProducer.<init>(ApacheRequestProducer.kt:49)
	  at io.ktor.client.engine.apache.ApacheEngine.execute(ApacheEngine.kt:19)
	  at io.ktor.client.HttpClient$$special$$inlined$apply$lambda$1.invokeSuspend(HttpClient.kt:74)
	  at io.ktor.client.HttpClient$$special$$inlined$apply$lambda$1.invoke(Unknown Source:-1)
	  at io.ktor.util.pipeline.SuspendFunctionGun.loop(PipelineContext.kt:242)
	  at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(PipelineContext.kt:63)
	  at io.ktor.util.pipeline.SuspendFunctionGun.proceed(PipelineContext.kt:111)
	  at io.ktor.util.pipeline.SuspendFunctionGun.execute(PipelineContext.kt:131)
	  at io.ktor.util.pipeline.Pipeline.execute(Pipeline.kt:24)
          [...snip...]
	  at io.ktor.client.HttpClient.execute(HttpClient.kt:139)
	  at io.ktor.client.call.HttpClientCallKt.call(HttpClientCall.kt:78)
	  at io.ktor.client.call.UtilsKt.call(utils.kt:25)
Same code defined with
CIO.config { }
instead of
Apache
works fine...