Description
There are a few places in our code where we explicitly throw AssertionErrors due to inability to correctly read data from persistence and many more places where we make assertions based on read values.
Assertions are used to indicate problems in internal logic, while persistence might also get corrupted by various external reasons. It also makes uniform handling of such issues considerably harder, because exception handling logic in Ignite ignores Errors. If we want to improve stability and minimize consequenses of pesistence corruption, we should replace all those AssertionErrors and asserts with Exceptions, so that current exception handling mechanisms could be reduce. In a number of situations it means that instead of causing cluster-wide hang-up problematic node will be automatically killed.
Attachments
Issue Links
- supercedes
-
IGNITE-8102 IgnitePdsCorruptedStoreTest.testNodeInvalidatedWhenPersistenceIsCorrupted failed in Direct IO 2 suite
- Resolved
- links to