Bump VirtusLab/scala-cli-setup from 1.14.0 to 1.15.0#5376
Merged
softwaremill-ci merged 1 commit intoJul 7, 2026
Merged
Conversation
This was referenced Jul 7, 2026
Member
|
@dependabot rebase |
Bumps [VirtusLab/scala-cli-setup](https://github.com/virtuslab/scala-cli-setup) from 1.14.0 to 1.15.0. - [Release notes](https://github.com/virtuslab/scala-cli-setup/releases) - [Commits](VirtusLab/scala-cli-setup@d320e01...42e5f90) --- updated-dependencies: - dependency-name: VirtusLab/scala-cli-setup dependency-version: 1.15.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
3418da2 to
1c10b7d
Compare
adamw
added a commit
that referenced
this pull request
Jul 7, 2026
## Problem The test `properly update metrics when a request times out` (in `NettyFutureRequestTimeoutTests`, and its sync counterpart in `NettySyncRequestTimeoutTests`) is flaky on CI, failing intermittently with `1 was not equal to 0` at the `activeRequests.get() shouldBe 0` assertion. It failed on three dependency-update PRs in the week of 2026-07-06 alone (runs for #5379, #5376 and #5373). The root cause is a race in the test, not in production code: the metrics are only decremented when the endpoint's logic completes, which for the Future-based server happens ~1 second *after* the 503 timeout response is received (the `Future` running the logic is not interruptible). The test used a fixed `Thread.sleep(1100)`, leaving only a ~100 ms margin before asserting — not enough on a loaded CI machine. The sync test had an even tighter fixed `Thread.sleep(100)`. ## Fix Replace the fixed sleeps with `eventually { ... }` and a widened patience config (15 s timeout / 150 ms interval) — the same idiom already used for the same reason in `ServerMetricsTest`. This asserts eventual consistency instead of racing the asynchronous metrics update. No production code is changed. ## Verification Ran locally: - `sbt "nettyServer/testOnly sttp.tapir.server.netty.NettyFutureServerTest -- -z \"properly update metrics\""` — passed - `sbt "nettyServerSync3/testOnly sttp.tapir.server.netty.sync.NettySyncServerTest -- -z \"properly update metrics\""` — passed 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
adamw
added a commit
that referenced
this pull request
Jul 7, 2026
) ## Problem CI test runs intermittently hang: the build goes silent for ~9 minutes until the 15-minute `nick-fields/retry` timeout kills sbt, and the second attempt then frequently times out the same way, failing the job after ~30 minutes. This was observed on dependency PRs #5373, #5362 and #5376 during the week of 2026-06-27..2026-07-07. The suspected trigger is the Vert.x 5 upgrade — a follow-up PR will address the Vert.x-side cause; this PR makes the test infrastructure resilient and adds diagnostics. Two failure modes: * **(A)** a single test hangs mid-suite (often the vertx cats/zio suites — WebSocket/streaming waits with no timeout). Tests are not forked and run one suite at a time, so one hung test stalls the entire run. * **(B)** all tests pass, but `TestSuite.afterAll` blocks forever in an unbounded `release.unsafeRunSync()` (e.g. a wedged `Vertx.close`), so sbt never finishes. ## Changes * **`DefaultCreateServerTest`**: each test's `IO` gets `.timeout(3.minutes)` before `.unsafeToFuture()` — a hung test is cancelled (running the server-close finalizer) instead of hanging the suite. * **`TestSuite` (JVM)**: * every registered test is wrapped in a 4-minute safety-net timeout (`IO.fromFuture(...).timeout(4.minutes)`), catching `Test`s constructed outside `DefaultCreateServerTest`; * suite resource acquisition (`tests.allocated`) is bounded to 2 minutes; * `afterAll` bounds `release` and `shutdownDispatcher` to 1 minute each, so a wedged backend close fails loudly instead of hanging the non-forked sbt JVM forever. * **`CatsVertxServerTest`**: the suite-level `vertx.close` wait is bounded to 30 seconds; on timeout/failure it logs and continues. * **CI workflow (JVM Test step only)**: a background watchdog checks `output.log`'s mtime every 30 seconds; if the build has been silent for >240 seconds it appends `jcmd <pid> Thread.print` dumps of all JVMs to `thread-dumps.log`, which is uploaded as an artifact (`if-no-files-found: ignore`). The sbt exit code and the existing `tee output.log` + leak-grep behaviour are preserved. ## Verification * `sbt "serverTests/Test/compile" "tests/Test/compile"` — compiles. * `sbt "vertxServerCats2_12/testOnly sttp.tapir.server.vertx.cats.CatsVertxServerTest"` — all 285 tests pass through the new timeout wrappers and the bounded vertx close. * `sbt "nettyServer/testOnly sttp.tapir.server.netty.NettyFutureServerTest"` — 278/279 pass (incl. the 5s graceful-shutdown and request-timeout metrics tests), confirming the timeout wrappers don't regress longer-running tests. The single failure (`bind(..) failed: Address already in use` in the leak test, which uses the default port 8080) is environmental — running the same suite on unmodified master on the same machine fails identically. * `python3 -c "import yaml; yaml.safe_load(open('.github/workflows/ci.yml'))"` — workflow YAML valid. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
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.
Bumps VirtusLab/scala-cli-setup from 1.14.0 to 1.15.0.
Release notes
Sourced from VirtusLab/scala-cli-setup's releases.
Commits
42e5f90Update dist (#1178)6875f33Bumpcoursierto 2.1.25-M26 (was 2.1.25-M25) (#1177)e76d1aechore(deps-dev): Bump@vercel/nccfrom 0.44.0 to 0.44.1 (#1172)983ba95chore(deps-dev): Bump typescript-eslint from 8.62.0 to 8.62.1 (#1173)5f6af6bchore(deps-dev): Bump prettier from 3.9.1 to 3.9.4 (#1174)b1eac3bUpdate dist (#1176)f25cbbcUpdate scala-cli version to 1.15.0 (#1175)0d26433Merge pull request #1169 from VirtusLab/dependabot/npm_and_yarn/eslint-10.6.0926e3c4Merge pull request #1168 from VirtusLab/dependabot/npm_and_yarn/prettier-3.9.109e4468chore(deps-dev): Bump eslint from 10.5.0 to 10.6.0