Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG]: AnalyticsController.kt is neither sequential nor thread-safe #5364

Open
masclot opened this issue Mar 19, 2024 · 1 comment
Open

[BUG]: AnalyticsController.kt is neither sequential nor thread-safe #5364

masclot opened this issue Mar 19, 2024 · 1 comment
Labels
bug End user-perceivable behaviors which are not desirable. Impact: Low Low perceived user impact (e.g. edge cases). Work: High It's not clear what the solution is.

Comments

@masclot
Copy link
Collaborator

masclot commented Mar 19, 2024

Describe the bug

AnlyticsController is using a single-thread dispatcher (blocking dispatcher) to asynchronously log events. A single thread dispatcher, however, does not guarantee sequentiality nor atomicity when there are suspend methods involved.

Steps To Reproduce

Multithreading bug. Can lead to random errors.

Expected Behavior

Log calls should be handled sequentialy.

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

@masclot masclot added bug End user-perceivable behaviors which are not desirable. triage needed labels Mar 19, 2024
@masclot
Copy link
Collaborator Author

masclot commented Mar 19, 2024

Could be related to #5063 #5064.

@adhiamboperes adhiamboperes added Impact: Low Low perceived user impact (e.g. edge cases). Work: High It's not clear what the solution is. and removed triage needed labels Mar 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug End user-perceivable behaviors which are not desirable. Impact: Low Low perceived user impact (e.g. edge cases). Work: High It's not clear what the solution is.
Development

No branches or pull requests

2 participants