From ae79618f12ec228286a0acc8b3da8433d999b21c Mon Sep 17 00:00:00 2001 From: Jiadong Bai Date: Mon, 4 May 2026 20:59:53 -0700 Subject: [PATCH 1/6] feat(build): bump Scala/Java services to Java 17 LTS Java 11 premier support has ended and the temurin:11-* base images accumulate fixable critical/high CVEs flagged by Docker Hub. Java 17 is an active LTS through Sep 2029 and unblocks libraries that already require 17+. - bin/*.dockerfile (8 services): build base sbtscala/scala-sbt:eclipse-temurin-jammy-11.0.17_8_1.9.3_2.13.11 -> ...-17.0.5_8_1.9.3_2.13.11; runtime eclipse-temurin:11-{jdk,jre}-jammy -> 17-{jdk,jre}-jammy. - computing-unit-master/worker: add ENV JDK_JAVA_OPTIONS="--add-opens= java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED" so Apache Arrow's off-heap memory module keeps working under Java 17's strong encapsulation. - .github/workflows/build.yml + build-and-push-images.yml: java-version 11 -> 17 (matrix and setup-java steps). - AGENTS.md: toolchain table. Refs discussion #4001. Closes #4937. --- .github/workflows/build-and-push-images.yml | 6 +++--- .github/workflows/build.yml | 19 ++++++++++++++----- .run/ComputingUnitMaster.run.xml | 3 +++ .run/ComputingUnitWorker.run.xml | 3 +++ AGENTS.md | 10 +++++++++- bin/access-control-service.dockerfile | 4 ++-- bin/computing-unit-master.dockerfile | 7 +++++-- bin/computing-unit-worker.dockerfile | 7 +++++-- bin/config-service.dockerfile | 4 ++-- bin/file-service.dockerfile | 4 ++-- bin/texera-web-application.dockerfile | 4 ++-- bin/workflow-compiling-service.dockerfile | 4 ++-- ...computing-unit-managing-service.dockerfile | 4 ++-- 13 files changed, 54 insertions(+), 25 deletions(-) diff --git a/.github/workflows/build-and-push-images.yml b/.github/workflows/build-and-push-images.yml index 19534787f8b..ae998c9a9ef 100644 --- a/.github/workflows/build-and-push-images.yml +++ b/.github/workflows/build-and-push-images.yml @@ -123,7 +123,7 @@ jobs: uses: actions/setup-java@v5 with: distribution: 'temurin' - java-version: 11 + java-version: 17 - name: Setup sbt launcher uses: sbt/setup-sbt@508b753e53cb6095967669e0911487d2b9bc9f41 # v1.1.22 @@ -325,7 +325,7 @@ jobs: uses: actions/setup-java@v5 with: distribution: 'temurin' - java-version: 11 + java-version: 17 - name: Setup sbt launcher uses: sbt/setup-sbt@508b753e53cb6095967669e0911487d2b9bc9f41 # v1.1.22 @@ -405,7 +405,7 @@ jobs: uses: actions/setup-java@v5 with: distribution: 'temurin' - java-version: 11 + java-version: 17 - name: Setup sbt launcher uses: sbt/setup-sbt@508b753e53cb6095967669e0911487d2b9bc9f41 # v1.1.22 diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 06be31230e8..39538ab1a76 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -144,11 +144,14 @@ jobs: strategy: matrix: os: [ubuntu-22.04] - java-version: [11] + java-version: [17] runs-on: ${{ matrix.os }} env: JAVA_OPTS: -Xms2048M -Xmx2048M -Xss6M -XX:ReservedCodeCacheSize=256M -Dfile.encoding=UTF-8 JVM_OPTS: -Xms2048M -Xmx2048M -Xss6M -XX:ReservedCodeCacheSize=256M -Dfile.encoding=UTF-8 + # Apache Arrow Java (java.nio) and Ehcache SizeOf (java.lang, java.util) + # reflect into java.base; JDK 17 strong encapsulation blocks them without --add-opens. + JDK_JAVA_OPTIONS: --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED services: postgres: image: postgres @@ -175,7 +178,7 @@ jobs: uses: actions/setup-java@v5 with: distribution: "temurin" - java-version: 11 + java-version: 17 - name: Create Databases # Must run before any sbt compile step: the build's JOOQ source # generators connect to texera_db while compiling. @@ -262,11 +265,14 @@ jobs: strategy: matrix: os: [ubuntu-22.04] - java-version: [11] + java-version: [17] runs-on: ${{ matrix.os }} env: JAVA_OPTS: -Xms2048M -Xmx2048M -Xss6M -XX:ReservedCodeCacheSize=256M -Dfile.encoding=UTF-8 JVM_OPTS: -Xms2048M -Xmx2048M -Xss6M -XX:ReservedCodeCacheSize=256M -Dfile.encoding=UTF-8 + # Apache Arrow Java (java.nio) and Ehcache SizeOf (java.lang, java.util) + # reflect into java.base; JDK 17 strong encapsulation blocks them without --add-opens. + JDK_JAVA_OPTIONS: --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED services: postgres: image: postgres @@ -293,7 +299,7 @@ jobs: uses: actions/setup-java@v5 with: distribution: "temurin" - java-version: 11 + java-version: 17 - name: Setup Python for Scala-Python integration tests uses: actions/setup-python@v6 with: @@ -370,6 +376,9 @@ jobs: env: JAVA_OPTS: -Xms2048M -Xmx2048M -Xss6M -XX:ReservedCodeCacheSize=256M -Dfile.encoding=UTF-8 JVM_OPTS: -Xms2048M -Xmx2048M -Xss6M -XX:ReservedCodeCacheSize=256M -Dfile.encoding=UTF-8 + # Apache Arrow Java (java.nio) and Ehcache SizeOf (java.lang, java.util) + # reflect into java.base; JDK 17 strong encapsulation blocks them without --add-opens. + JDK_JAVA_OPTIONS: --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED services: # Each platform service transitively depends on DAO, which runs JOOQ # code generation at compile time and needs the live texera schema. @@ -398,7 +407,7 @@ jobs: uses: actions/setup-java@v5 with: distribution: "temurin" - java-version: 11 + java-version: 17 - name: Setup sbt launcher uses: sbt/setup-sbt@508b753e53cb6095967669e0911487d2b9bc9f41 # v1.1.22 - uses: coursier/cache-action@90c37294538be80a558fd665531fcdc2b467b475 # v8.1.0 diff --git a/.run/ComputingUnitMaster.run.xml b/.run/ComputingUnitMaster.run.xml index 5ffffb79e88..094518362bc 100644 --- a/.run/ComputingUnitMaster.run.xml +++ b/.run/ComputingUnitMaster.run.xml @@ -21,6 +21,9 @@ under the License.