Skip to content

VertxServer shutdown cause java.lang.IndexOutOfBoundsException.Β #115

Open
@coding4m

Description

@coding4m

Version

vertx 4.2.5
grpc-java 1.44.1

Context

exception stack trace:

2022-03-09T15:16:02,302 WARN  io.netty.util.concurrent.DefaultPromise - An exception was thrown by io.grpc.netty.NettyServerHandler$5.operationComplete()
Mar 09 15:16:02 start[18365]: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
Mar 09 15:16:02 start[18365]: at java.util.ArrayList.rangeCheck(ArrayList.java:659) ~[?:1.8.0_301]
Mar 09 15:16:02 start[18365]: at java.util.ArrayList.get(ArrayList.java:435) ~[?:1.8.0_301]
Mar 09 15:16:02 start[18365]: at io.vertx.grpc.VertxServer$ActualServer.lambda$new$1(VertxServer.java:91) ~[io.vertx.vertx-grpc-4.2.5.jar:4.2.5]
Mar 09 15:16:02 start[18365]: at io.grpc.internal.SerializingExecutor.schedule(SerializingExecutor.java:102) ~[io.grpc.grpc-core-1.44.1.jar:1.44.1]
Mar 09 15:16:02 start[18365]: at io.grpc.internal.SerializingExecutor.execute(SerializingExecutor.java:95) ~[io.grpc.grpc-core-1.44.1.jar:1.44.1]
Mar 09 15:16:02 start[18365]: at io.grpc.internal.ServerImpl$JumpToApplicationThreadServerStreamListener.closedInternal(ServerImpl.java:920) ~[io.grpc.grpc-core-1.44.1.jar:1.44.1]
Mar 09 15:16:02 start[18365]: at io.grpc.internal.ServerImpl$JumpToApplicationThreadServerStreamListener.closed(ServerImpl.java:887) ~[io.grpc.grpc-core-1.44.1.jar:1.44.1]
Mar 09 15:16:02 start[18365]: at io.grpc.internal.AbstractServerStream$TransportState.closeListener(AbstractServerStream.java:332) ~[io.grpc.grpc-core-1.44.1.jar:1.44.1]
Mar 09 15:16:02 start[18365]: at io.grpc.internal.AbstractServerStream$TransportState.complete(AbstractServerStream.java:298) ~[io.grpc.grpc-core-1.44.1.jar:1.44.1]
Mar 09 15:16:02 start[18365]: at io.grpc.netty.NettyServerStream$TransportState.complete(NettyServerStream.java:168) ~[io.grpc.grpc-netty-1.44.1.jar:1.44.1]
Mar 09 15:16:02 start[18365]: at io.grpc.netty.NettyServerHandler$5.operationComplete(NettyServerHandler.java:682) ~[io.grpc.grpc-netty-1.44.1.jar:1.44.1]
Mar 09 15:16:02 start[18365]: at io.grpc.netty.NettyServerHandler$5.operationComplete(NettyServerHandler.java:679) ~[io.grpc.grpc-netty-1.44.1.jar:1.44.1]
Mar 09 15:16:02 start[18365]: at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:578) ~[io.netty.netty-common-4.1.74.Final.jar:4.1.74.Final]
Mar 09 15:16:02 start[18365]: at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:571) ~[io.netty.netty-common-4.1.74.Final.jar:4.1.74.Final]
Mar 09 15:16:02 start[18365]: at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:550) ~[io.netty.netty-common-4.1.74.Final.jar:4.1.74.Final]

maybe call contextLocal.get().remove(context) after server.shutdown()

    void stop(ContextInternal context, Promise<Void> promise) {
      boolean shutdown = count.decrementAndGet() == 0;
      context.runOnContext(v -> {
        group.removeWorker(context.nettyEventLoop());
        **contextLocal.get().remove(context);**
        if (shutdown) {
          map.remove(id);
          context.executeBlocking(p -> {
            server.shutdown();
            p.complete();
          }, promise);
        } else {
          promise.complete();
        }
      });
    }

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions