Repository navigation
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
Limits the Ubuntu ARM64 and Rocky Linux PR build/test commands to two Gradle workers, with
--rerun-tasks --info --stacktrace. The rerun option forces scheduled tasks, including tests and their dependencies, to execute on each validation run instead of reusing up-to-date or cached task outputs. This also applies to Rocky Linux's separate RocksDB test command. Dependency downloads remain cached. All build jobs retain their 60-minute timeout; macOS and Debian keep their existing commands for comparison.Framework test JVMs running under
CI=truewrite fatal-error reports to the task's temporary directory. A shared failure-only action uploads test results, HTML reports, test application logs, andhs_err_pid*.logfiles, and prints available memory, process limits, and cgroup memory counters. Diagnostic artifacts have a seven-day retention period and a pinned upload-artifact version.Fixes a demonstrated race in
ComputeRewardTest.query(): after the initial reward query succeeds, the test shuts down the reward executor and asserts that it terminates within 10 seconds before mutating or closing its store. The existing reward and expected-error assertions remain in place.Why are these changes required?
In #7018, the Ubuntu test worker exited with code 1 and the Rocky Linux test worker exited with code 134. All 34 Keccak tests passed in both jobs, but the available logs did not establish the process-exit cause. This draft tests whether lower concurrency improves stability and preserves evidence for the next failure. It does not claim that an OOM has been confirmed or fixed.
Related runs: Ubuntu, Rocky Linux.
The Debian failure in this PR exposed a concrete exit-code-1 cause: the test closed
RewardViStorewhile the background task was still calculating its Merkle root. The resultingDBException: ClosedreachedExitManagerand triggeredSystem.exit(1), even though the test's synchronous assertion passed. Awaiting executor termination removes that race so CI can continue investigating the separate, still-unexplained exit code 134.This PR has been tested by:
CI=true ./gradlew checkstyleMain checkstyleTest test --no-daemon --max-workers=2passed in 17m 35s (3,982 tests passed, 30 skipped; no failures/errors). Validation used a regular clone with identical changed files because the repository's Git-properties plugin cannot read a linked worktree.pr-build.yml; composite-action YAML and shell syntax checks passed.timeout-minutes: 60and only Ubuntu/Rocky Linux receive the worker cap.git diff --checkpassed.99741d687cpassed with real framework test execution on Ubuntu and Rocky Linux; the complete jobs took 14m 35s and 28m 43s, respectively. Ubuntu's second attempt reported:framework:test FROM-CACHE, so repeated green runs alone were insufficient stability evidence. The added--rerun-tasksoption makes subsequent runs execute the tests again.ComputeRewardTest.queryrun passed in 38s, again with test-result reuse, build cache, and automatic test retries disabled. actionlint and merge diff checks also passed.Follow up
Continue CI validation for exit code 134, including Rocky Linux's additional RocksDB tests, within the unchanged one-hour limit. Use the diagnostic artifacts to identify the failing native/JVM path if it recurs. The demonstrated test-race fix explains the captured Debian exit code 1; it does not establish the cause of the earlier exit code 134.
Extra details
Based on the local
release_v4.8.3commit7ebc2eb1f5cbd66ee7763adf489a9ab2227a0d66. This is an independent CI experiment; it does not include #7018's unmerged Keccak changes. The Gradle build JVM settings and the framework test JVM's 512 MB heap limit are preserved. The reward-test fix is merged fromfix/compute-reward-test-race(ccba12aa72).