Repository navigation
Release v1.17.0
Jobs left running by a silo that crashed or was restarted now resume by themselves, on a surviving silo or on the silo that comes back, without the application calling Resume() or Rehydrate().
Added
IJobsManagerKeys: implement it to list the job scopes and namespaces your host runs jobs in (for example event store × tenant namespaces), so recovery can find every interrupted job. Without one, recovery covers only the scopes this silo has used and logs a startup warning. See Jobs. (#63)AddCratisOrleansJobsRecovery()onISiloBuilderregisters job recovery for silos not set up throughAddCratisOrleans(such asTestClustersilos). (#63)
Fixed
- A persisted
Runningjob whose silo crashed is resumed: its unfinished steps are started again under the same job id, scope and namespace, completed steps stay completed and a stopped job stays stopped. Recovery runs when a silo becomes active and, on one surviving silo, when a cluster member is declared dead. A step that was interrupted runs again from the start, so step work must be safe to repeat. (#63) Resume()no longer reportsJobAlreadyRunningfor a job whose steps have no live work, and a job interrupted while it was still being prepared returns an explicit failure instead of success. (#63)- A
Rehydrate()that arrives while a rehydration is in progress now runs another pass afterwards instead of being dropped. - A step outcome that reaches a job after it already completed no longer changes its progress or recreates its stored state.
Security
Cratis.Orleans.Storage.SqlreferencesSystem.Security.Cryptography.Pkcs10.0.13, replacing the 9.0.11 that Microsoft.Data.SqlClient brought in, which is affected by GHSA-846f-f764-76mx and GHSA-2fmv-rv2c-59x7.