Skip to content

Netty 4.2.0.RC3 - exception on shutdownGracefully #14872

@andreasdc

Description

@andreasdc

On netty 4.2.0.RC3 I see exceptions when calling shutdownGracefully with io_uring, while clients are connected. It is a custom BungeeCord implementation. I'm not sure if the event loops should be closed in a different way or it is a small bug inside the code.
Code:

                getLogger().info( "Closing IO threads" );
                bossEventLoopGroup.shutdownGracefully();
                workerEventLoopGroup.shutdownGracefully();
                while (true) {
                    try {
                        bossEventLoopGroup.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS);
                        workerEventLoopGroup.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS);
                        break;
                    } catch (InterruptedException ignored) {}
                }
                getLogger().info( "Thank you and goodbye" );

Error:

Closing IO threads
[io.netty.channel.AbstractChannel]: Can't invoke task later as EventLoop rejected it
java.util.concurrent.RejectedExecutionException: event executor terminated
        at io.netty.util.concurrent.SingleThreadEventExecutor.reject(SingleThreadEventExecutor.java:1005) ~[x.jar:git:Waterfall-Bootstrap:1.21-R0.1-SNAPSHOT:289f726:unknown]
        at io.netty.util.concurrent.SingleThreadEventExecutor.offerTask(SingleThreadEventExecutor.java:388) ~[x.jar:git:Waterfall-Bootstrap:1.21-R0.1-SNAPSHOT:289f726:unknown]
        at io.netty.util.concurrent.SingleThreadEventExecutor.addTask(SingleThreadEventExecutor.java:381) ~[x.jar:git:Waterfall-Bootstrap:1.21-R0.1-SNAPSHOT:289f726:unknown]
        at io.netty.util.concurrent.SingleThreadEventExecutor.execute(SingleThreadEventExecutor.java:907) ~[x.jar:git:Waterfall-Bootstrap:1.21-R0.1-SNAPSHOT:289f726:unknown]
        at io.netty.util.concurrent.SingleThreadEventExecutor.execute0(SingleThreadEventExecutor.java:873) ~[x.jar:git:Waterfall-Bootstrap:1.21-R0.1-SNAPSHOT:289f726:unknown]
        at io.netty.util.concurrent.SingleThreadEventExecutor.execute(SingleThreadEventExecutor.java:863) ~[x.jar:git:Waterfall-Bootstrap:1.21-R0.1-SNAPSHOT:289f726:unknown]
        at io.netty.channel.AbstractChannel$AbstractUnsafe.invokeLater(AbstractChannel.java:888) ~[x.jar:git:Waterfall-Bootstrap:1.21-R0.1-SNAPSHOT:289f726:unknown]
        at io.netty.channel.AbstractChannel$AbstractUnsafe.deregister(AbstractChannel.java:668) ~[x.jar:git:Waterfall-Bootstrap:1.21-R0.1-SNAPSHOT:289f726:unknown]
        at io.netty.channel.AbstractChannel$AbstractUnsafe.fireChannelInactiveAndDeregister(AbstractChannel.java:628) ~[x.jar:git:Waterfall-Bootstrap:1.21-R0.1-SNAPSHOT:289f726:unknown]
        at io.netty.channel.AbstractChannel$AbstractUnsafe.close(AbstractChannel.java:611) ~[x.jar:git:Waterfall-Bootstrap:1.21-R0.1-SNAPSHOT:289f726:unknown]
        at io.netty.channel.uring.AbstractIoUringChannel$AbstractUringUnsafe.closeNow(AbstractIoUringChannel.java:589) ~[x.jar:git:Waterfall-Bootstrap:1.21-R0.1-SNAPSHOT:289f726:unknown]
        at io.netty.channel.uring.AbstractIoUringChannel$AbstractUringUnsafe.handleDelayedClosed(AbstractIoUringChannel.java:499) ~[x.jar:git:Waterfall-Bootstrap:1.21-R0.1-SNAPSHOT:289f726:unknown]
        at io.netty.channel.uring.AbstractIoUringChannel$AbstractUringUnsafe.handle(AbstractIoUringChannel.java:425) ~[x.jar:git:Waterfall-Bootstrap:1.21-R0.1-SNAPSHOT:289f726:unknown]
        at io.netty.channel.uring.IoUringIoHandler$DefaultIoUringIoRegistration.handle(IoUringIoHandler.java:562) ~[x.jar:git:Waterfall-Bootstrap:1.21-R0.1-SNAPSHOT:289f726:unknown]
        at io.netty.channel.uring.IoUringIoHandler.handle(IoUringIoHandler.java:267) ~[x.jar:git:Waterfall-Bootstrap:1.21-R0.1-SNAPSHOT:289f726:unknown]
        at io.netty.channel.uring.CompletionQueue.process(CompletionQueue.java:95) ~[x.jar:git:Waterfall-Bootstrap:1.21-R0.1-SNAPSHOT:289f726:unknown]
        at io.netty.channel.uring.IoUringIoHandler.destroy(IoUringIoHandler.java:366) ~[x.jar:git:Waterfall-Bootstrap:1.21-R0.1-SNAPSHOT:289f726:unknown]
        at io.netty.channel.SingleThreadIoEventLoop.cleanup(SingleThreadIoEventLoop.java:245) ~[x.jar:git:Waterfall-Bootstrap:1.21-R0.1-SNAPSHOT:289f726:unknown]
        at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:1147) ~[x.jar:git:Waterfall-Bootstrap:1.21-R0.1-SNAPSHOT:289f726:unknown]
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[x.jar:git:Waterfall-Bootstrap:1.21-R0.1-SNAPSHOT:289f726:unknown]
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[x.jar:git:Waterfall-Bootstrap:1.21-R0.1-SNAPSHOT:289f726:unknown]
        at java.lang.Thread.run(Thread.java:1575) [?:?]
Thank you and goodbye

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions