Azure / Azure/DotNetty

Client uses EventLoopGroup based on Group configuration, causing EventExecutor to block

Open
#633 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C#
Stars
4.3k
Forks
1k
PR merge metrics
No merged PRs in 30d

Description

Hello, Dotnetty Community,
My open source project has been using dotnetty for a long time. Recently, when the client called the server based on LibUV, it was normal for the first half hour and GC would perform garbage collection. After half an hour, the memory increased. According to dump analysis, it was caused by SingleThreadEventExecutor being blocked. Then the bootstrap Group configuration was changed to MultithreadEventLoopGroup, and the memory tended to stabilize while garbage was collected. The following is the error code:
```
IEventLoopGroup group;

var bootstrap = new Bootstrap();
if (AppConfig.ServerOptions.Libuv)
{
group = new EventLoopGroup();
}
else
{
group = new MultithreadEventLoopGroup();
}
bootstrap
.Channel()
.Option(ChannelOption.TcpNodelay, true)
.Option(ChannelOption.Allocator, UnpooledByteBufferAllocator.Default)
.Group(group);
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.