/saveProject leads to "resource busy (file is locked)" in logs
- Langage dominant
- Haskell
- Étoiles
- 1.3k
- Forks
- 201
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
I'm seeing occasional `/saveProject` requests in logs that fail with this exception:
A web handler threw an exception. Details:
data/haskell/projects/123456789123456789/SABC123ABC123ABC123.cw: openBinaryFile: resource busy (file is locked)
A hypothesis is that these can occur when a client sends two save commands at nearly the same time, in which case this could be fixed on the client by tracking when a save is in-progress, and refusing to start a new one until it either finishes or times out. (Timeout would be crucial, since we don't want to lock a student into a situation where they can't retry a save.)
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par suivre le handler web /saveProject et reproduire deux requêtes de sauvegarde presque simultanées qui produisent l’erreur de verrouillage openBinaryFile signalée. L’issue ne nomme ni fichiers ni tests ; le travail est considéré comme terminé lorsqu’il empêche que des sauvegardes qui se chevauchent fassent échouer les requêtes à cause du verrouillage du fichier, tout en conservant une possibilité de nouvelle tentative si une sauvegarde expire.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- haskell
- Domaine
- api, backend
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100