Skip to content

fix: nightly YAML multiline run command starts sbt without tasks#1031

Merged
pjfanning merged 1 commit intoapache:mainfrom
He-Pin:fix/nightly-yaml-multiline
May 9, 2026
Merged

fix: nightly YAML multiline run command starts sbt without tasks#1031
pjfanning merged 1 commit intoapache:mainfrom
He-Pin:fix/nightly-yaml-multiline

Conversation

@He-Pin
Copy link
Copy Markdown
Member

@He-Pin He-Pin commented May 9, 2026

Summary

After #1030, the nightly job hangs for 5+ hours per matrix entry until canceled (e.g. run 25588927669).

The run: | literal block scalar turns each indented line into a separate shell command, so:

  1. The first line sbt -Dpekko.http.parallelExecution=false -Dpekko.test.timefactor=2 runs sbt with no tasks and drops into the interactive REPL — the job hangs here until the workflow timeout.
  2. The following -Dpekko.build.pekko.version=..., -DTLS_ENGINE_CONFIG=..., and "++ ..." mimaReportBinaryIssues test lines are dispatched as separate shell commands and never reach sbt.

The hung-job logs match exactly: sbt server started followed by long silence and [gc] Pause Full (System.gc()).

Fix

Switch the block scalar from | (literal, preserves newlines) to > (folded, joins lines with spaces) so the whole sbt invocation runs as a single command. Also drop the trailing whitespace on the first line.

run: >
  sbt -Dpekko.http.parallelExecution=false -Dpekko.test.timefactor=2
  -Dpekko.build.pekko.version=${{ matrix.PEKKO_VERSION }}
  -DTLS_ENGINE_CONFIG=${{ matrix.TLS_ENGINE_CONFIG }}
  "++ ${{ matrix.SCALA_VERSION }}" mimaReportBinaryIssues test

Verified locally — the YAML now parses to a single-line command:

sbt -Dpekko.http.parallelExecution=false -Dpekko.test.timefactor=2 -Dpekko.build.pekko.version=... -DTLS_ENGINE_CONFIG=... "++ ..." mimaReportBinaryIssues test

Test plan

  • Wait for next nightly run (or trigger manually) and confirm jobs complete in normal time instead of timing out at 6h.

Motivation:
After apache#1030, the nightly job has been hanging for 5+ hours per matrix
entry until canceled (e.g. run 25588927669). The `run: |` literal block
turns each indented line into a separate shell command, so the first
line `sbt -D... -D...` launches sbt with no tasks and drops into the
interactive REPL, while the following `-D...` / `"++ ..." ... test`
lines never reach sbt.

Modification:
Switch the block scalar from `|` (literal, preserves newlines) to `>`
(folded, joins lines with spaces) so the whole sbt invocation runs as
a single command. Trailing whitespace on the first line is also
removed.

Result:
The nightly job runs sbt with all `-D` flags and the `test` task in
one process, restoring normal completion time.
@He-Pin He-Pin requested a review from pjfanning May 9, 2026 07:56
Copy link
Copy Markdown
Member

@pjfanning pjfanning left a comment

Choose a reason for hiding this comment

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

lgtm

@pjfanning pjfanning merged commit a20f58c into apache:main May 9, 2026
5 checks passed
@He-Pin He-Pin deleted the fix/nightly-yaml-multiline branch May 9, 2026 08:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants