Skip to content

test(stream-tests): enable virtualized stream dispatcher in JDK 21+ nightly CI#2882

Merged
He-Pin merged 1 commit intoapache:mainfrom
He-Pin:feat-virtualize-dispatcher-v2
Apr 22, 2026
Merged

test(stream-tests): enable virtualized stream dispatcher in JDK 21+ nightly CI#2882
He-Pin merged 1 commit intoapache:mainfrom
He-Pin:feat-virtualize-dispatcher-v2

Conversation

@He-Pin
Copy link
Copy Markdown
Member

@He-Pin He-Pin commented Apr 21, 2026

Motivation

JDK-8300995 can still trigger ForkJoinPool compensation-thread starvation in FIFO mode, which shows up as sporadic stream test timeouts when actors block on reply futures. For JDK 21+ nightly CI we can exercise virtualized fork-join workers instead, while keeping local test defaults unchanged.

Changes

  1. .github/workflows/nightly-builds.yml now sets PEKKO_VIRTUALIZE_DISPATCHER=on only for JDK 21+ nightly jobs.
  2. stream-tests/src/test/resources/application.conf adds a test-only override for pekko.test.stream-dispatcher.fork-join-executor.virtualize, defaulting to off and reading the env var when present.

Result

  • Nightly CI can enable virtualized stream dispatcher workers on JDK 21+.
  • Local development and regular test runs still default to virtualize = off.
  • The PR stays focused to two files and preserves binary compatibility.

Related

@He-Pin He-Pin marked this pull request as ready for review April 21, 2026 09:32
He-Pin added a commit to He-Pin/incubator-pekko that referenced this pull request Apr 21, 2026
… and simplify comment

Motivation:
Long explanatory comments in reference.conf were too verbose and the virtualize setting should live in application.conf on the test classpath to be clearer and easier to override in CI.

Modification:
- Remove verbose comment and virtualize lines from reference.conf
- Add stream-testkit/src/test/resources/application.conf with default virtualize = off and optional env override ${?PEKKO_VIRTUALIZE_DISPATCHER}

Result:
- Shorter, clearer comment in reference.conf
- Virtual threads controlled via application.conf and PEKKO_VIRTUALIZE_DISPATCHER env var in CI

References: PR apache#2882, Issue apache#2870

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@He-Pin He-Pin force-pushed the feat-virtualize-dispatcher-v2 branch from dc2c091 to 52d249a Compare April 21, 2026 10:28
@He-Pin He-Pin requested a review from pjfanning April 21, 2026 10:29
@He-Pin He-Pin force-pushed the feat-virtualize-dispatcher-v2 branch from 52d249a to 5e42e05 Compare April 21, 2026 10:31
Motivation:
Remove the stream-testkit reference.conf churn so the PR stays focused on the intended nightly virtualize wiring.

Modification:
Rebuild the branch from origin/main with only the nightly workflow change and the stream-tests application.conf override.

Result:
The PR diff is reduced to two files with no unrelated testkit comment changes.

References:
upstream PR apache#2872

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@He-Pin He-Pin force-pushed the feat-virtualize-dispatcher-v2 branch from 5e42e05 to 911c067 Compare April 21, 2026 10:34
@He-Pin He-Pin changed the title feat(stream-testkit): enable virtual threads for JDK 21+ nightly builds test(stream-tests): enable virtualized stream dispatcher in JDK 21+ nightly CI Apr 21, 2026
@He-Pin He-Pin marked this pull request as draft April 21, 2026 11:01
@He-Pin He-Pin marked this pull request as ready for review April 21, 2026 11:29
@He-Pin
Copy link
Copy Markdown
Member Author

He-Pin commented Apr 21, 2026

@pjfanning please take a look ~

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

@He-Pin He-Pin merged commit bdb0e87 into apache:main Apr 22, 2026
13 of 14 checks passed
@He-Pin He-Pin deleted the feat-virtualize-dispatcher-v2 branch April 22, 2026 03:50
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