Skip to content

Improve s390x Compatibility for UI Builds and Testcontainers Tests - #5268

Open
sudip-ibm wants to merge 4 commits into
apache:mainfrom
linux-on-ibm-z:testcontainers-util
Open

sudip-ibm wants to merge 4 commits into
apache:mainfrom
linux-on-ibm-z:testcontainers-util

Conversation

@sudip-ibm

Copy link
Copy Markdown
Contributor

Makes Solr's UI build more reliable by handling missing configuration properties and avoiding unsupported source builds on s390x. Also adds a common check for Docker-based tests to ensure the required container images support the current architecture, skipping tests when they don't.

Description

Please provide a short description of the changes you're making with this pull request.

Solution

Please provide a short description of the approach taken to implement your solution.
We appreciate transparent disclosure of significant AI Coding assistants usage.

Tests

Please describe the tests you've developed or run to confirm this patch implements the feature or solves the problem.

Checklist

Please review the following and check all that apply:

  • I have reviewed the guidelines for How to Contribute and my code conforms to the standards described there to the best of my ability.
  • I have created a Jira issue and added the issue ID to my pull request title.
  • I have given Solr maintainers access to contribute to my PR branch. (optional but recommended, not available for branches on forks living under an organisation)
  • I have developed this patch against the main branch.
  • I have run ./gradlew check.
  • I have added tests for my changes.
  • I have added documentation for the Reference Guide
  • I have added a changelog entry for my change

- solr-ui.gradle: when gradle.properties is absent or lacks solr.ui.commit,
  load the pinned commit and checksum together from the tracked
  gradle/template.gradle.properties, so a checksum is never paired with a
  commit it does not belong to.
- solr-ui.gradle: fail buildUiFromSource early on s390x with a clear message,
  since Compose Desktop has no native libraries for it. The published
  platform-independent wasm artifact should be used instead.
- KafkaContainerRule, S3MockContainerRule: on s390x, try to pull the image
  for linux/s390x and skip the test if it has no such variant, instead of
  failing.
"Building the Admin UI from source is not supported on s390x; " +
"drop -Psolr.ui.buildFromSource=true to use the published artifact."
)
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

The published wasm artifact is platform independent, so use that instead.

I'm confused; how does this change result in "use that instead" for s390x?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

This change doesn't actually switch to the published artifact; it only throws an exception with a message explaining what the user should do.

Currently, CI is picking up an older properties file that causes it to attempt building the Admin UI from source on both s390x and x86. The build succeeds on x86, but it isn't supported on s390x because the required native libraries aren't available for that architecture.

@dsmiley

dsmiley commented Oct 31, 2026

Copy link
Copy Markdown
Contributor

Shouldn't this update TikaServerContainerRule as well?

@nick-boss-tech

Copy link
Copy Markdown
Contributor

Hi @sudip-ibm,

🤖 AI text below 🤖 (reviewed by Nick Shanin)

I prepared a follow-up patch on top of this PR to refresh the Testcontainers dependency locks, preserve unrelated pull errors/timeouts/interruptions as test failures, and apply configured image substitution before probing s390x support.

Validation (Docker integration unverified)

At a18d913f29, validation on Linux aarch64 passed: the daemon-free helper tests (9/9), API serialization tests (13/13), framework compilation, tidy, changelog validation, and check -x test. A synthetic mutation restoring the previous error handling and image selection produced exactly the seven expected test failures.

Docker and Podman are unavailable in my validation environment, so DeleteByQueryToIdTest and S3OutputStreamTest were skipped and remain unverified. All of the non-Docker validation listed above passed; there is no native s390x validation yet.

The tested head does not yet include the Tika rule migration or clarification of the UI source-build comment raised in the review.

To take these changes on top of the current PR head:

git switch testcontainers-util
git fetch https://github.com/nick-boss-tech/solr.git pr-5268-container-platform-fixes
git merge --ff-only a18d913f2908f0ddf244b43384bd3caecbe9bc6e

@dsmiley dsmiley left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Nice; looks good. I'm glad that the s390x reference is centralized to one point (I can accept this). Thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants