-
Notifications
You must be signed in to change notification settings - Fork 31
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
OutOfMemoryError en validant un feed GTFS Realtime sur transport.data.gouv.fr/validation #2212
Comments
Merci pour le rapport de bug ! On va explorer ça ; notre environnement n'est pas immense côté RAM, ça peut poser problème. |
Voir CUTR-at-USF/gtfs-realtime-validator#382, à voir quels paramètres on choisit en fonction de notre machine et de combien on veut dédier. Actuellement le worker n'a pas crashé quand ces erreurs surviennent |
Sur le worker en prod j'ai fait après avoir lu StackOverflow
soit MaxHeapSize d'environ ~1 GB et on a seulement 4 GB de RAM sur notre worker actuel. On augmente les flags pour passer un peu plus ? On remarque quelques erreurs liées à la heap en production pour la validation GTFS-RT pour des réseaux USA / Suisse select date, details, on_the_fly_validation_metadata, on_the_fly_validation_metadata->>'state', on_the_fly_validation_metadata->>'error_reason'
from validations
where validations.on_the_fly_validation_metadata->>'type' = 'gtfs-rt' Les URLs des GTFS en question |
Merci d'avoir fouillé !
Oui ça va être nécessaire ; ce qui peut être utile, c'est de faire un test en local avec le fichier qui a planté, et d'ajouter 100 MB à chaque tour jusqu'à ce que ça passe, pour ne pas augmenter complètement au hasard, vu que la RAM est précieuse sur la prod. Je note qu'on a encore les tailles de queues suivantes par ailleurs, et que ça peut multiplier (ou pas) le max théorique: transport-site/config/runtime.exs Line 121 in 47b8e45
|
@thbar Pas encore eu le temps de faire ce que tu suggères mais c'est une bonne idée ! Je vais le faire prochainement et regarder les statistiques. |
@AntoineAugusti pas de souci! De mon côté je vais voir pour expérimenter côté suivi mémoire, voir si on peut avoir quelque chose de plus précis que les métriques sur CC. |
(Not following all of the above because I don't speak French, but hopefully the below is still useful 😄) Typically you can fix
See https://stackoverflow.com/a/38336005/937715 for more details. If you don't want to allocate more memory to the batch validator, note that you can typically avoid OOM errors on larger feeds by ignoring the rules that process shapes.txt file by adding the command line parameter The above docs say:
We specifically added the above command-line to allow the validator to process huge country-sized datasets like the Netherlands, which still generated OOM errors even with large |
Looked at this error today, happened 6 times out of 109 GTFS-RT on-demand validations so doesn't happen much. Looked at GTFS URLs and they are all outside France, making this issue low priority for us for now.
|
Latest data select oban_args->>'state', count(1)
from multi_validation mv
where mv.validator = 'gtfs-realtime-validator' and mv.validated_data_name is not null
group by 1 gives 325 rows with state = Closing for now, we'll revisit if needed |
My previous SQL was wrong. select oban_args->>'state', oban_args->>'error_reason' like '%OutOfMemoryError%', count(1)
from multi_validation mv
where oban_args->>'type' = 'gtfs-rt'
group by 1, 2 Gives
so it happened 19 times. |
Description du bug
J'ai eu une OutOfMemoryError en testant l'interface sur transport.data.gouv.fr/validation.
Comment reproduire le bug
Attendu
Voir les résultats de validation dans l'interface.
Observé
Le message d'erreur suivant:
L'erreur à copier/coller si nécessaire 👇
Environnement
Mac M1
macOS Monterey version 12.2
Informations additionnelles
En utilisant le validateur avec le terminal, ça fonctionne avec les liens MBTA.
J'ai aussi essayé l'interface avec les liens de Bibus de Brest Metropole trouvés sur le site de transport.data.gouv.fr et ça fonctonne parfaitement.
The text was updated successfully, but these errors were encountered: