Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -158,9 +158,11 @@ Parameters:
- ADOPT_OPEN_JDK11
- ADOPT_OPEN_JDK17
- ADOPT_OPEN_JDK21
- ADOPT_OPEN_JDK25
- ADOPT_OPEN_JDK11_ARM
- ADOPT_OPEN_JDK17_ARM
- ADOPT_OPEN_JDK21_ARM
- ADOPT_OPEN_JDK25_ARM
Comment on lines +161 to +165

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Find all CFN templates exposing a JDK parameter and show which ones are missing JDK25.
fd -e yaml -e yml | xargs rg -l -n 'ADOPT_OPEN_JDK' 2>/dev/null | while read -r f; do
  echo "=== $f ==="
  rg -n 'ADOPT_OPEN_JDK25|ADOPT_OPEN_JDK21|ADOPT_OPEN_JDK17' "$f"
done

Repository: wso2/testgrid

Length of output: 1185


Update related CFN templates to include JDK25 in their AllowedValues.

The JDK25 additions to this file are correct, but at least four related templates still lack JDK25 as an option:

  • jobs/intg-test-resources/update2-releases/wso2-u2-intg-test-cfn.yaml (has JDK17, JDK21 only)
  • jobs/intg-test-resources/update2-releases/wso2-u2-is-intg-test-cfn.yaml (has JDK17, JDK21 only)
  • jobs/intg-test-resources/master-branch-releases/wso2-master-intg-test-cfn.yaml (has JDK17 only)
  • jobs/e2e-test-resources/wso2-is-e2e-test-cfn.yaml (has JDK17, JDK21 only)

Add JDK25 and JDK25_ARM to all templates that define JDK options to maintain consistency across the test pipelines.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@jobs/intg-test-resources/master-branch-releases/wso2-master-is-intg-test-cfn.yaml`
around lines 161 - 165, Update the CFN templates that list JDK AllowedValues by
adding the two new symbols ADOPT_OPEN_JDK25 and ADOPT_OPEN_JDK25_ARM to each JDK
options list; specifically, locate the AllowedValues arrays that currently
contain ADOPT_OPEN_JDK17, ADOPT_OPEN_JDK21, and ARM variants in the templates
mentioned and append ADOPT_OPEN_JDK25 and ADOPT_OPEN_JDK25_ARM so all JDK option
lists include the new JDK25 entries consistently (ensure the same
ordering/format as other entries and validate template YAML syntax after edits).

- TEMURIN_OPEN_JDK8
MavenVersion:
Type: String
Expand Down Expand Up @@ -377,6 +379,13 @@ Resources:
apt install -y mysql-client
echo "Installing MariaDB database client"
apt install -y mariadb-client
echo "Installing Oracle sqlplus64 tool"
curl -fSL https://yum.oracle.com/repo/OracleLinux/OL8/oracle/instantclient/x86_64/getPackage/oracle-instantclient19.30-basic-19.30.0.0.0-1.el8.x86_64.rpm -o /tmp/oracle-instantclient-basic.rpm
curl -fSL https://yum.oracle.com/repo/OracleLinux/OL8/oracle/instantclient/x86_64/getPackage/oracle-instantclient19.30-sqlplus-19.30.0.0.0-1.el8.x86_64.rpm -o /tmp/oracle-instantclient-sqlplus.rpm
apt-get install -y alien libaio1t64
ln -sf /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/x86_64-linux-gnu/libaio.so.1
alien --install --scripts /tmp/oracle-instantclient-basic.rpm
alien --install --scripts /tmp/oracle-instantclient-sqlplus.rpm
Comment on lines +382 to +388

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🌐 Web query:

Does Oracle publish aarch64 RPMs for oracle-instantclient 19.30 under yum.oracle.com OL8, and is the path "/repo/OracleLinux/OL8/oracle/instantclient/aarch64/getPackage" correct?

💡 Result:

No, Oracle does not publish aarch64 RPMs for oracle-instantclient 19.30 under yum.oracle.com OL8. The official repository at https://yum.oracle.com/repo/OracleLinux/OL8/oracle/instantclient/aarch64/index.html lists versions up to 19.28 (e.g., oracle-instantclient19.28-basic-19.28.0.0.0-1.el8.aarch64.rpm as of August 2025), but no 19.30 RPMs. While Oracle offers Version 19.30 ZIP downloads for Linux ARM (aarch64) on their download page, RPMs for that specific version are not available in the yum.oracle.com OL8 repository. The path "/repo/OracleLinux/OL8/oracle/instantclient/aarch64/getPackage" is not correct; the standard repository index is at "/repo/OracleLinux/OL8/oracle/instantclient/aarch64/index.html", and individual RPMs are directly accessible (e.g., oracle-instantclient19.28-basic-19.28.0.0.0-1.el8.aarch64.rpm), but no "getPackage" endpoint is documented or listed.

Citations:


Ubuntu-ARM will fail: x86_64 RPMs are hard-coded in a branch that also handles Ubuntu-ARM.

This block runs under if [[ ${OperatingSystem} == "Ubuntu" ]] || [[ ${OperatingSystem} == "Ubuntu-ARM" ]] (line 366), but:

  • Lines 383–384 download ...x86_64.rpm Oracle Instant Client packages.
  • Line 386 creates a symlink under /usr/lib/x86_64-linux-gnu/, which does not exist on aarch64 (it is /usr/lib/aarch64-linux-gnu/).
  • alien --install on an x86_64 RPM on an aarch64 host will fail — Oracle does not publish 19.30 aarch64 RPMs in yum.oracle.com OL8; only versions up to 19.28 are available for aarch64.

Also, curl -fSL has no retry/backoff; a transient 5xx from yum.oracle.com aborts the entire user-data and the instance never signals CFN (see line 602). The URL pins 19.30 — a future removal of that exact point release from Oracle's mirror would break all new stacks.

🛠️ Suggested fix sketch: branch on arch (using 19.28 for aarch64), add retries, and centralize the version
                   echo "Installing Oracle sqlplus64 tool"
+                  OIC_VERSION_X86="19.30.0.0.0-1.el8"
+                  OIC_VERSION_ARM="19.28.0.0.0-1.el8"
+                  if [[ ${OperatingSystem} == "Ubuntu-ARM" ]]; then
+                    OIC_VERSION="${OIC_VERSION_ARM}"; OIC_ARCH="aarch64"; LIB_DIR="/usr/lib/aarch64-linux-gnu"
+                  else
+                    OIC_VERSION="${OIC_VERSION_X86}"; OIC_ARCH="x86_64";  LIB_DIR="/usr/lib/x86_64-linux-gnu"
+                  fi
+                  BASE_URL="https://yum.oracle.com/repo/OracleLinux/OL8/oracle/instantclient/${OIC_ARCH}/getPackage"
+                  curl -fSL --retry 5 --retry-delay 5 \
+                    "${BASE_URL}/oracle-instantclient19.$(echo ${OIC_VERSION} | cut -d. -f1,2)-basic-${OIC_VERSION}.${OIC_ARCH}.rpm"   -o /tmp/oracle-instantclient-basic.rpm
+                  curl -fSL --retry 5 --retry-delay 5 \
+                    "${BASE_URL}/oracle-instantclient19.$(echo ${OIC_VERSION} | cut -d. -f1,2)-sqlplus-${OIC_VERSION}.${OIC_ARCH}.rpm" -o /tmp/oracle-instantclient-sqlplus.rpm
+                  apt-get install -y alien libaio1t64
+                  ln -sf "${LIB_DIR}/libaio.so.1t64" "${LIB_DIR}/libaio.so.1"
+                  alien --install --scripts /tmp/oracle-instantclient-basic.rpm
+                  alien --install --scripts /tmp/oracle-instantclient-sqlplus.rpm

Alternatively, for Ubuntu-ARM, consider using ZIP-based installation (oracle-instantclient-19.30-for-linux-aarch64.zip) rather than RPM conversion, as Oracle explicitly provides aarch64 ZIP builds for 19.30.

Note: libaio1t64 only exists on Ubuntu 24.04+. If older Ubuntu versions are still selectable via OSVersion, guard that package name accordingly (use libaio1 on 22.04 and earlier).

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
echo "Installing Oracle sqlplus64 tool"
curl -fSL https://yum.oracle.com/repo/OracleLinux/OL8/oracle/instantclient/x86_64/getPackage/oracle-instantclient19.30-basic-19.30.0.0.0-1.el8.x86_64.rpm -o /tmp/oracle-instantclient-basic.rpm
curl -fSL https://yum.oracle.com/repo/OracleLinux/OL8/oracle/instantclient/x86_64/getPackage/oracle-instantclient19.30-sqlplus-19.30.0.0.0-1.el8.x86_64.rpm -o /tmp/oracle-instantclient-sqlplus.rpm
apt-get install -y alien libaio1t64
ln -sf /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/x86_64-linux-gnu/libaio.so.1
alien --install --scripts /tmp/oracle-instantclient-basic.rpm
alien --install --scripts /tmp/oracle-instantclient-sqlplus.rpm
echo "Installing Oracle sqlplus64 tool"
OIC_VERSION_X86="19.30.0.0.0-1.el8"
OIC_VERSION_ARM="19.28.0.0.0-1.el8"
if [[ ${OperatingSystem} == "Ubuntu-ARM" ]]; then
OIC_VERSION="${OIC_VERSION_ARM}"; OIC_ARCH="aarch64"; LIB_DIR="/usr/lib/aarch64-linux-gnu"
else
OIC_VERSION="${OIC_VERSION_X86}"; OIC_ARCH="x86_64"; LIB_DIR="/usr/lib/x86_64-linux-gnu"
fi
BASE_URL="https://yum.oracle.com/repo/OracleLinux/OL8/oracle/instantclient/${OIC_ARCH}/getPackage"
curl -fSL --retry 5 --retry-delay 5 \
"${BASE_URL}/oracle-instantclient19.$(echo ${OIC_VERSION} | cut -d. -f1,2)-basic-${OIC_VERSION}.${OIC_ARCH}.rpm" -o /tmp/oracle-instantclient-basic.rpm
curl -fSL --retry 5 --retry-delay 5 \
"${BASE_URL}/oracle-instantclient19.$(echo ${OIC_VERSION} | cut -d. -f1,2)-sqlplus-${OIC_VERSION}.${OIC_ARCH}.rpm" -o /tmp/oracle-instantclient-sqlplus.rpm
apt-get install -y alien libaio1t64
ln -sf "${LIB_DIR}/libaio.so.1t64" "${LIB_DIR}/libaio.so.1"
alien --install --scripts /tmp/oracle-instantclient-basic.rpm
alien --install --scripts /tmp/oracle-instantclient-sqlplus.rpm
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@jobs/intg-test-resources/master-branch-releases/wso2-master-is-intg-test-cfn.yaml`
around lines 382 - 388, The Ubuntu/Ubuntu-ARM branch installs x86_64 Oracle RPMs
and symlinks /usr/lib/x86_64-linux-gnu which will break on aarch64; fix by
detecting architecture (e.g., check uname -m) inside the OperatingSystem
conditional and: for aarch64 use the aarch64-specific installer (prefer the
oracle-instantclient-19.28 aarch64 RPM/ZIP or the 19.30 aarch64 ZIP) and avoid
alien+RPM conversion when aarch64 ZIP is available; for x86_64 keep the RPM flow
but move the Oracle version into a single variable (e.g., INSTANTCLIENT_VERSION)
and add curl retries/backoff (e.g., loop with sleep and limited attempts) for
the URLs referenced in the curl commands, adjust the symlink target to
/usr/lib/aarch64-linux-gnu for aarch64 (or create logic that chooses the correct
lib dir based on architecture), and conditionally install the correct libaio
package name (libaio1t64 vs libaio1) based on OSVersion to prevent
package-not-found failures.

