You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Anton Vinogradov (Jira)" <ji...@apache.org> on 2026/07/15 15:44:00 UTC

[jira] [Commented] (IGNITE-28893) Calcite. Missing joou runtime dependency halts node startup in release package and C++ tests

    [ https://issues.apache.org/jira/browse/IGNITE-28893?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18096528#comment-18096528 ] 

Anton Vinogradov commented on IGNITE-28893:
-------------------------------------------

[Ignite PR Checker|https://ignite-pr-checker.is-a.dev/?pr=13372] verdict for PR 13372 · RunAll build [9210086|https://ci2.ignite.apache.org/build/9210086] · 147 suites ran, 0 reused

(?) *1 suite(s) ran fewer tests than on master* (tests that never ran can't fail):
- PDS 1: 111 tests vs 335 on master (*-67%*)

(/) No test blockers otherwise; 29 pre-existing/flaky filtered out.

> Calcite. Missing joou runtime dependency halts node startup in release package and C++ tests
> --------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-28893
>                 URL: https://issues.apache.org/jira/browse/IGNITE-28893
>             Project: Ignite
>          Issue Type: Task
>            Reporter: Anton Vinogradov
>            Assignee: Anton Vinogradov
>            Priority: Major
>             Fix For: 2.19
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> The Calcite upgrade from 1.40 to 1.42 changed only the version properties in modules/calcite/pom.xml.
> However, calcite-core 1.42 declares a new runtime dependency, org.jooq:joou-java-6, which
> calcite-core 1.40 did not have. It was not added to the module's dependency list.
> Why that matters:
> The copy-libs execution of maven-dependency-plugin in parent/pom.xml copies only DIRECT dependencies
> into target/libs (excludeTransitive is true). This is why modules/calcite/pom.xml already declares
> calcite's runtime dependencies explicitly - guava, failureaccess, janino, avatica-core, jackson,
> json-path, reflections. joou was not declared, so it never lands in modules/calcite/target/libs.
> Two consumers are built from target/libs:
> 1. The release package. The assembly descriptor (assembly/dependencies-apache-ignite.xml) maps each
>    optional module's target/libs into libs/optional/${module.artifactId}. So libs/optional/ignite-calcite
>    ships without joou.
> 2. The exploded classpath of the embedded dev node, assembled by CreateIgniteHomeClasspath() in
>    modules/platforms/cpp/core/src/jni/os/\{linux,win}/utils.cpp, which appends each module's
>    target/libs jars. This is the classpath the C++ tests boot their JVM node with.
> Effect:
> A node with the Calcite query engine enabled dies during startup:
>     java.lang.NoClassDefFoundError: org/joou/ULong
>     Critical system error detected ... failureCtx=FailureContext [type=SYSTEM_WORKER_TERMINATION,
>         err=java.lang.NoClassDefFoundError: org/joou/ULong]
>     JVM will be halted immediately due to the failure
> Because StopNodeOrHaltFailureHandler halts the JVM from inside the hosting process, the C++ test
> binary that started the node is killed along with it, and its remaining tests never run.
> In CI this shows up in the Platform C++ CMake suites: the only C++ configuration that enables the
> Calcite engine is odbc-test/config/queries-default.xml, so the ODBC binary dies at its first
> node-starting test (ConnectionTestSuite: TestConnectionRestore, which boots queries-test.xml). The
> suite reports 595 tests instead of 1046 with zero failures - core-test 458 and thin-client-test 130
> complete, odbc-test contributes only 7 - and the "test count dropped" guard turns the suite red.
> Java test suites are unaffected because Surefire resolves the full transitive classpath from Maven.
> Fix: declare org.jooq:joou-java-6 explicitly in modules/calcite/pom.xml, so it is copied into
> target/libs and reaches both the release package and the exploded test classpath.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)