PnX-SI / gn_mobile_occtax

Application mobile pour la saisie dans le module Occtax de GeoNature
GNU General Public License v3.0
13 stars 5 forks source link

Relevés non synchronisés #179

Open TheoLechemia opened 2 years ago

TheoLechemia commented 2 years ago

Version de l'application

Version d'Occtax-mobile affectée par le bug : 2.2.0 Version de GeoNature utilisée : 2.9.2

Terminal et Version Android

Marque et modèle du terminal : Samsung A22 Version d'Android : 11

Description du bug et comportement attendu

Les relevés ne se synchronise pas. La synchronisation descendante (récupération des nomenclature, taxonomie etc...) fonctionne, mais pas celle montante. Au bout de 3 ou 4 synchro, cela se met à fonctionner et le relevés sont envoyés. Nous avons désactivé la synchronisation périodique.

Voici les logs d'une synchro le 9 puis le 10 juillet. Le 10 juillet on voit qu'il y a deux relevés en plus, qui n'ont pas été synchronisé par la synchro du 9. On voit un 13:32:10.548 INFO: [fr.geonature.datasync.sync.DataSyncViewModel] no periodic synchronization configured: abort occtax_20220709_000943.log occtax_20220710_000956.log

est-ce que ce sera ça qui bloquerait la synchro ?

sgrimault commented 2 years ago

Bonjour @TheoLechemia,

D'après les logs, on dirait qu'aucune synchronisation des données et des relevés n'a été fait le 9 et le 10. La synchronisation périodique a été désactivée (13:32:10.548 INFO: [fr.geonature.datasync.sync.DataSyncViewModel] no periodic synchronization configured: abort), donc ça implique qu'il faut lancer la synchronisation des données et des relevés manuellement. Autre point, au démarrage l'application n'arrive pas à joindre le serveur pour mettre à jour sa configuration :

21:56:50.658 INFO: [fr.geonature.datasync.features.settings.usecase.UpdateSettingsFromRemoteUseCase] updating app configuration from 'https://geonature.ecrins-parcnational.fr'...
21:56:50.750 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] --> GET https://geonature.ecrins-parcnational.fr/api/gn_commons/t_mobile_apps
21:56:50.768 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] <-- HTTP FAILED: java.net.UnknownHostException: Unable to resolve host "geonature.ecrins-parcnational.fr": No address associated with hostname

Ce n'est pas gênant en soit, mais il ne se passera rien si on tente une synchronisation.

DonovanMaillard commented 2 years ago
21:56:50.768 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] <-- HTTP FAILED: java.net.UnknownHostException: Unable to resolve host "geonature.ecrins-parcnational.fr": No address associated with hostname

Peut-être un soucis ponctuel de DNS pour ce log là, j'ai eu cette erreur sur des services hier qui ont été résolus rapidement... pas certain que ca vienne du mobile.

TheoLechemia commented 2 years ago

L'agent m'affirme qu'il a bien lancé une synchro manuelle. Et je confirme car j'ai déjà eu le problème sur mon tel. Je lance une syncrho manuelle, mais mes relevés ne monte pas (j'ai toujours X relevé non synchronisés) alors que la synchro descendante fonctionne bien. Par contre je ne comprend pas le HTTP FAILED. Le domaine est bon et la route répond bien ... Comment la synchro descendante peut fonctionner si l'host n'est pas bon ? No address associated with hostname

gildeluermoz commented 2 years ago

21:56:50.768 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] <-- HTTP FAILED: java.net.UnknownHostException: Unable to resolve host "geonature.ecrins-parcnational.fr": No address associated with hostname

C'est pas le HTTP au lieu de HTTPS le soucis ? On dirait que l'appel se fait en HTTP et pas en HTTPS.

DonovanMaillard commented 2 years ago

c'est vrai que dans nos tests de la 2.9 avec Camille, j'avais du passer mon instance test en HTTPS pour que ca fonctionne.

camillemonchicourt commented 2 years ago

Ah oui c'est possible qu'il y ait un soucis à ce niveau. Notre GeoNature est bien en HTTPS, mais si on l'interroge en HTTP, la redirection vers le HTTPS n'est pas effective. On va creuser ça.

TheoLechemia commented 2 years ago

Pourquoi l'appel se ferait en HTTP ? les logs disent : 21:56:50.658 INFO: [fr.geonature.datasync.features.settings.usecase.UpdateSettingsFromRemoteUseCase] updating app configuration from 'https://geonature.ecrins-parcnational.fr'... et notre conf est en HTTPS aussi

TheoLechemia commented 2 years ago

J'ai réussi à reproduire le bug, voici les logs : occtax_20220719_143003.log On dirait que la route du POST /api/occtax/releve n'est pas appelée

EDIT : Pour la synchro d'après, les relevés sont bien partis. Les logs (qui comprenne les deux synchro) occtax_20220719_143003.log

Une piste : lors de la première synchro, je n'était pas connecté, j'ai donc d'abord été redirigé vers la page de login, puis la synchro se lance et la route de POST n'a pas été appelée. Sur la 2ème synchro, j'étais déjà connecté et là, elle la c'est passé.

REDIT: j'ai reproduit 2 fois, je pense bien que la piste précédente est la bonne. Testé sur la 2.3

DonovanMaillard commented 2 years ago

@sgrimault j'ai vu que la 2.4 comprend une validation de l'authentification dans le changelog. Est-ce que ca permet notamment de gérer ce cas de figure ? Si oui on peut fermer le ticket.

sgrimault commented 2 years ago

@DonovanMaillard, Non, la correction en question porte sur https://github.com/PnX-SI/gn_mobile_occtax/issues/184 afin de vérifier si l'utilisateur connecté est bien valide coté "Occtax".