quarkus: Vert.X bump to 4.4.2 lead to `domain socket must not be empty` exception when used with Quarkus Micrometer extension

Describe the bug

https://github.com/quarkusio/quarkus/pull/33416 makes my RESTEasy Classic app with domain socket fail.

Expected behavior

No ex.

Actual behavior

18:54:18,652 INFO  [app] 18:54:15,418 An exception 'java.lang.IllegalArgumentException: domain socket must not be empty' [enable DEBUG level for full stacktrace] was thrown by a user handler's exceptionCaught() method while handling the following exception:: java.lang.IllegalArgumentException: domain socket must not be empty
18:54:18,653 INFO  [app] 	at io.vertx.core.impl.Arguments.require(Arguments.java:29)
18:54:18,653 INFO  [app] 	at io.vertx.core.net.impl.SocketAddressImpl.<init>(SocketAddressImpl.java:85)
18:54:18,654 INFO  [app] 	at io.vertx.core.impl.transports.EpollTransport.convert(EpollTransport.java:85)
18:54:18,654 INFO  [app] 	at io.vertx.core.net.impl.ConnectionBase.channelRemoteAddress(ConnectionBase.java:618)
18:54:18,654 INFO  [app] 	at io.vertx.core.net.impl.ConnectionBase.remoteAddress(ConnectionBase.java:631)
18:54:18,655 INFO  [app] 	at io.vertx.core.http.impl.HttpServerWorker.configureHttp1(HttpServerWorker.java:310)
18:54:18,656 INFO  [app] 	at io.vertx.core.http.impl.Http1xUpgradeToH2CHandler.channelRead(Http1xUpgradeToH2CHandler.java:123)
18:54:18,657 INFO  [app] 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
18:54:18,657 INFO  [app] 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
18:54:18,658 INFO  [app] 	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
18:54:18,658 INFO  [app] 	at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286)
18:54:18,659 INFO  [app] 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
18:54:18,659 INFO  [app] 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
18:54:18,660 INFO  [app] 	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
18:54:18,661 INFO  [app] 	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346)
18:54:18,661 INFO  [app] 	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318)
18:54:18,662 INFO  [app] 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
18:54:18,663 INFO  [app] 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
18:54:18,663 INFO  [app] 	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
18:54:18,664 INFO  [app] 	at io.vertx.core.http.impl.Http1xOrH2CHandler.end(Http1xOrH2CHandler.java:61)
18:54:18,665 INFO  [app] 	at io.vertx.core.http.impl.Http1xOrH2CHandler.channelRead(Http1xOrH2CHandler.java:38)
18:54:18,665 INFO  [app] 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
18:54:18,666 INFO  [app] 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
18:54:18,666 INFO  [app] 	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
18:54:18,667 INFO  [app] 	at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286)
18:54:18,667 INFO  [app] 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
18:54:18,668 INFO  [app] 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
18:54:18,668 INFO  [app] 	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
18:54:18,669 INFO  [app] 	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
18:54:18,669 INFO  [app] 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)
18:54:18,670 INFO  [app] 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
18:54:18,670 INFO  [app] 	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
18:54:18,671 INFO  [app] 	at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:800)
18:54:18,671 INFO  [app] 	at io.netty.channel.epoll.EpollDomainSocketChannel$EpollDomainUnsafe.epollInReady(EpollDomainSocketChannel.java:140)
18:54:18,671 INFO  [app] 	at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:499)
18:54:18,672 INFO  [app] 	at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:397)
18:54:18,672 INFO  [app] 	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
18:54:18,673 INFO  [app] 	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
18:54:18,673 INFO  [app] 	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
18:54:18,673 INFO  [app] 	at java.base/java.lang.Thread.run(Thread.java:833)

How to Reproduce?

Reproducer:

  1. git clone git@github.com:michalvavrik/quarkus-test-suite.git
  2. git checkout -b reproducer/domain-socket-vertx-bump
  3. cd quarkus-test-suite/http/http-advanced
  4. mvn clean test

Output of uname -a or ver

Fedora 38

Output of java -version

17

GraalVM version (if different from Java)

23.2

Quarkus version or git rev

999-SNAPSHOT

Build tool (ie. output of mvnw --version or gradlew --version)

MVN 3.9.1

Additional information

No response

About this issue

  • Original URL
  • State: closed
  • Created a year ago
  • Comments: 29 (19 by maintainers)

Commits related to this issue

Most upvoted comments

that’s indeed something that changed in Netty and we have to workaround it in vertx , for domain sockets we will most likely return the local address as remote address in this case

Thanks clément, will have a look soonish

On Wed, May 31, 2023 at 4:29 PM Clement Escoffier @.***> wrote:

@vietj https://github.com/vietj here is a pure vert.x reproducer:

Archive.zip https://github.com/quarkusio/quarkus/files/11615225/Archive.zip

— Reply to this email directly, view it on GitHub https://github.com/quarkusio/quarkus/issues/33679#issuecomment-1570348842, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABXDCSL6Y7UO53GZLQW3GLXI5IS3ANCNFSM6AAAAAAYS72TUU . You are receiving this because you were mentioned.Message ID: @.***>