Fix race condition in notes-data.json read-modify-write - #301
Open
anshul23102 wants to merge 1 commit into
Open
Conversation
Add module-level threading lock to protect concurrent access to notes-data.json in admin_upload() and delete_material() endpoints. Without synchronization, concurrent requests can cause race conditions where the second write silently overwrites the first, leading to data loss. - Add _notes_lock at module level using threading.Lock() - Wrap all read-modify-write operations in admin_upload() with the lock - Wrap all read-modify-write operations in delete_material() with the lock - File uploads happen outside the lock for better performance This prevents silent data loss when multiple lecturers upload or delete notes simultaneously. Resolves mugenkyou#289
📥 Pull Request ReceivedThank you for your contribution to College Daddy. Your pull request has been received and is currently under review. 🔗 Linked Issues
✅ Pre-Merge ChecklistPlease ensure the following requirements are met:
👤 Reviewer Assigned@mugenkyou has been assigned to review this pull request. Our team will review your submission shortly. We appreciate your effort in improving the platform for students. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add threading lock to protect concurrent access to notes-data.json, preventing silent data loss when multiple uploads/deletes happen simultaneously.
Problem
When two upload or delete requests arrive concurrently:
Solution
Changes
Testing
Resolves #289
Work completed under GSSoC'26