orleans: Storage providers have to throw an InconsistentStateException upon a write conflict
A grain’s WriteStateAsync
leads to GrainStateStorageBridge.WriteStateAsync
which reports any failure as OrleansException
, when state conflicts should be reported as InconsistentStateException, according to documentation. Additionally, the AzureTableStorage
doesn’t throw InconsistentStateException
on state conflicts, since it delegates to GrainStateTableDataManager.Write
which doesn’t throw that exception. This looks like a bug in the code, not in the documentation. Do you think it should be fixed, or keep it like that since existing applications may already rely on the exceptions thrown today?
About this issue
- Original URL
- State: closed
- Created 8 years ago
- Comments: 19 (15 by maintainers)
I had a long discussion with @jason-bragg about it yesterday. I think I convinced him that the approach with auto-deactivation of grain that let
InconsistentStateException
escape from method calls has value regardless of his other legitimate concerns about managing grain state.