Skip to content

Fix: Add epoll native transport for linux-aarch_64#214

Merged
BulkBeing merged 1 commit intomainfrom
fix-epoll-deps-aarch64
Mar 25, 2026
Merged

Fix: Add epoll native transport for linux-aarch_64#214
BulkBeing merged 1 commit intomainfrom
fix-epoll-deps-aarch64

Conversation

@BulkBeing
Copy link
Copy Markdown
Contributor

Problem

When running Numaflow UDF containers aarch64 platforms, the container crashes on startup with:

  DEBUG io.netty.channel.epoll.Epoll -- Epoll support is not available: could not load a native library: netty_transport_native_epoll_aarch_64
  Exception in thread "main" java.lang.UnsatisfiedLinkError: failed to load the required native library
          at io.netty.channel.epoll.Epoll.ensureAvailability(Epoll.java:90)
          at io.netty.channel.epoll.EpollIoHandler.<clinit>(EpollIoHandler.java:62)
          at io.netty.channel.epoll.EpollEventLoopGroup.<init>(EpollEventLoopGroup.java:123)
          at io.netty.channel.epoll.EpollEventLoopGroup.<init>(EpollEventLoopGroup.java:110)
          at io.netty.channel.epoll.EpollEventLoopGroup.<init>(EpollEventLoopGroup.java:87)
          at io.numaproj.numaflow.shared.GrpcServerUtils.createEventLoopGroup(GrpcServerUtils.java:63)
          at io.numaproj.numaflow.shared.GrpcServerWrapper.createServer(GrpcServerWrapper.java:166)
          at io.numaproj.numaflow.shared.GrpcServerWrapper.<init>(GrpcServerWrapper.java:40)
          at io.numaproj.numaflow.sinker.Server.<init>(Server.java:46)
          at io.numaproj.numaflow.sinker.Server.<init>(Server.java:33)

Root Cause

GrpcServerUtils.createEventLoopGroup() falls through to new EpollEventLoopGroup() on any non-macOS platform. This requires the Netty epoll JNI native library (.so) to be on the classpath. The SDK ships netty-transport-native-epoll with the linux-x86_64 classifier but not linux-aarch_64.

Signed-off-by: Sreekanth <prsreekanth920@gmail.com>
@BulkBeing BulkBeing requested a review from yhl25 March 24, 2026 03:41
@codecov
Copy link
Copy Markdown

codecov bot commented Mar 24, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
⚠️ Please upload report for BASE (main@35d5203). Learn more about missing BASE report.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #214   +/-   ##
=======================================
  Coverage        ?   60.79%           
  Complexity      ?      561           
=======================================
  Files           ?      155           
  Lines           ?     3584           
  Branches        ?      254           
=======================================
  Hits            ?     2179           
  Misses          ?     1225           
  Partials        ?      180           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@BulkBeing BulkBeing marked this pull request as ready for review March 24, 2026 03:46
@BulkBeing BulkBeing merged commit e7a0f8a into main Mar 25, 2026
5 checks passed
@BulkBeing BulkBeing deleted the fix-epoll-deps-aarch64 branch March 25, 2026 01:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants