PnX-SI / gn_mobile_occtax

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

Crash postgres à la synchronisation #221

Open gildeluermoz opened 1 year ago

gildeluermoz commented 1 year ago

Version de l'application

Version d'Occtax-mobile affectée par le bug : 2.4.0 Version de GeoNature utilisée : 2.11.1 A priori le soucis semble venir du traitement des requêtes de synchro coté GeoNature.

Description du bug et comportement attendu

Fréquement, la synchronisation provoque un plantage de postgres. Lors du dernier plantage, la synchro concernait une cinquantaine de relevés pour 2-300 obs. Il y a également environ 100 000 taxons dans la liste des taxons synchronisés. Postgres semble rester dans un état intermédiaire, comme s'il cherchait à faire aboutir qq chose qui n'abouti jamais puis, parfois 1 ou 2h plus tard, il crash. Il faut faire un restart de postgres ainsi que des services GN, taxhub et usershub pour rétablir un fonctionnement normal. En 2 mois et demi, c'est environ 6 à 8 plantages de ce genre auxquels j'ai du faire face. durant qq jours tout se passe normalement et parfois ça plante. L'analyse des logs n'est pas facile, ils sont très verbeux coté geonature et peu coté postgres. A priori la synchro a été faite vers 10h54 et postgres a planté vers 12h41

En recherchant des infos autour de ce genre d'erreur, j'ai trouvé ça : https://stackoverflow.com/questions/24130305/postgres-ssl-syscall-error-eof-detected-with-python-and-psycopg et notamment cette partie :

When: Queries take a long time to execute (more than 300 seconds). A socket timeout occurs in this instance.

Ca fait un moment que j'essaie de comprendre d'où vient ce souci que j'ai sur instance et pas sur les autres mais je ne trouve rien de très probant. Si vous avez des pistes, je suis preneur. Sachant que cette instance est en production chez un client, je ne maitrise pas quand ont lieu les synchros.

Logs postgresql :

A noter : au début : processus serveur (PID 252624) a été arrêté par le signal 9 : Processus arrêté Le processus qui a échoué exécutait : COMMIT Puis une suite en chaîne à 12h41:02 aboutissant à l'arret du serveur postgres à 19h40 redémarrage du service postgres manuellement.

2023-05-10 10:54:24.087 CEST [249503] geonatadmin@geonature2db LOG:  n'a pas pu recevoir les données du client : Connexion ré-initialisée par le correspondant
2023-05-10 10:54:24.089 CEST [249503] geonatadmin@geonature2db LOG:  fin de fichier (EOF) inattendue de la connexion du client avec une
    transaction ouverte
2023-05-10 12:41:02.085 CEST [249291] LOG:  processus serveur (PID 252624) a été arrêté par le signal 9 : Processus arrêté
2023-05-10 12:41:02.085 CEST [249291] DÉTAIL:  Le processus qui a échoué exécutait : COMMIT
2023-05-10 12:41:02.086 CEST [249291] LOG:  arrêt des autres processus serveur actifs
2023-05-10 12:41:02.088 CEST [249498] geonatadmin@geonature2db ATTENTION:  arrêt de la connexion à cause de l'arrêt brutal d'un autre processus serveur
2023-05-10 12:41:02.088 CEST [249498] geonatadmin@geonature2db DÉTAIL:  Le postmaster a commandé à ce processus serveur d'annuler la transaction
    courante et de quitter car un autre processus serveur a quitté anormalement
    et qu'il existe probablement de la mémoire partagée corrompue.
2023-05-10 12:41:02.088 CEST [249498] geonatadmin@geonature2db ASTUCE :  Dans un moment, vous devriez être capable de vous reconnecter à la base de
    données et de relancer votre commande.
2023-05-10 12:41:02.088 CEST [249496] geonatadmin@geonature2db ATTENTION:  arrêt de la connexion à cause de l'arrêt brutal d'un autre processus serveur
2023-05-10 12:41:02.088 CEST [249496] geonatadmin@geonature2db DÉTAIL:  Le postmaster a commandé à ce processus serveur d'annuler la transaction
    courante et de quitter car un autre processus serveur a quitté anormalement
    et qu'il existe probablement de la mémoire partagée corrompue.
2023-05-10 12:41:02.088 CEST [249496] geonatadmin@geonature2db ASTUCE :  Dans un moment, vous devriez être capable de vous reconnecter à la base de
    données et de relancer votre commande.
2023-05-10 12:41:02.088 CEST [249495] geonatadmin@geonature2db ATTENTION:  arrêt de la connexion à cause de l'arrêt brutal d'un autre processus serveur
2023-05-10 12:41:02.088 CEST [249495] geonatadmin@geonature2db DÉTAIL:  Le postmaster a commandé à ce processus serveur d'annuler la transaction
    courante et de quitter car un autre processus serveur a quitté anormalement
    et qu'il existe probablement de la mémoire partagée corrompue.
2023-05-10 12:41:02.088 CEST [249495] geonatadmin@geonature2db ASTUCE :  Dans un moment, vous devriez être capable de vous reconnecter à la base de
    données et de relancer votre commande.
2023-05-10 12:41:02.089 CEST [249516] geonatadmin@geonature2db ATTENTION:  arrêt de la connexion à cause de l'arrêt brutal d'un autre processus serveur
2023-05-10 12:41:02.089 CEST [249516] geonatadmin@geonature2db DÉTAIL:  Le postmaster a commandé à ce processus serveur d'annuler la transaction
    courante et de quitter car un autre processus serveur a quitté anormalement
    et qu'il existe probablement de la mémoire partagée corrompue.
2023-05-10 12:41:02.089 CEST [249516] geonatadmin@geonature2db ASTUCE :  Dans un moment, vous devriez être capable de vous reconnecter à la base de
    données et de relancer votre commande.
2023-05-10 12:41:02.089 CEST [249501] geonatadmin@geonature2db ATTENTION:  arrêt de la connexion à cause de l'arrêt brutal d'un autre processus serveur
2023-05-10 12:41:02.089 CEST [249501] geonatadmin@geonature2db DÉTAIL:  Le postmaster a commandé à ce processus serveur d'annuler la transaction
    courante et de quitter car un autre processus serveur a quitté anormalement
    et qu'il existe probablement de la mémoire partagée corrompue.
2023-05-10 12:41:02.089 CEST [249501] geonatadmin@geonature2db ASTUCE :  Dans un moment, vous devriez être capable de vous reconnecter à la base de
    données et de relancer votre commande.
2023-05-10 12:41:02.089 CEST [249504] geonatadmin@geonature2db ATTENTION:  arrêt de la connexion à cause de l'arrêt brutal d'un autre processus serveur
2023-05-10 12:41:02.089 CEST [249504] geonatadmin@geonature2db DÉTAIL:  Le postmaster a commandé à ce processus serveur d'annuler la transaction
    courante et de quitter car un autre processus serveur a quitté anormalement
    et qu'il existe probablement de la mémoire partagée corrompue.
2023-05-10 12:41:02.089 CEST [249504] geonatadmin@geonature2db ASTUCE :  Dans un moment, vous devriez être capable de vous reconnecter à la base de
    données et de relancer votre commande.
2023-05-10 12:41:02.089 CEST [344376] geonatadmin@geonature2db ATTENTION:  arrêt de la connexion à cause de l'arrêt brutal d'un autre processus serveur
2023-05-10 12:41:02.089 CEST [344376] geonatadmin@geonature2db DÉTAIL:  Le postmaster a commandé à ce processus serveur d'annuler la transaction
    courante et de quitter car un autre processus serveur a quitté anormalement
    et qu'il existe probablement de la mémoire partagée corrompue.
2023-05-10 12:41:02.089 CEST [344376] geonatadmin@geonature2db ASTUCE :  Dans un moment, vous devriez être capable de vous reconnecter à la base de
    données et de relancer votre commande.
2023-05-10 12:41:02.090 CEST [249296] ATTENTION:  arrêt de la connexion à cause de l'arrêt brutal d'un autre processus serveur
2023-05-10 12:41:02.090 CEST [249296] DÉTAIL:  Le postmaster a commandé à ce processus serveur d'annuler la transaction
    courante et de quitter car un autre processus serveur a quitté anormalement
    et qu'il existe probablement de la mémoire partagée corrompue.
2023-05-10 12:41:02.090 CEST [249296] ASTUCE :  Dans un moment, vous devriez être capable de vous reconnecter à la base de
    données et de relancer votre commande.
2023-05-10 12:41:02.091 CEST [274222] geonatadmin@geonature2db ATTENTION:  arrêt de la connexion à cause de l'arrêt brutal d'un autre processus serveur
2023-05-10 12:41:02.091 CEST [274222] geonatadmin@geonature2db DÉTAIL:  Le postmaster a commandé à ce processus serveur d'annuler la transaction
    courante et de quitter car un autre processus serveur a quitté anormalement
    et qu'il existe probablement de la mémoire partagée corrompue.
2023-05-10 12:41:02.091 CEST [274222] geonatadmin@geonature2db ASTUCE :  Dans un moment, vous devriez être capable de vous reconnecter à la base de
    données et de relancer votre commande.
2023-05-10 12:41:02.091 CEST [249502] geonatadmin@geonature2db ATTENTION:  arrêt de la connexion à cause de l'arrêt brutal d'un autre processus serveur
2023-05-10 12:41:02.091 CEST [249502] geonatadmin@geonature2db DÉTAIL:  Le postmaster a commandé à ce processus serveur d'annuler la transaction
    courante et de quitter car un autre processus serveur a quitté anormalement
    et qu'il existe probablement de la mémoire partagée corrompue.
2023-05-10 12:41:02.091 CEST [249502] geonatadmin@geonature2db ASTUCE :  Dans un moment, vous devriez être capable de vous reconnecter à la base de
    données et de relancer votre commande.
2023-05-10 12:41:02.091 CEST [249499] geonatadmin@geonature2db ATTENTION:  arrêt de la connexion à cause de l'arrêt brutal d'un autre processus serveur
2023-05-10 12:41:02.091 CEST [249499] geonatadmin@geonature2db DÉTAIL:  Le postmaster a commandé à ce processus serveur d'annuler la transaction
    courante et de quitter car un autre processus serveur a quitté anormalement
    et qu'il existe probablement de la mémoire partagée corrompue.
2023-05-10 12:41:02.091 CEST [249499] geonatadmin@geonature2db ASTUCE :  Dans un moment, vous devriez être capable de vous reconnecter à la base de
    données et de relancer votre commande.
2023-05-10 12:41:02.091 CEST [269576] geonatadmin@geonature2db ATTENTION:  arrêt de la connexion à cause de l'arrêt brutal d'un autre processus serveur
2023-05-10 12:41:02.091 CEST [269576] geonatadmin@geonature2db DÉTAIL:  Le postmaster a commandé à ce processus serveur d'annuler la transaction
    courante et de quitter car un autre processus serveur a quitté anormalement
    et qu'il existe probablement de la mémoire partagée corrompue.
2023-05-10 12:41:02.091 CEST [269576] geonatadmin@geonature2db ASTUCE :  Dans un moment, vous devriez être capable de vous reconnecter à la base de
    données et de relancer votre commande.
2023-05-10 12:41:02.092 CEST [272830] geonatadmin@geonature2db ATTENTION:  arrêt de la connexion à cause de l'arrêt brutal d'un autre processus serveur
2023-05-10 12:41:02.092 CEST [272830] geonatadmin@geonature2db DÉTAIL:  Le postmaster a commandé à ce processus serveur d'annuler la transaction
    courante et de quitter car un autre processus serveur a quitté anormalement
    et qu'il existe probablement de la mémoire partagée corrompue.
2023-05-10 12:41:02.092 CEST [272830] geonatadmin@geonature2db ASTUCE :  Dans un moment, vous devriez être capable de vous reconnecter à la base de
    données et de relancer votre commande.
2023-05-10 12:41:02.092 CEST [357939] geonatadmin@geonature2db ATTENTION:  arrêt de la connexion à cause de l'arrêt brutal d'un autre processus serveur
2023-05-10 12:41:02.092 CEST [357939] geonatadmin@geonature2db DÉTAIL:  Le postmaster a commandé à ce processus serveur d'annuler la transaction
    courante et de quitter car un autre processus serveur a quitté anormalement
    et qu'il existe probablement de la mémoire partagée corrompue.
2023-05-10 12:41:02.092 CEST [357939] geonatadmin@geonature2db ASTUCE :  Dans un moment, vous devriez être capable de vous reconnecter à la base de
    données et de relancer votre commande.
2023-05-10 12:41:02.094 CEST [249500] geonatadmin@geonature2db ATTENTION:  arrêt de la connexion à cause de l'arrêt brutal d'un autre processus serveur
2023-05-10 12:41:02.094 CEST [249500] geonatadmin@geonature2db DÉTAIL:  Le postmaster a commandé à ce processus serveur d'annuler la transaction
    courante et de quitter car un autre processus serveur a quitté anormalement
    et qu'il existe probablement de la mémoire partagée corrompue.
2023-05-10 12:41:02.094 CEST [249500] geonatadmin@geonature2db ASTUCE :  Dans un moment, vous devriez être capable de vous reconnecter à la base de
    données et de relancer votre commande.
2023-05-10 12:41:02.094 CEST [249500] geonatadmin@geonature2db CONTEXTE :  instruction SQL « SELECT $1.unique_id_sinp_occtax »
    fonction PL/pgSQL gn_commons.fct_trg_log_changes(), ligne 22 à EXECUTE
2023-05-10 12:41:02.204 CEST [249291] LOG:  tous les processus serveur sont arrêtés ; réinitialisation
2023-05-10 12:41:02.430 CEST [249291] LOG:  a reçu une demande d'arrêt rapide
2023-05-10 12:41:02.433 CEST [358381] LOG:  le système de bases de données a été interrompu ; dernier lancement connu à 2023-05-10 10:57:15 CEST
2023-05-10 12:41:02.639 CEST [358381] LOG:  le système de bases de données n'a pas été arrêté proprement ; restauration
    automatique en cours
2023-05-10 12:41:02.642 CEST [358381] LOG:  la ré-exécution commence à 3/1AF81EB0
2023-05-10 12:41:02.644 CEST [249291] LOG:  le système de base de données a été arrêté anormalement
2023-05-10 12:41:02.654 CEST [249291] LOG:  le système de base de données est arrêté
2023-05-10 19:40:49.476 CEST [358986] LOG:  démarrage de PostgreSQL 13.10 (Debian 13.10-0+deb11u1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit
2023-05-10 19:40:49.476 CEST [358986] LOG:  en écoute sur IPv6, adresse « ::1 », port 5432
2023-05-10 19:40:49.476 CEST [358986] LOG:  en écoute sur IPv4, adresse « 127.0.0.1 », port 5432
2023-05-10 19:40:49.478 CEST [358986] LOG:  écoute sur la socket Unix « /var/run/postgresql/.s.PGSQL.5432 »
2023-05-10 19:40:49.483 CEST [358987] LOG:  le système de bases de données a été interrompu lors d'une restauration à 2023-05-10 12:41:02 CEST
2023-05-10 19:40:49.483 CEST [358987] ASTUCE :  Ceci signifie probablement que des données ont été corrompues et que vous
    devrez utiliser la dernière sauvegarde pour la restauration.
2023-05-10 19:40:49.678 CEST [358987] LOG:  le système de bases de données n'a pas été arrêté proprement ; restauration
    automatique en cours
2023-05-10 19:40:49.680 CEST [358987] LOG:  la ré-exécution commence à 3/1AF81EB0
2023-05-10 19:40:49.699 CEST [358987] LOG:  ré-exécution faite à 3/1B197FA0
2023-05-10 19:40:49.754 CEST [358986] LOG:  le système de bases de données est prêt pour accepter les connexions

Logs Geonature

A noter : l'erreur lors d'une requête d'insertion dans cor_counting_occtax (pas d'horaire mais probablement 10h54) puis à 12h41 d'abord des psycopg2.OperationalError: server closed the connection unexpectedly puis rapidement des could not connect to server: Connection refused Is the server running on host "localhost" (127.0.0.1) and accepting TCP/IP connections on port 5432?

