[BUG]: InMemoryBlockingCache is reusing its own CoroutineScope without a JobSupervisor #5355
Labels
bug
End user-perceivable behaviors which are not desirable.
Impact: Low
Low perceived user impact (e.g. edge cases).
Work: Medium
The means to find the solution is clear, but it isn't at good-first-issue level yet.
Milestone
Describe the bug
InMemoryBlockingCache operates asynchronously on its own CoroutineScope. This scope is not configured with a JobSupervisor, nor are all operations protected with try/catch. Thus, if any operation fails, any follow up operation will also fail. Since InMemoryBlockingCache notifies change observers synchronously, if any change observer fails then the cache will stop working.
Steps To Reproduce
Theoretical problem. Might be related to #5063.
Expected Behavior
Failures in a change observer should not affect the future operations in the cache.
Screenshots/Videos
No response
What device/emulator are you using?
No response
Which Android version is your device/emulator running?
No response
Which version of the Oppia Android app are you using?
No response
Additional Context
No response
The text was updated successfully, but these errors were encountered: