java BindException: адрес уже используется: привязка, даже если порт свободен

#java #pytorch

#java #pytorch

Вопрос:

Я тестирую torchserve с его конфигурацией по умолчанию… его api вывода прослушивает порт 8080. и я получил эту ошибку, которая означает, что порт используется. мой плохой, у меня все еще есть процесс apache, прослушивающий этот порт. Я убил процесс apache. Но я все равно получаю ту же ошибку. Повторная попытка, изменив конфигурацию порта torchserve, чтобы использовать порт, который, как я точно знаю, не используется ни одним процессом. все та же ошибка. с помощью приложения TCPView я мог видеть, что на секунду настроенный порт был открыт в состоянии ПРОСЛУШИВАНИЯ для процесса torcheserve. Но вскоре после этого он снова был удален.

итак, у кого-нибудь есть идеи, почему это происходит? Я почти уверен, что это больше не проблема конфликта портов

трассировка стека

 java.io.IOException: Failed to bind
        at io.grpc.netty.shaded.io.grpc.netty.NettyServer.start(NettyServer.java:264)
        at io.grpc.internal.ServerImpl.start(ServerImpl.java:183)
        at io.grpc.internal.ServerImpl.start(ServerImpl.java:90)
        at org.pytorch.serve.ModelServer.startGRPCServer(ModelServer.java:396)
        at org.pytorch.serve.ModelServer.startGRPCServers(ModelServer.java:377)
        at org.pytorch.serve.ModelServer.startAndWait(ModelServer.java:116)
        at org.pytorch.serve.ModelServer.main(ModelServer.java:95)
Caused by: java.net.BindException: Address already in use: bind
        at java.base/sun.nio.ch.Net.bind0(Native Method)
        at java.base/sun.nio.ch.Net.bind(Net.java:461)
        at java.base/sun.nio.ch.Net.bind(Net.java:453)
        at java.base/sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:227)
        at io.grpc.netty.shaded.io.netty.channel.socket.nio.NioServerSocketChannel.doBind(NioServerSocketChannel.java:134)
        at io.grpc.netty.shaded.io.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:550)
        at io.grpc.netty.shaded.io.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1334)
        at io.grpc.netty.shaded.io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:506)
        at io.grpc.netty.shaded.io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:491)
        at io.grpc.netty.shaded.io.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:973)
        at io.grpc.netty.shaded.io.netty.channel.AbstractChannel.bind(AbstractChannel.java:248)
        at io.grpc.netty.shaded.io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:356)
        at io.grpc.netty.shaded.io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
        at io.grpc.netty.shaded.io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
        at io.grpc.netty.shaded.io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500)
        at io.grpc.netty.shaded.io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
        at io.grpc.netty.shaded.io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
        at io.grpc.netty.shaded.io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        at java.base/java.lang.Thread.run(Thread.java:834)
Exception in thread "Thread-0" java.util.concurrent.RejectedExecutionException: event executor terminated
        at io.netty.util.concurrent.SingleThreadEventExecutor.reject(SingleThreadEventExecutor.java:926)
        at io.netty.util.concurrent.SingleThreadEventExecutor.offerTask(SingleThreadEventExecutor.java:353)
        at io.netty.util.concurrent.SingleThreadEventExecutor.addTask(SingleThreadEventExecutor.java:346)
        at io.netty.util.concurrent.SingleThreadEventExecutor.execute(SingleThreadEventExecutor.java:828)
        at io.netty.util.concurrent.SingleThreadEventExecutor.execute(SingleThreadEventExecutor.java:818)
        at io.netty.channel.AbstractChannelHandlerContext.safeExecute(AbstractChannelHandlerContext.java:989)
        at io.netty.channel.AbstractChannelHandlerContext.close(AbstractChannelHandlerContext.java:608)
        at io.netty.channel.AbstractChannelHandlerContext.close(AbstractChannelHandlerContext.java:472)
        at io.netty.channel.DefaultChannelPipeline.close(DefaultChannelPipeline.java:957)
        at io.netty.channel.AbstractChannel.close(AbstractChannel.java:232)
        at org.pytorch.serve.ModelServer.stop(ModelServer.java:473)
        at org.pytorch.serve.ModelServer$1.run(ModelServer.java:91)
 

Ответ №1:

У меня была такая же ошибка, и я решил ее, добавив следующие строки в файл config.properties.

 grpc_inference_port=7000
grpc_management_port=7001