echo "Installing MSSQL database client"
curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
Expand All @@ -395,6 +404,7 @@ Resources:
wget https://packages.microsoft.com/config/rhel/9/mssql-server-2022.repo -O /etc/yum.repos.d/mssql-server-2022.repo
wget https://packages.microsoft.com/config/rhel/9/prod.repo -O /etc/yum.repos.d/msprod.repo
ACCEPT_EULA=Y yum install -y mssql-tools unixODBC-devel
yum -y install sqlplus64

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Sanity-check: confirm "sqlplus64" isn't referenced anywhere else in the repo as a yum/zypper package target (indicating precedent).
rg -n --no-heading 'sqlplus64'

Repository: wso2/testgrid

Length of output: 584


🏁 Script executed:

cat -n jobs/intg-test-resources/master-branch-releases/wso2-master-is-intg-test-cfn.yaml | sed -n '375,475p'

Repository: wso2/testgrid

Length of output: 7559


🌐 Web query:

sqlplus64 yum package Rocky Linux RHEL

💡 Result:

There is no "sqlplus64" package available via yum in the standard Rocky Linux or EPEL repositories. sqlplus (the 64-bit binary is sqlplus, located in /usr/lib/oracle/VERSION/client64/bin/sqlplus after installation) is provided by Oracle Instant Client. Oracle Instant Client RPMs are officially supported only on Oracle Linux, but since Rocky Linux is RHEL-compatible, the RPMs typically work. The recommended method is to download RPMs from Oracle and install locally with dnf (Rocky 8/9 uses dnf, alias for yum). Steps for Rocky Linux 9 (adjust for version 8): 1. Install prerequisites: sudo dnf install libaio 2. Download latest Oracle Instant Client RPMs from https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html (e.g., oracle-instantclient23-basic, oracle-instantclient23-sqlplus for version 23) 3. Install: sudo dnf install oracle-instantclient23-basic-23.x.x.x.x86_64.rpm oracle-instantclient23-sqlplus-23.x.x.x.x86_64.rpm 4. Add to PATH: export PATH=/usr/lib/oracle/23/client64/bin:$PATH (add to ~/.bashrc) To use Oracle's yum repo (unofficial on Rocky): 1. Download and install oracle-release-el9 or oracle-instantclient-release-el9 RPM from yum.oracle.com/repo/OracleLinux/OL9/ 2. sudo dnf install oracle-instantclient-basic oracle-instantclient-sqlplus No native sqlplus64 package exists in Rocky/RHEL base or EPEL; Oracle provides it exclusively. ZIP installation is also possible without RPMs.

