You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Flaky integration test: ServiceToServiceScopeConcurrency class init times out in exposeHostPort #21
The Features integration test job (.github/workflows/integration.yaml) sometimes fails even though every test passes. One test class fails during beforeAll because the sdk-test-suite harness times out while setting up host-port forwarding for the Restate container. The failure is in test infrastructure, not in the SDK or the code under test.
Seen on PR #20 (run 41477981376, commit 817791f). That PR only changes .github/workflows/verify-lockfile.yml and actions.lock, and the next integration runs passed (PR #19 at 2649807, main at 6a63deb). The 12 most recent scheduled and push runs on main all passed.
Failing test: scopeAndLimitKeyArePropagatedOnServiceToServiceCalls ("Concurrency limit is enforced on service-to-service calls carrying scope and limit key"). Because the error happens in beforeAll, the test body never runs. The default suite then sat idle for about 4 minutes (16:06:55 → 16:11:05) until the forwarding retry gave up. That wait accounts for most of the job's 6m30s duration.
Root cause
exposeHostPort in restatedev/sdk-test-suite (dev.restate.sdktesting.infra.hostPortForwarding.kt:55) wraps Testcontainers host-port exposure in Unreliables.retryUntilSuccess. When that setup stalls on a CI runner, the whole test class fails during initialization.
Suggested fix
Report it upstream in restatedev/sdk-test-suite. Options there: make exposeHostPort more robust, e.g. a shorter per-attempt timeout with more attempts, or recreating the Testcontainers SSHd/port-forwarding container on failure.
Until then, consider having the restatedev/e2e action / test runner retry failed class initializations once, or exclude ServiceToServiceScopeConcurrency in integration.yaml if it keeps failing.
Activity