google / google/codeworld

/saveProject leads to "resource busy (file is locked)" in logs

Ouverte
#963 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
bug
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

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.