Citations:


🌐 Web query:

sqlplus64 zypper SUSE Linux package

💡 Result:

There is no official "sqlplus64" package available in standard SUSE Linux (SLES or openSUSE) repositories via zypper. sqlplus64 refers to the 64-bit Oracle SQLPlus binary from Oracle Instant Client. SUSE Linux does not provide Oracle Instant Client in its official repositories. Oracle provides RPMs primarily for Oracle Linux (using yum/dnf), but ZIP files are available for any RPM-based distro like SUSE. Recommended installation methods: 1. Download Oracle Instant Client ZIP from official Oracle site (https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html): - instantclient-basic-linux.x64-[version].zip - instantclient-sqlplus-linux.x64-[version].zip Unzip to /opt/oracle, e.g.: sudo mkdir -p /opt/oracle cd /opt/oracle sudo unzip /path/to/instantclient-basic-linux.x64-.zip sudo unzip /path/to/instantclient-sqlplus-linux.x64-*.zip Set environment variables in ~/.bashrc: export LD_LIBRARY_PATH=/opt/oracle/instantclient_[version]:$LD_LIBRARY_PATH export PATH=/opt/oracle/instantclient_[version]:$PATH source ~/.bashrc Verify: sqlplus -v Install libaio1 prerequisite: sudo zypper install libaio1 2. Use community openSUSE Build Service repos (e.g., home:ecsos or home:davidnichols): sudo zypper addrepo https://download.opensuse.org/repositories/home:/ecsos:/monitoring/15.6/ home:ecsos sudo zypper refresh sudo zypper install oracle-instantclient12.1 oracle-instantclient12.1-sqlplus (Adjust repo/version for your SUSE/openSUSE release; these are unofficial and may be outdated.) Oracle officially supports SUSE Linux Enterprise Server 15 for full Oracle Database installs (requires specific packages like libaio1), but Instant Client is easiest via ZIP. No native sqlplus/sqlplus64 package exists; Oracle tools are proprietary.

Citations:


Fix sqlplus64 package name across Rocky/RHEL/SUSE blocks; it does not exist in any yum or zypper repository.

sqlplus64 is not a valid package in Rocky/RHEL yum repositories, EPEL, or SUSE zypper. Oracle ships SQL*Plus as part of Oracle Instant Client (e.g., oracle-instantclient-sqlplus or oracle-instantclient-basic) exclusively via Oracle's own sources.

  • Line 407 (Rocky/SUSE block): yum -y install sqlplus64 will fail to find the package.
  • Line 443 (RHEL8/RHEL9 block): Same issue.
  • Line 464 (SUSE block): zypper install -y sqlplus64 will fail; SUSE does not have yum by default and does not carry Oracle Instant Client in standard repos.

The Ubuntu block (lines 382–388) demonstrates the correct approach: download .rpm files from yum.oracle.com and use alien to convert them. For Rocky/RHEL, download and install the .rpm files directly without alien. For SUSE, use the ZIP distribution from Oracle (no RPM available) and extract to a PATH location, or use zypper with community repositories if available.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@jobs/intg-test-resources/master-branch-releases/wso2-master-is-intg-test-cfn.yaml`
at line 407, The yum/zypper install commands using the nonexistent package name
"sqlplus64" must be replaced: for Rocky/RHEL blocks remove "yum -y install
sqlplus64" and instead download the appropriate Oracle Instant Client RPMs
(e.g., oracle-instantclient-basic and oracle-instantclient-sqlplus) from
yum.oracle.com and install them with rpm -Uvh (or dnf install ./<rpm>),
referencing the existing Ubuntu block's RPM download flow but without using
alien; for SUSE replace "zypper install -y sqlplus64" with obtaining the Oracle
Instant Client ZIP distribution, extract it into /opt/oracle/instantclient (or
similar), create the necessary symlinks and LD_LIBRARY_PATH entries, and ensure
the install steps are idempotent and use the same package names
(oracle-instantclient-basic, oracle-instantclient-sqlplus) where RPMs are
available.

yum -y install mysql
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
Expand Down Expand Up @@ -430,6 +440,7 @@ Resources:
wget https://packages.microsoft.com/config/rhel/9/prod.repo -O /etc/yum.repos.d/msprod.repo
fi
ACCEPT_EULA=Y yum install -y mssql-tools unixODBC-devel
yum -y install sqlplus64
yum -y install mysql
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
Expand All @@ -450,6 +461,7 @@ Resources:
if [[ ${OperatingSystem} == "SUSE" ]]; then
zypper install -y zip unzip
zypper install -y python-pip
zypper install -y sqlplus64
fi
if [[ ${OperatingSystem} == "RHEL9" ]] || [[ ${OperatingSystem} == "Rocky" ]]; then
pip install https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-py3-latest.tar.gz
Expand Down