fix: harden OpenSim session readiness
Some checks failed
CI / rust-skia (Rust only) (push) Has been cancelled
CI / required (push) Has been cancelled

This commit is contained in:
2026-08-21 20:37:16 +02:00
parent db25a977b7
commit adf5165033
14 changed files with 503 additions and 67 deletions

View File

@@ -37,11 +37,14 @@ server failures retry with exponential backoff. `reconnect.maximum_delay_seconds
is a hard cap. A server retry hint is a minimum up to that cap. Per-instance
jitter is bounded by `jitter_basis_points`, preventing synchronized reconnects,
and a connection that remains up for `stable_reset_seconds` resets the failure
streak.
streak. A connected generation that does not reach full event-queue readiness
within `readiness_timeout_seconds` is logged out and retried instead of
remaining degraded indefinitely.
Backoff defaults are one second initially, 60 seconds maximum, 20 percent
jitter, and a 120-second stable reset window. All waits use Tokio timers inside
`select!` with cancellation/control; there are no blocking sleeps.
jitter, a 30-second readiness deadline, and a 120-second stable reset window.
All waits use Tokio timers inside `select!` with cancellation/control; there are
no blocking sleeps.
## Generation and work safety

View File

@@ -40,8 +40,10 @@ With the opt-in and all three `.env` values present, every live case is compiled
without `#[ignore]`. The test run must report zero ignored cases. Test bodies do
not print-and-return on missing OpenSim data: a missing inventory item, outfit
link, appearance update, covenant response, current-region lookup, capability,
or object packet is a real failure. Login uses the account's OpenSim `last`
location instead of a hardcoded Second Life region.
or object packet is a real failure. Live fixtures serialize access to the
dedicated account even when the Rust test runner uses multiple threads. Login uses the account's OpenSim `last`
location instead of a hardcoded Second Life region, with one bounded `home`
fallback when the grid reports that the last region is unavailable.
`GRID_LOGIN_URL` is used directly as the LLSD login endpoint; the harness does
not substitute a Second Life login host or path. The login request includes the