apache / apache/ignite

DotNetComputeExecutor.java failing to resolveDotNetBinaryDir Ignite-3.1.0 Embedded

Open
#13,230 0 comments 0 reactions 0 assignees View on GitHub
ignite-3
Dominant language
Java
Stars
5.1k
Forks
1.9k
Avg merge
3d 2h
Merged PRs (30d)
46

Description

I am attempting to start ignite3 in embedded mode based off the instructions:
https://ignite.apache.org/docs/ignite3/latest/quick-start/embedded-mode

At runtime we are facing issue, where DotNetComputeExecutor.java is not able to resolve DotNetBinaryDir below is the stacktrace of the error
`Caused by: java.lang.ExceptionInInitializerError: Exception java.lang.NullPointerException [in thread "main"]
at org.apache.ignite.internal.compute.executor.platform.dotnet.DotNetComputeExecutor.resolveDotNetBinaryDir(DotNetComputeExecutor.java:350)
at org.apache.ignite.internal.compute.executor.platform.dotnet.DotNetComputeExecutor.resolveDotNetBinaryPath(DotNetComputeExecutor.java:340)
at org.apache.ignite.internal.compute.executor.platform.dotnet.DotNetComputeExecutor.(DotNetComputeExecutor.java:59)
at org.apache.ignite.internal.compute.executor.ComputeExecutorImpl.setPlatformComputeTransport(ComputeExecutorImpl.java:111)
at org.apache.ignite.internal.app.IgniteImpl.(IgniteImpl.java:1312)
at org.apache.ignite.internal.app.IgniteServerImpl.doStartAsync(IgniteServerImpl.java:392)
at org.apache.ignite.internal.util.StripedVersatileReadWriteLock.lambda$inWriteLockAsync$2(StripedVersatileReadWriteLock.java:207)`

**Specifications:**

- Java 21 compile and runtime
- Ignite v3.1.0
- Linux 4.18.0-305.3.1.el8_4.x86_64

**Gridgain** confirm that there is an issue with identifying the dotnet path. Unfortunately, there is no way to configure said path.
As a workaround, following the instructions were shared:
**If embedding inside a Spring Boot app is required, change the packaging so Ignite jars are not in BOOT-INF/lib:**

- Build as a plain jar with a Class-Path manifest entry pointing at an external lib/ directory containing the Ignite jars and a sibling dotnet/ directory; or

- Use spring-boot-maven-plugin with ZIP + PropertiesLauncher and loader.path pointing at extracted external libraries.

Gridgain filed a ticket with their engineering team, But also mentioned that the fix will be delivered in Gridgain9, not in Apache Ignite 3 since they don’t control AI release process.

Can we have a timeline for the fix in Apache Ignite 3 ?

Additional interesting fact, that startup succeed just by the presence of directory, it doesnt care if dotnet binary exist or not.
We are still in process of running tests to verify further impact on the functionality.

Contributor guide

Open the contributing guide

Research direction

Reproduce embedded Ignite 3.1.0 startup with Java 21 and inspect DotNetComputeExecutor.java at resolveDotNetBinaryPath and resolveDotNetBinaryDir, using the provided stack trace as the entry point. Verify how packaging and the presence of the dotnet directory affect startup; done means embedded startup no longer fails with the reported NullPointerException and the behavior is covered by verification.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
distributed-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.