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

0 taxons dans l'appli #147

Closed
aferchal opened this issue Apr 22, 2022 · 12 comments
Closed

0 taxons dans l'appli #147

aferchal opened this issue Apr 22, 2022 · 12 comments
Labels
bug Something isn't working

Comments

@aferchal
Copy link

aferchal commented Apr 22, 2022

Suite à une mise à jour massive en base des taxons dans la table taxonomie.bib_nom et mise à jour de la liste du jdd occtax de la table taxonomie.cor_nom_liste il y a une semaine, soit un total de 23751 taxons je n'avais pas fait de synchro sur le mobile. J'ai installé hier GN mobile sur les terminaux de nouveaux agents et je me suis retrouvé face à un pb de synchro des taxons avec aucun taxon qui ne remonte.

Les anciennes install sont restées bloquées à une date antérieure.
Version GN : 2.6.2 (BRGM)
Version TH : 1.9.1 ? (BRGM)
Android 10 (Crosscall X4)
Sync : 1.3.0
Occtax : 1.3.0 (testé en 1.3.1)

Ci dessous le json :

{
  "geonature_url":  "https://geonature.guadeloupe-parcnational.fr/geonature",
  "taxhub_url":  "https://geonature.guadeloupe-parcnational.fr/taxhub",
  "uh_application_id": 3,
  "observers_list_id": 1,
  "taxa_list_id": 100,
  "page_size": 3000,
  "page_max_retry": 10
}

Ci dessous un extrait du log avec un retour d'erreur indiqué :

04-22 17:09:43.708  4671 18125 I fr.geonature.sync.sync.worker.DataSyncWorker: synchronize taxa...
04-22 17:09:44.875  4671  4723 E WM-WorkerWrapper: Work [ id=5479a36a-1827-4697-a8e9-476920483553, tags={ fr.geonature.sync.sync.worker.DataSyncWorker, data_sync_worker_tag } ] failed because it threw an exception/error
04-22 17:09:44.875  4671  4723 E WM-WorkerWrapper: 	at fr.geonature.commons.data.Taxonomy.<init>(Unknown Source:2)
04-22 17:09:44.875  4671  4723 E WM-WorkerWrapper: 	at fr.geonature.sync.sync.worker.DataSyncWorker$syncTaxa$taxa$1.invoke(DataSyncWorker.kt:796)
04-22 17:09:44.875  4671  4723 E WM-WorkerWrapper: 	at fr.geonature.sync.sync.worker.DataSyncWorker$syncTaxa$taxa$1.invoke(DataSyncWorker.kt:793)
04-22 17:09:44.875  4671  4723 E WM-WorkerWrapper: 	at fr.geonature.sync.sync.worker.DataSyncWorker.syncTaxa(DataSyncWorker.kt:811)
04-22 17:09:44.875  4671  4723 E WM-WorkerWrapper: 	at fr.geonature.sync.sync.worker.DataSyncWorker.access$syncTaxa(DataSyncWorker.kt:53)
04-22 17:09:44.875  4671  4723 E WM-WorkerWrapper: 	at fr.geonature.sync.sync.worker.DataSyncWorker$syncTaxa$1.invokeSuspend(Unknown Source:19)
04-22 17:09:44.877  4671  4723 I WM-WorkerWrapper: Worker result FAILURE for Work [ id=5479a36a-1827-4697-a8e9-476920483553, tags={ fr.geonature.sync.sync.worker.DataSyncWorker, data_sync_worker_tag } ]

J'ai lu pas mal de tickets sur les config du page_size et page_max_retry, mais testé pas mal de valeurs mais pas mieux.

Merci.

@camillemonchicourt
Copy link
Member

Salut, j'ai testé la route qui renvoie les taxons et ta liste 100 et elle est OK et renvoie bien 25575 taxons : https://geonature.guadeloupe-parcnational.fr/taxhub/api/taxref/allnamebylist/100?limit=50000

Ta configuration me semble bonne aussi.

Le paramètre page_max_retry a été supprimé depuis la version 1.2.0, donc il n'a plus d'effet.
Le module de synchronisation va boucler sur la route en récupérant à chaque fois autant de résultats qu'indiqué par le paramètre page_size et quand il ne trouve plus de résultats, s'arrêter.

Il y a un soucis avec la pagination des routes dans TaxHub qui a été réglé dans sa version 1.9.4 qui faisait qu'il pouvait manquer certains taxons : https://github.com/PnX-SI/TaxHub/releases

Mais cela n'explique pas ton soucis, qui n'est jamais remonté à ma connaissance.

Ce que je comprends de l'erreur (sans certitude), c'est que l'application plante car le terminal sature. Ou alors c'est le TaxHub qui sature et n'arrive plus à répondre ?

Essaie peut-être de mettre une plus grosse valeur au paramètre page_size, genre 30000 (supérieur au nombre d'objets renvoyés par la route, pour tous les récupérer en une fois), ou au contraire mettre une petite valeur comme 200 pour faire plein de petits appels à la route, plutôt qu'un seul gros appel, pour voir si la synchronisation arrive au bout ?

@aferchal
Copy link
Author

Bonjour

Merci pour ta réponse. J'ai supprimé le page_max_retry et testé avec les 2 paramètres pour le page_size avec un bas genre 200 et un haut genre 30000.
Le résultat est le même : failed because it threw an exception/error
Soit il faut réduire le nombre de taxons dans le taxhub, soit il faut que le BRGM mette à jour l'appli pour sen sortir

@camillemonchicourt
Copy link
Member

OK.
On a déjà testé avec plus de taxons, et la mise à jour de TaxHub réglera les listes de taxons incomplètes mais ne devrait rien changer à ton soucis où le chargement des taxons plante.

Ma compréhension (sans grande compétence sur le sujet) c'est le terminal qui mouline et arrive pas au bout de la synchronisation. Peut-être qu'il manque de ressources ?

@aferchal
Copy link
Author

j'ai essayé avec plusieurs terminaux récents, en Android 10 et 11 et le résultat est le même. Je vais tester en réduisant le nombre de taxons dans la liste.

@camillemonchicourt
Copy link
Member

Ouais ou alors créé une liste bidon avec 10 taxons pour voir...

@sgrimault
Copy link
Collaborator

Bonjour,

J'ai fais une passe rapide sur votre instance, notamment en appelant manuellement la route utilisée par "Occtax" lors de la synchronisation des taxons (/api/taxref/allnamebylist/100) et j'ai trouvé un taxon qui peut poser problème :

{
  "cd_nom": 349525,
  "search_name": "Biota =  <i> Biota Endl.(D.Don)</i> - [Dumm - 349525]",
  "cd_ref": 349525,
  "nom_valide": "Biota Endl.(D.Don)",
  "lb_nom": "Biota",
  "nom_vern": null,
  "regne": null,
  "group2_inpn": "Autres"
}

où les informations sur la taxonomie est incomplète (attribut regne ayant une valeur nulle). Coté application ces informations sont considérés comme obligatoires, notamment pour cataloguer et pouvoir appliquer des filtres sur la liste des taxons.
Le problème reste identique sur la v2 de "Occtax" où il n'y a pas de contrôle de fait sur ce point là.

Coté application, je peux donc durcir les contrôles et écarter lors de la synchronisation tout taxon considéré comme non valide, et en attendant, soit vous appliquez une correction en base sur ce taxon, soit vous le supprimez.

@camillemonchicourt
Copy link
Member

OK ça devient plus clair, en effet.
Merci d'avoir regardé.

En effet, il serait utile d'ignorer les données qui posent soucis, plutôt que de planter le téléchargement de la liste.

Merci.

@aferchal
Copy link
Author

Bien vu @sgrimault !! J'ai supprimé ce taxon est la synchro fonctionne. Du même avis que Camille même si une fois qu'on le sait ça va plus vite pour l'identification du pb. Merci à vous.

@camillemonchicourt
Copy link
Member

Idéalement, il est peut-être faisable qu'un taxon soit récupéré même si il n'a pas de règne ou de group2inpn (même si ce n'est pas censé arriver à ma connaissance) ?

PS : Alain, tu peux aussi ajouter un règne à ce taxon.

@TheoLechemia
Copy link
Member

TheoLechemia commented Apr 26, 2022

Oui il faudrait que la synchro continue en ignorant le taxon qui provoque l'erreur. Est-ce qu'il est possible ausi d'avoir des logs un peu plus verbeux ?
04-22 17:09:44.875 4671 4723 E WM-WorkerWrapper: Work [ id=5479a36a-1827-4697-a8e9-476920483553, tags={ fr.geonature.sync.sync.worker.DataSyncWorker, data_sync_worker_tag } ] failed because it threw an exception/error

Là on voit qu'une erreur est levée, mais on ne sait pas laquelle

@sgrimault
Copy link
Collaborator

C'est un cas qui ne devrait jamais arriver car ça carrément fait planter le worker dédié à la synchronisation des données.

Je vais donc réactiver la validation stricte sur les taxons reçus et ne garder que ceux qui sont valides. Ceux qui ne passent pas cette validation seront tracés pour faciliter l'analyse si jamais on constate des écarts entre les taxons présents coté GeoNature et ceux présents localement coté "Occtax".

sgrimault added a commit to PnX-SI/gn_mobile_core that referenced this issue May 2, 2022
@sgrimault sgrimault added the bug Something isn't working label May 2, 2022
@sgrimault
Copy link
Collaborator

La version 2.1.0-rc0 de l'application applique désormais une validation lors de la synchronisation des taxons. Ceux qui échouent à cette validation sont tracés dans les logs pour analyse.

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

5 participants