Closed ce-bo closed 1 year ago
/cc @glefloch, @quarkusio/devtools
What app are you deploying ? Can you provide a reproducer ?
I thought about providing a reproducer. Unfortunately, it is closed source. But maybe I can show you, how the application is started:
@QuarkusMain public class MyQuarkusMain { public static void main(String[] args) { Quarkus.run(MyQuarkusApplication.class, args); } }
Gradle Dependencies:
quarkusPluginId=io.quarkus quarkusPluginVersion=2.16.6.Final quarkusPlatformGroupId=io.quarkus quarkusPlatformArtifactId=quarkus-universe-bom quarkusPlatformVersion=2.16.6.Final dependencies { implementation enforcedPlatform("${quarkusPlatformGroupId}:${quarkusPlatformArtifactId}:${quarkusPlatformVersion}") implementation 'io.quarkus:quarkus-oidc' implementation 'io.quarkus:quarkus-arc' implementation 'io.quarkus:quarkus-agroal' implementation 'io.quarkus:quarkus-jdbc-postgresql' implementation 'io.quarkus:quarkus-jdbc-db2' implementation 'io.quarkus:quarkus-narayana-jta' implementation 'io.quarkus:quarkus-resteasy' implementation 'io.quarkus:quarkus-undertow' implementation 'io.quarkus:quarkus-elytron-security-properties-file' implementation 'io.quarkus:quarkus-junit5' // ...
When building the app with gradlew quarkusBuild
and running the jar in a Docker Container, it worked fine.
Now I just wanted to get rid of my local Docker development environment and run quarkus without it.
I set this option quarkus.devservices.enabled=false
to disable the dev services, otherwise I get these errors:
2023-04-14 09:26:33,636 DEBUG [com.git.doc.zer.ApacheDockerHttpClientImpl$ApacheResponse] (docker-java-stream-623622257) Failed to close the response: java.io.IOException: java.nio.channels.ClosedChannelException at java.base/java.nio.channels.Channels$2.read(Channels.java:241) at com.github.dockerjava.zerodep.shaded.org.apache.hc.client5.http.impl.io.LoggingInputStream.read(LoggingInputStream.java:81) at com.github.dockerjava.zerodep.shaded.org.apache.hc.core5.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:149) at com.github.dockerjava.zerodep.shaded.org.apache.hc.core5.http.impl.io.SessionInputBufferImpl.readLine(SessionInputBufferImpl.java:280) at com.github.dockerjava.zerodep.shaded.org.apache.hc.core5.http.impl.io.ChunkedInputStream.getChunkSize(ChunkedInputStream.java:261) at com.github.dockerjava.zerodep.shaded.org.apache.hc.core5.http.impl.io.ChunkedInputStream.nextChunk(ChunkedInputStream.java:222) at com.github.dockerjava.zerodep.shaded.org.apache.hc.core5.http.impl.io.ChunkedInputStream.read(ChunkedInputStream.java:147) at com.github.dockerjava.zerodep.shaded.org.apache.hc.core5.http.impl.io.ChunkedInputStream.close(ChunkedInputStream.java:314) at com.github.dockerjava.zerodep.shaded.org.apache.hc.core5.io.Closer.close(Closer.java:48) at com.github.dockerjava.zerodep.shaded.org.apache.hc.core5.http.impl.io.IncomingHttpEntity.close(IncomingHttpEntity.java:111) at com.github.dockerjava.zerodep.shaded.org.apache.hc.core5.http.io.entity.HttpEntityWrapper.close(HttpEntityWrapper.java:120) at com.github.dockerjava.zerodep.shaded.org.apache.hc.core5.io.Closer.close(Closer.java:48) at com.github.dockerjava.zerodep.shaded.org.apache.hc.core5.http.message.BasicClassicHttpResponse.close(BasicClassicHttpResponse.java:93) at com.github.dockerjava.zerodep.shaded.org.apache.hc.client5.http.impl.classic.CloseableHttpResponse.close(CloseableHttpResponse.java:200) at com.github.dockerjava.zerodep.ApacheDockerHttpClientImpl$ApacheResponse.close(ApacheDockerHttpClientImpl.java:256) at org.testcontainers.shaded.com.github.dockerjava.core.DefaultInvocationBuilder.lambda$executeAndStream$1(DefaultInvocationBuilder.java:277) at java.base/java.lang.Thread.run(Thread.java:834) Caused by: java.nio.channels.ClosedChannelException at java.base/sun.nio.ch.WindowsAsynchronousFileChannelImpl.implRead(WindowsAsynchronousFileChannelImpl.java:519) at java.base/sun.nio.ch.AsynchronousFileChannelImpl.read(AsynchronousFileChannelImpl.java:229) at com.github.dockerjava.transport.NamedPipeSocket$AsynchronousFileByteChannel.read(NamedPipeSocket.java:117) at java.base/java.nio.channels.Channels$2.read(Channels.java:239) ... 16 more
Any advice how I can continue debugging?
It seems that undertow is not working on my Windows machine but on a Mac Machine it is working fine. The app is using two servlets to expose two REST API endpoints. By removing the quarkus-undertow dependency it is working but then the API is not available of course.
Yes so something about Those servlets config/annotations is triggering is My assumption.
Try mimick it in a reproducer and See when it fails. The body of the code most likely does not matter.
I figured out that the following path configuration was not working on my Windows machine:
<servlet>
<multipart-config>
<location>/tmp</location>
....
Issue fixed by specifying the right tmp path.
Describe the bug
When running
gradlew quarkusDev
Expected behavior
quarkus should start properly
Actual behavior
quarkus fails with the error messages below:
How to Reproduce?
No response
Output of
uname -a
orver
Microsoft Windows [Version 10.0.19045.2846]
Output of
java -version
java 11.0.8 2020-07-14 LTS
GraalVM version (if different from Java)
No response
Quarkus version or git rev
2.16.6-Final
Build tool (ie. output of
mvnw --version
orgradlew --version
)gradlew
Additional information
it also failes via Quarkus IntelliJ Run Configuration