[9f49e2b1-9ad8-45cf-8aae-8035599da91c] Exception on /occtax/releve [POST]
Traceback (most recent call last):
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1276, in _execute_context
    self.dialect.do_execute(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 608, in do_execute
    cursor.execute(statement, parameters)
psycopg2.OperationalError: SSL SYSCALL error: EOF detected

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/flask/app.py", line 1820, in full_dispatch_request
    rv = self.dispatch_request()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/flask/app.py", line 1796, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
  File "/home/geonatureadmin/geonature/backend/geonature/core/gn_permissions/decorators.py", line 84, in __check_cruved_scope
    return fn(*args, **kwargs)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/utils_flask_sqla/response.py", line 19, in _json_resp
    res = fn(*args, **kwargs)
  File "/home/geonatureadmin/geonature/contrib/occtax/backend/occtax/blueprint.py", line 408, in insertOrUpdateOneReleve
    DB.session.commit()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/scoping.py", line 163, in do
    return getattr(self.registry(), name)(*args, **kwargs)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 1046, in commit
    self.transaction.commit()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 504, in commit
    self._prepare_impl()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 483, in _prepare_impl
    self.session.flush()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 2540, in flush
    self._flush(objects)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 2682, in _flush
    transaction.rollback(_capture_exception=True)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/util/langhelpers.py", line 68, in __exit__
    compat.raise_(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
    raise exception
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 2642, in _flush
    flush_context.execute()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/unitofwork.py", line 422, in execute
    rec.execute(self)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/unitofwork.py", line 586, in execute
    persistence.save_obj(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/persistence.py", line 239, in save_obj
    _emit_insert_statements(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/persistence.py", line 1135, in _emit_insert_statements
    result = cached_connections[connection].execute(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1011, in execute
    return meth(self, multiparams, params)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/sql/elements.py", line 298, in _execute_on_connection
    return connection._execute_clauseelement(self, multiparams, params)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1124, in _execute_clauseelement
    ret = self._execute_context(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1316, in _execute_context
    self._handle_dbapi_exception(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1510, in _handle_dbapi_exception
    util.raise_(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
    raise exception
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1276, in _execute_context
    self.dialect.do_execute(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 608, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) SSL SYSCALL error: EOF detected

[SQL: INSERT INTO pr_occtax.cor_counting_occtax (unique_id_sinp_occtax, id_occurrence_occtax, id_nomenclature_life_stage, id_nomenclature_sex, id_nomenclature_obj_count, id_nomenclature_type_count, count_min, count_max) VALUES ((SELECT uuid_generate_v4() AS uuid_generate_v4_1), %(id_occurrence_occtax)s, %(id_nomenclature_life_stage)s, %(id_nomenclature_sex)s, %(id_nomenclature_obj_count)s, %(id_nomenclature_type_count)s, %(count_min)s, %(count_max)s) RETURNING pr_occtax.cor_counting_occtax.id_counting_occtax]
[parameters: {'id_occurrence_occtax': 5235, 'id_nomenclature_life_stage': 1, 'id_nomenclature_sex': 168, 'id_nomenclature_obj_count': 143, 'id_nomenclature_type_count': 91, 'count_min': 1, 'count_max': 1}]
(Background on this error at: http://sqlalche.me/e/13/e3q8)
[2023-05-10 12:41:02 +0200] [249382] [ERROR] Exception on /occtax/releve [POST]
Traceback (most recent call last):
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1276, in _execute_context
    self.dialect.do_execute(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 608, in do_execute
    cursor.execute(statement, parameters)
psycopg2.OperationalError: SSL SYSCALL error: EOF detected

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/flask/app.py", line 1820, in full_dispatch_request
    rv = self.dispatch_request()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/flask/app.py", line 1796, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
  File "/home/geonatureadmin/geonature/backend/geonature/core/gn_permissions/decorators.py", line 84, in __check_cruved_scope
    return fn(*args, **kwargs)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/utils_flask_sqla/response.py", line 19, in _json_resp
    res = fn(*args, **kwargs)
  File "/home/geonatureadmin/geonature/contrib/occtax/backend/occtax/blueprint.py", line 408, in insertOrUpdateOneReleve
    DB.session.commit()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/scoping.py", line 163, in do
    return getattr(self.registry(), name)(*args, **kwargs)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 1046, in commit
    self.transaction.commit()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 504, in commit
    self._prepare_impl()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 483, in _prepare_impl
    self.session.flush()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 2540, in flush
    self._flush(objects)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 2682, in _flush
    transaction.rollback(_capture_exception=True)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/util/langhelpers.py", line 68, in __exit__
    compat.raise_(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
    raise exception
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 2642, in _flush
    flush_context.execute()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/unitofwork.py", line 422, in execute
    rec.execute(self)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/unitofwork.py", line 586, in execute
    persistence.save_obj(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/persistence.py", line 239, in save_obj
    _emit_insert_statements(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/persistence.py", line 1135, in _emit_insert_statements
    result = cached_connections[connection].execute(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1011, in execute
    return meth(self, multiparams, params)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/sql/elements.py", line 298, in _execute_on_connection
    return connection._execute_clauseelement(self, multiparams, params)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1124, in _execute_clauseelement
    ret = self._execute_context(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1316, in _execute_context
    self._handle_dbapi_exception(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1510, in _handle_dbapi_exception
    util.raise_(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
    raise exception
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1276, in _execute_context
    self.dialect.do_execute(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 608, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) SSL SYSCALL error: EOF detected

[SQL: INSERT INTO pr_occtax.cor_counting_occtax (unique_id_sinp_occtax, id_occurrence_occtax, id_nomenclature_life_stage, id_nomenclature_sex, id_nomenclature_obj_count, id_nomenclature_type_count, count_min, count_max) VALUES ((SELECT uuid_generate_v4() AS uuid_generate_v4_1), %(id_occurrence_occtax)s, %(id_nomenclature_life_stage)s, %(id_nomenclature_sex)s, %(id_nomenclature_obj_count)s, %(id_nomenclature_type_count)s, %(count_min)s, %(count_max)s) RETURNING pr_occtax.cor_counting_occtax.id_counting_occtax]
[parameters: {'id_occurrence_occtax': 5235, 'id_nomenclature_life_stage': 1, 'id_nomenclature_sex': 168, 'id_nomenclature_obj_count': 143, 'id_nomenclature_type_count': 91, 'count_min': 1, 'count_max': 1}]
(Background on this error at: http://sqlalche.me/e/13/e3q8)
[95f99be4-bd61-4c2a-95f3-3218cebecc49] Exception on /synthese/color_taxon [GET]
Traceback (most recent call last):
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1276, in _execute_context
    self.dialect.do_execute(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 608, in do_execute
    cursor.execute(statement, parameters)
psycopg2.OperationalError: server closed the connection unexpectedly
    This probably means the server terminated abnormally
    before or while processing the request.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/flask/app.py", line 1818, in full_dispatch_request
    rv = self.preprocess_request()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/flask/app.py", line 2309, in preprocess_request
    rv = self.ensure_sync(before_func)()
  File "/home/geonatureadmin/geonature/backend/geonature/app.py", line 131, in load_current_user
    g.current_user = user_from_token(request.cookies["token"]).role
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/pypnusershub/db/tools.py", line 115, in user_from_token
    id_app_from_config = get_current_app_id()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/pypnusershub/utils.py", line 79, in get_current_app_id
    Application.query.filter_by(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/query.py", line 3490, in one
    ret = self.one_or_none()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/query.py", line 3459, in one_or_none
    ret = list(self)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/query.py", line 3535, in __iter__
    return self._execute_and_instances(context)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/query.py", line 3560, in _execute_and_instances
    result = conn.execute(querycontext.statement, self._params)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1011, in execute
    return meth(self, multiparams, params)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/sql/elements.py", line 298, in _execute_on_connection
    return connection._execute_clauseelement(self, multiparams, params)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1124, in _execute_clauseelement
    ret = self._execute_context(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1316, in _execute_context
    self._handle_dbapi_exception(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1510, in _handle_dbapi_exception
    util.raise_(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
    raise exception
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1276, in _execute_context
    self.dialect.do_execute(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 608, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) server closed the connection unexpectedly
    This probably means the server terminated abnormally
    before or while processing the request.

[SQL: SELECT utilisateurs.t_applications.id_application AS utilisateurs_t_applications_id_application, utilisateurs.t_applications.code_application AS utilisateurs_t_applications_code_application, utilisateurs.t_applications.nom_application AS utilisateurs_t_applications_nom_application, utilisateurs.t_applications.desc_application AS utilisateurs_t_applications_desc_application, utilisateurs.t_applications.id_parent AS utilisateurs_t_applications_id_parent 
FROM utilisateurs.t_applications 
WHERE utilisateurs.t_applications.code_application = %(code_application_1)s]
[parameters: {'code_application_1': 'GN'}]
(Background on this error at: http://sqlalche.me/e/13/e3q8)
[2023-05-10 12:41:03 +0200] [249383] [ERROR] Exception on /synthese/color_taxon [GET]
Traceback (most recent call last):
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1276, in _execute_context
    self.dialect.do_execute(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 608, in do_execute
    cursor.execute(statement, parameters)
psycopg2.OperationalError: server closed the connection unexpectedly
    This probably means the server terminated abnormally
    before or while processing the request.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/flask/app.py", line 1818, in full_dispatch_request
    rv = self.preprocess_request()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/flask/app.py", line 2309, in preprocess_request
    rv = self.ensure_sync(before_func)()
  File "/home/geonatureadmin/geonature/backend/geonature/app.py", line 131, in load_current_user
    g.current_user = user_from_token(request.cookies["token"]).role
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/pypnusershub/db/tools.py", line 115, in user_from_token
    id_app_from_config = get_current_app_id()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/pypnusershub/utils.py", line 79, in get_current_app_id
    Application.query.filter_by(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/query.py", line 3490, in one
    ret = self.one_or_none()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/query.py", line 3459, in one_or_none
    ret = list(self)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/query.py", line 3535, in __iter__
    return self._execute_and_instances(context)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/query.py", line 3560, in _execute_and_instances
    result = conn.execute(querycontext.statement, self._params)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1011, in execute
    return meth(self, multiparams, params)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/sql/elements.py", line 298, in _execute_on_connection
    return connection._execute_clauseelement(self, multiparams, params)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1124, in _execute_clauseelement
    ret = self._execute_context(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1316, in _execute_context
    self._handle_dbapi_exception(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1510, in _handle_dbapi_exception
    util.raise_(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
    raise exception
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1276, in _execute_context
    self.dialect.do_execute(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 608, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) server closed the connection unexpectedly
    This probably means the server terminated abnormally
    before or while processing the request.

[SQL: SELECT utilisateurs.t_applications.id_application AS utilisateurs_t_applications_id_application, utilisateurs.t_applications.code_application AS utilisateurs_t_applications_code_application, utilisateurs.t_applications.nom_application AS utilisateurs_t_applications_nom_application, utilisateurs.t_applications.desc_application AS utilisateurs_t_applications_desc_application, utilisateurs.t_applications.id_parent AS utilisateurs_t_applications_id_parent 
FROM utilisateurs.t_applications 
WHERE utilisateurs.t_applications.code_application = %(code_application_1)s]
[parameters: {'code_application_1': 'GN'}]
(Background on this error at: http://sqlalche.me/e/13/e3q8)
[51c67b62-1ca3-4990-be5c-77785039be38] Exception on /occtax/releve [POST]
Traceback (most recent call last):
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 2336, in _wrap_pool_connect
    return fn()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 364, in connect
    return _ConnectionFairy._checkout(self)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 778, in _checkout
    fairy = _ConnectionRecord.checkout(pool)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 500, in checkout
    rec._checkin_failed(err)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/util/langhelpers.py", line 68, in __exit__
    compat.raise_(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
    raise exception
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 497, in checkout
    dbapi_connection = rec.get_connection()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 638, in get_connection
    self.__connect()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 661, in __connect
    pool.logger.debug("Error on connect(): %s", e)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/util/langhelpers.py", line 68, in __exit__
    compat.raise_(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
    raise exception
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 656, in __connect
    connection = pool._invoke_creator(self)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/strategies.py", line 114, in connect
    return dialect.connect(*cargs, **cparams)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 508, in connect
    return self.dbapi.connect(*cargs, **cparams)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/psycopg2/__init__.py", line 122, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError: could not connect to server: Connection refused
    Is the server running on host "localhost" (::1) and accepting
    TCP/IP connections on port 5432?
could not connect to server: Connection refused
    Is the server running on host "localhost" (127.0.0.1) and accepting
    TCP/IP connections on port 5432?

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/flask/app.py", line 1818, in full_dispatch_request
    rv = self.preprocess_request()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/flask/app.py", line 2304, in preprocess_request
    url_func(request.endpoint, request.view_args)
  File "/home/geonatureadmin/geonature/contrib/occtax/backend/occtax/blueprint.py", line 62, in set_current_module
    g.current_module = TModules.query.filter_by(module_code=requested_module).first_or_404(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/flask_sqlalchemy/__init__.py", line 468, in first_or_404
    rv = self.first()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/query.py", line 3429, in first
    ret = list(self[0:1])
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/query.py", line 3203, in __getitem__
    return list(res)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/query.py", line 3535, in __iter__
    return self._execute_and_instances(context)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/query.py", line 3556, in _execute_and_instances
    conn = self._get_bind_args(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/query.py", line 3571, in _get_bind_args
    return fn(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/query.py", line 3550, in _connection_from_session
    conn = self.session.connection(**kw)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 1142, in connection
    return self._connection_for_bind(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 1150, in _connection_for_bind
    return self.transaction._connection_for_bind(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 433, in _connection_for_bind
    conn = bind._contextual_connect()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 2302, in _contextual_connect
    self._wrap_pool_connect(self.pool.connect, None),
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 2339, in _wrap_pool_connect
    Connection._handle_dbapi_exception_noconnection(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1583, in _handle_dbapi_exception_noconnection
    util.raise_(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
    raise exception
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 2336, in _wrap_pool_connect
    return fn()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 364, in connect
    return _ConnectionFairy._checkout(self)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 778, in _checkout
    fairy = _ConnectionRecord.checkout(pool)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 500, in checkout
    rec._checkin_failed(err)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/util/langhelpers.py", line 68, in __exit__
    compat.raise_(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
    raise exception
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 497, in checkout
    dbapi_connection = rec.get_connection()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 638, in get_connection
    self.__connect()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 661, in __connect
    pool.logger.debug("Error on connect(): %s", e)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/util/langhelpers.py", line 68, in __exit__
    compat.raise_(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
    raise exception
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 656, in __connect
    connection = pool._invoke_creator(self)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/strategies.py", line 114, in connect
    return dialect.connect(*cargs, **cparams)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 508, in connect
    return self.dbapi.connect(*cargs, **cparams)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/psycopg2/__init__.py", line 122, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) could not connect to server: Connection refused
    Is the server running on host "localhost" (::1) and accepting
    TCP/IP connections on port 5432?
could not connect to server: Connection refused
    Is the server running on host "localhost" (127.0.0.1) and accepting
    TCP/IP connections on port 5432?

(Background on this error at: http://sqlalche.me/e/13/e3q8)
[2023-05-10 12:41:03 +0200] [249382] [ERROR] Exception on /occtax/releve [POST]
Traceback (most recent call last):
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 2336, in _wrap_pool_connect
    return fn()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 364, in connect
    return _ConnectionFairy._checkout(self)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 778, in _checkout
    fairy = _ConnectionRecord.checkout(pool)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 500, in checkout
    rec._checkin_failed(err)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/util/langhelpers.py", line 68, in __exit__
    compat.raise_(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
    raise exception
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 497, in checkout
    dbapi_connection = rec.get_connection()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 638, in get_connection
    self.__connect()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 661, in __connect
    pool.logger.debug("Error on connect(): %s", e)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/util/langhelpers.py", line 68, in __exit__
    compat.raise_(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
    raise exception
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 656, in __connect
    connection = pool._invoke_creator(self)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/strategies.py", line 114, in connect
    return dialect.connect(*cargs, **cparams)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 508, in connect
    return self.dbapi.connect(*cargs, **cparams)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/psycopg2/__init__.py", line 122, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError: could not connect to server: Connection refused
    Is the server running on host "localhost" (::1) and accepting
    TCP/IP connections on port 5432?
could not connect to server: Connection refused
    Is the server running on host "localhost" (127.0.0.1) and accepting
    TCP/IP connections on port 5432?

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/flask/app.py", line 1818, in full_dispatch_request
    rv = self.preprocess_request()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/flask/app.py", line 2304, in preprocess_request
    url_func(request.endpoint, request.view_args)
  File "/home/geonatureadmin/geonature/contrib/occtax/backend/occtax/blueprint.py", line 62, in set_current_module
    g.current_module = TModules.query.filter_by(module_code=requested_module).first_or_404(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/flask_sqlalchemy/__init__.py", line 468, in first_or_404
    rv = self.first()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/query.py", line 3429, in first
    ret = list(self[0:1])
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/query.py", line 3203, in __getitem__
    return list(res)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/query.py", line 3535, in __iter__
    return self._execute_and_instances(context)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/query.py", line 3556, in _execute_and_instances
    conn = self._get_bind_args(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/query.py", line 3571, in _get_bind_args
    return fn(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/query.py", line 3550, in _connection_from_session
    conn = self.session.connection(**kw)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 1142, in connection
    return self._connection_for_bind(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 1150, in _connection_for_bind
    return self.transaction._connection_for_bind(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 433, in _connection_for_bind
    conn = bind._contextual_connect()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 2302, in _contextual_connect
    self._wrap_pool_connect(self.pool.connect, None),
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 2339, in _wrap_pool_connect
    Connection._handle_dbapi_exception_noconnection(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1583, in _handle_dbapi_exception_noconnection
    util.raise_(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
    raise exception
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 2336, in _wrap_pool_connect
    return fn()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 364, in connect
    return _ConnectionFairy._checkout(self)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 778, in _checkout
    fairy = _ConnectionRecord.checkout(pool)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 500, in checkout
    rec._checkin_failed(err)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/util/langhelpers.py", line 68, in __exit__
    compat.raise_(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
    raise exception
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 497, in checkout
    dbapi_connection = rec.get_connection()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 638, in get_connection
    self.__connect()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 661, in __connect
    pool.logger.debug("Error on connect(): %s", e)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/util/langhelpers.py", line 68, in __exit__
    compat.raise_(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
    raise exception
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 656, in __connect
    connection = pool._invoke_creator(self)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/strategies.py", line 114, in connect
    return dialect.connect(*cargs, **cparams)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 508, in connect
    return self.dbapi.connect(*cargs, **cparams)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/psycopg2/__init__.py", line 122, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) could not connect to server: Connection refused
    Is the server running on host "localhost" (::1) and accepting
    TCP/IP connections on port 5432?
could not connect to server: Connection refused
    Is the server running on host "localhost" (127.0.0.1) and accepting
    TCP/IP connections on port 5432?

(Background on this error at: http://sqlalche.me/e/13/e3q8)
[947c6a5f-be2c-47be-9419-c51cd4b16539] Exception on /occtax/releve [POST]
Traceback (most recent call last):
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 2336, in _wrap_pool_connect
    return fn()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 364, in connect
    return _ConnectionFairy._checkout(self)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 778, in _checkout
    fairy = _ConnectionRecord.checkout(pool)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 500, in checkout
    rec._checkin_failed(err)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/util/langhelpers.py", line 68, in __exit__
    compat.raise_(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
    raise exception
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 497, in checkout
    dbapi_connection = rec.get_connection()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 638, in get_connection
    self.__connect()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 661, in __connect
    pool.logger.debug("Error on connect(): %s", e)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/util/langhelpers.py", line 68, in __exit__
    compat.raise_(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
    raise exception
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 656, in __connect
    connection = pool._invoke_creator(self)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/strategies.py", line 114, in connect
    return dialect.connect(*cargs, **cparams)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 508, in connect
    return self.dbapi.connect(*cargs, **cparams)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/psycopg2/__init__.py", line 122, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError: could not connect to server: Connection refused
    Is the server running on host "localhost" (::1) and accepting
    TCP/IP connections on port 5432?
could not connect to server: Connection refused
    Is the server running on host "localhost" (127.0.0.1) and accepting
    TCP/IP connections on port 5432?

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/flask/app.py", line 1818, in full_dispatch_request
    rv = self.preprocess_request()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/flask/app.py", line 2304, in preprocess_request
    url_func(request.endpoint, request.view_args)
  File "/home/geonatureadmin/geonature/contrib/occtax/backend/occtax/blueprint.py", line 62, in set_current_module
    g.current_module = TModules.query.filter_by(module_code=requested_module).first_or_404(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/flask_sqlalchemy/__init__.py", line 468, in first_or_404
    rv = self.first()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/query.py", line 3429, in first
    ret = list(self[0:1])
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/query.py", line 3203, in __getitem__
    return list(res)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/query.py", line 3535, in __iter__
    return self._execute_and_instances(context)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/query.py", line 3556, in _execute_and_instances
    conn = self._get_bind_args(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/query.py", line 3571, in _get_bind_args
    return fn(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/query.py", line 3550, in _connection_from_session
    conn = self.session.connection(**kw)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 1142, in connection
    return self._connection_for_bind(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 1150, in _connection_for_bind
    return self.transaction._connection_for_bind(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 433, in _connection_for_bind
    conn = bind._contextual_connect()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 2302, in _contextual_connect
    self._wrap_pool_connect(self.pool.connect, None),
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 2339, in _wrap_pool_connect
    Connection._handle_dbapi_exception_noconnection(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1583, in _handle_dbapi_exception_noconnection
    util.raise_(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
    raise exception
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 2336, in _wrap_pool_connect
    return fn()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 364, in connect
    return _ConnectionFairy._checkout(self)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 778, in _checkout
    fairy = _ConnectionRecord.checkout(pool)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 500, in checkout
    rec._checkin_failed(err)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/util/langhelpers.py", line 68, in __exit__
    compat.raise_(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
    raise exception
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 497, in checkout
    dbapi_connection = rec.get_connection()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 638, in get_connection
    self.__connect()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 661, in __connect
    pool.logger.debug("Error on connect(): %s", e)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/util/langhelpers.py", line 68, in __exit__
    compat.raise_(
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
    raise exception
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 656, in __connect
    connection = pool._invoke_creator(self)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/strategies.py", line 114, in connect
    return dialect.connect(*cargs, **cparams)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 508, in connect
    return self.dbapi.connect(*cargs, **cparams)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/psycopg2/__init__.py", line 122, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) could not connect to server: Connection refused
    Is the server running on host "localhost" (::1) and accepting
    TCP/IP connections on port 5432?
could not connect to server: Connection refused
    Is the server running on host "localhost" (127.0.0.1) and accepting
    TCP/IP connections on port 5432?

(Background on this error at: http://sqlalche.me/e/13/e3q8)
sgrimault commented 1 year ago

Bonjour @gildeluermoz, C'est plus un sujet coté GeoNature que coté "Occtax" :)

gildeluermoz commented 1 year ago

Bonjour Sébastien, Oui, j'ai hésité, je peux recréer ce ticket dans GN. Je profite que le ticket est ici pour te poser une question strictement mobile. Ce souci semble en lien avec des requêtes trop longues à retourner un résultat et/ou à une multiplication des connexions.

Concernant les pistes pour réduire le temps de traitement des requêtes, est-ce que tu peux me dire si j'ai intérêt à mettre "page_size": 10000 au lieu de 90000 actuellement sur une instance ou la liste des taxons est de 138 000 ?

Autre piste, si on synchronise une cinquantaine de relevés avec 2-300 observations, est-ce que cela créé 1 connexion par observations donc 2 ou 300 connexions ou tout passe dans une seule transaction. Dans un cas comme dans l'autre on peut soit avoir un souci avec le max_connexions de postgres soit avoir une transaction trop longue si elle encapsule beaucoup d'observation à pousser en base.

A noter ce point dans les logs

processus serveur (PID 252624) a été arrêté par le signal 9 : Processus arrêté
Le processus qui a échoué exécutait : COMMIT

qui fait penser à une erreur lors d'un commit d'une transaction longue à aboutir. En te remerciant

sgrimault commented 1 year ago

Ah oui effectivement 90000 pour page_size ça me semble élevé. De mémoire 50000 c'était déjà limite sur l'instance de demo. La valeur par défaut pour page_size a été fixée à 1000 (un peu faible sans doute pour assurer que les appels chaînées puissent passer sans souci, mais je pense que 10000 me semble très bien comme un bon compromis entre le nombre d'appels à empiler coté "Occtax" et le volume de données à remonter à chaque appel.

Pour la partie synchronisation des relevés, le processus a été revue depuis la version 2.5.0 avec la gestion des médias et il est plus complexe car il doit enchaîner plusieurs appels coté GeoNature. Ce traitement n'est pas transactionnel :

Avant la version 2.5.0, il n'y avait qu'une seule route appelée pour créer un relevé dans son intégralité (occurrences et dénombrement) : POST -> /api/occtax/releve. Comme cette route est considérée comme obsolète peut être ne gère-t-elle pas très bien la création complète d'un relevé surtout si ce dernier comporte peut être trop d'occurrences ?

gildeluermoz commented 1 year ago

Merci Sébastien pour cette réponse précieuse. Ca m'éclaire bien sur les potentielles pistes du problème et d'amélioration. Je passe page_size à 10 000 et je vais passer l'appli en V2.6.0. elle était en 2.4.0.