Details
-
Bug
-
Status: Resolved
-
Blocker
-
Resolution: Fixed
-
None
-
None
-
None
Description
Currently, Flink offers a way to store state and this is utilized for Siddhi Library. The problem is that Siddhi internally bases on operators IDs that are generated automatically when the SiddhiAppRuntime is initialized. This means that if the job is restarted and new operators IDs are assigned for Siddhi, yet the Flink stores states with old ID's.
Siddhi uses an operator ID to get state from Map :
snapshotable.restoreState(snapshots.get(snapshotable.getElementId()));
Siddhi does not make a null-check on the retrieved values, thus restoreState throws an NPE which is caught and CannotRestoreSiddhiAppStateException is thrown instead. Any flink job will go into infinite loop of restarting after facing this issue.
Attachments
Issue Links
- links to