google / google/codeworld

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

Abierto
#963 0 comentarios 0 reacciones 0 asignados Ver en GitHub
bug
Lenguaje dominante
Haskell
Estrellas
1.3k
Forks
201
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

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.)

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Comienza siguiendo el handler web /saveProject y reproduciendo dos solicitudes de guardado casi simultáneas que produzcan el error de bloqueo de openBinaryFile indicado. El issue no menciona archivos ni tests; se considera terminado cuando se evita que los guardados solapados hagan que las solicitudes fallen por el bloqueo del archivo, manteniendo al mismo tiempo una ruta de reintento si un guardado agota el tiempo de espera.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
haskell
Área
api, backend
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.