Skip to content

[CELEBORN-2258][FOLLOWUP] Use IoHandlerFactories for EventLoopGroups to replace deprecated transport-specific event loop groups#3669

Closed
SteNicholas wants to merge 1 commit into
apache:mainfrom
SteNicholas:CELEBORN-2258
Closed

[CELEBORN-2258][FOLLOWUP] Use IoHandlerFactories for EventLoopGroups to replace deprecated transport-specific event loop groups#3669
SteNicholas wants to merge 1 commit into
apache:mainfrom
SteNicholas:CELEBORN-2258

Conversation

@SteNicholas
Copy link
Copy Markdown
Member

What changes were proposed in this pull request?

Use IoHandlerFactories for EventLoopGroups to replace deprecated transport-specific event loop groups.

Backport: apache/spark#52719.

Why are the changes needed?

Netty 4.2 introduces some new APIs, and deprecates some old APIs. As part of your migration to Netty 4.2, we encourage you to look through your code base for opportunities to clean up any use of deprecated APIs.

  • IoHandlerFactories for EventLoopGroups

All transport-specific event loop groups, such as NioEventLoopGroup, have been deprecated. Integrators should now instead pass a transport-specific IoHandlerFactory to a MultiThreadedEventLoopGroup constructor.

Therefore, Netty 4.2 upgrade could follow the best practices from https://netty.io/wiki/netty-4.2-migration-guide.html#new-best-practices.

Does this PR resolve a correctness bug?

No.

Does this PR introduce any user-facing change?

No.

How was this patch tested?

CI.

@SteNicholas
Copy link
Copy Markdown
Member Author

SteNicholas commented Apr 21, 2026

Ping @pan3793, @RexXiong, @cxzl25.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates Celeborn’s Netty event loop creation utility to follow Netty 4.2’s recommended approach, replacing deprecated transport-specific *EventLoopGroup implementations with IoHandlerFactory + MultiThreadIoEventLoopGroup.

Changes:

  • Replace NioEventLoopGroup / EpollEventLoopGroup / KQueueEventLoopGroup instantiation with MultiThreadIoEventLoopGroup and transport-specific *IoHandler.newFactory().
  • Preserve the existing “conflict avoid chooser” path for NIO by using the MultiThreadIoEventLoopGroup constructor that accepts an EventExecutorChooserFactory.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread common/src/main/java/org/apache/celeborn/common/network/util/NettyUtils.java Outdated
…to replace deprecated transport-specific event loop groups
@SteNicholas
Copy link
Copy Markdown
Member Author

Merged to main(v0.7.0).

akpatnam25 pushed a commit to akpatnam25/incubator-celeborn that referenced this pull request May 15, 2026
…to replace deprecated transport-specific event loop groups

### What changes were proposed in this pull request?

Use IoHandlerFactories for EventLoopGroups to replace deprecated transport-specific event loop groups.

Backport: apache/spark#52719.

### Why are the changes needed?

Netty 4.2 introduces some new APIs, and deprecates some old APIs. As part of your migration to Netty 4.2, we encourage you to look through your code base for opportunities to clean up any use of deprecated APIs.

- **IoHandlerFactories for EventLoopGroups**

All transport-specific event loop groups, such as `NioEventLoopGroup`, have been deprecated. Integrators should now instead pass a transport-specific `IoHandlerFactory` to a `MultiThreadedEventLoopGroup` constructor.

Therefore, Netty 4.2 upgrade could follow the best practices from https://netty.io/wiki/netty-4.2-migration-guide.html#new-best-practices.

### Does this PR resolve a correctness bug?

No.

### Does this PR introduce _any_ user-facing change?

No.

### How was this patch tested?

CI.

Closes apache#3669 from SteNicholas/CELEBORN-2258.

Authored-by: SteNicholas <programgeek@163.com>
Signed-off-by: SteNicholas <programgeek@163.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants