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

Errore 500 se una directory non contiene il file status.json #11

Closed
yp opened this issue Apr 10, 2020 · 4 comments
Closed

Errore 500 se una directory non contiene il file status.json #11

yp opened this issue Apr 10, 2020 · 4 comments
Assignees
Labels
bug Something isn't working
Milestone

Comments

@yp
Copy link
Member

yp commented Apr 10, 2020

Se una delle directory dei job non contiene il file status.json (ad esempio perché è fallito una POST precedente) la riga:

https://github.com/ldenti/malva_covid_service/blob/106db36baafa2a0b92c0f53cb916b17ad7e26e24/flask/app/views.py#L47

genera un'eccezione che porta ad avere un errore 500.

Secondo me si dovrebbe:

  1. ripulire le directory se la POST fallisce, e
  2. essere più resilienti nella glob
@yp yp added the bug Something isn't working label Apr 10, 2020
@yp yp added this to the v0.1 milestone Apr 10, 2020
@sciccolella
Copy link

Sicuramente metto un try quando apro i file, e nel caso restituisco uno 404 (o altro?).
Come ha fatto a fallire la post?
Se fallisce per via dello snakemake che non parte o altro e quindi non genera lo status.json, non posso saperlo in quanto la chiamata è asincrona.
L'altro motivo per cui può fallire è se fallisce la scrittura su disco per qualche ragione. Questo è un problema che può succere? Nel caso è giusto un 500, no?

@yp
Copy link
Member Author

yp commented Apr 10, 2020

Sicuramente metto un try quando apro i file, e nel caso restituisco uno 404 (o altro?).

Il problema era sulla GET /vcf (quindi la lista). Io ignorerei quelle cartelle...

Come ha fatto a fallire la post?

Bella domanda. Stavo facendo prove mandandoti request non valide (per testare la mia gestione degli errori), poi sono tornato sulla lista e ho avuto il 500. Probabilmente era quando specificavo filetype = vcf1.

Se fallisce per via dello snakemake che non parte o altro e quindi non genera lo status.json, non posso saperlo in quanto la chiamata è asincrona.

Ero in upload del VCF, quindi non può essere lo snakemake. Ma in quel caso, tu non generi nessuno status.json "preliminare"? (Tipo con status: "starting")

L'altro motivo per cui può fallire è se fallisce la scrittura su disco per qualche ragione. Questo è un problema che può succere? Nel caso è giusto un 500, no?

Questo non saprei...

@sciccolella
Copy link

sciccolella commented Apr 11, 2020

Grazie il report è stato molto utile. Ho risolto il problema e ho fatto in modo che nel caso in cui venga trovato un ID per cui non esiste lo status.json o info.json, lo cancella. Ritieni che sia utile restituire gli ID cancellati al frontend?

Ma in quel caso, tu non generi nessuno status.json "preliminare"? (Tipo con status: "starting")

No non genero nessuno status preliminare al momento. @mpre sarebbe un problema per lo snakemake se ne generassi uno iniziale o lo sovrascriverebbe (giustamente) una volta partito lo snakemake?

@mpre
Copy link
Member

mpre commented Apr 11, 2020

No, non è un problema

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants