Gabriel39 opened a new pull request, #69420:
URL: https://github.com/apache/doris/pull/69420
### What problem does this PR solve?
Azure file access and repository creation can fail with an
`IoHandlerFactory` loader-constraint violation when Reactor Netty selects
io_uring. The Azure filesystem plugin bundles Netty core but omits its optional
io_uring transport, so the child-first loader obtains the transport from the FE
host while retaining its own core interfaces.
Bundle BOM-managed io_uring classes and Linux x86_64/aarch64 native
libraries with the Azure plugin. This keeps both Java types and native
resources local to the plugin without changing the global class-loading policy.
Add isolated-loader tests using the Maven runtime dependency set, rather
than the full Surefire classpath. They check transport type identity, both
packaged native resources, and event-loop task execution and shutdown after
host-side initialization. Regenerate the runtime classpath on partial
build-cache restores so tests never consume a missing or stale local path list.
### Release note
Fix Azure file access and repository creation failures caused by mixed
host/plugin Netty classes when io_uring is selected.
### Check List (For Author)
- Test:
- [x] Unit test
- [x] Manual test
- Behavior changed:
- [x] Fix dependency packaging; no SQL or configuration changes.
- Does this need documentation?
- [x] No.
Validation:
- Reproduced the original `IoHandlerFactory` loader-constraint violation
using the actual directory-loaded Azure plugin from build `6ca5ef36d8`, without
contacting Azure.
- New tests fail before the dependency fix; all 94 Azure module unit tests
pass afterward, including the three isolated-loader tests.
- Confirmed the assembled Azure plugin zip contains the io_uring classes and
both native classifier jars. Loaded that actual bundle through the directory
plugin manager and successfully executed an event-loop task.
- FE build/package and final FE Checkstyle pass. The FE-only local build
bypassed an unrelated preflight check for missing BE native archives; no
build-script changes are included.
- Maven validates the cache execution configuration; `git diff --check`
passes.
The local kernel denies io_uring ring creation, so event-loop execution
validates automatic fallback on this host. The tests also exercise the native
path when it is available. Full Azure credential-backed regression suites and
an io_uring-enabled host run remain for CI.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]