PnX-SI / GeoNature

Application de saisie et de synthèse des observations faune et flore
GNU General Public License v3.0
104 stars 102 forks source link

Le script d'installation globale s'arrête avec des exceptions #2659

Open rastaferraille opened 1 year ago

rastaferraille commented 1 year ago

Version 2.12.3

Description du bug Le script se termine par : ValueError: Invalid IPv6 URL

Version OS

Debian 11.7 fraîchement installée.

Voici le log plus détaillé :

NFO [alembic.runtime.migration] Context impl PostgresqlImpl. INFO [alembic.runtime.migration] Will assume transactional DDL. INFO [alembic.runtime.migration] Running upgrade -> 1715cf31a75d, Insert default French DEM (IGN 250m BD alti) INFO [alembic.runtime.migration] Downloading 'BDALTIV2_2-0_250M_ASC_LAMB93-IGN69_FRANCE_2017-06-21.zip'… Traceback (most recent call last): File "/home/geonatureadmin/geonature/backend/venv/bin/geonature", line 8, in sys.exit(main()) File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/click/core.py", line 1130, in call return self.main(args, kwargs) File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/click/core.py", line 1055, in main rv = self.invoke(ctx) File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/click/core.py", line 1657, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/click/core.py", line 1657, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/click/core.py", line 1404, in invoke return ctx.invoke(self.callback, ctx.params) File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/click/core.py", line 760, in invoke return __callback(args, kwargs) File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/click/decorators.py", line 26, in new_func return f(get_current_context(), *args, *kwargs) File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/flask/cli.py", line 357, in decorator return __ctx.invoke(f, args, kwargs) File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/click/core.py", line 760, in invoke return callback(*args, **kwargs) File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/flask_migrate/cli.py", line 149, in upgrade _upgrade(directory, revision, sql, tag, x_arg) File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/flask_migrate/init__.py", line 98, in wrapped f(*args, kwargs) File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/flask_migrate/init.py", line 185, in upgrade command.upgrade(config, revision, sql=sql, tag=tag) File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/alembic/command.py", line 322, in upgrade script.run_env() File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/alembic/script/base.py", line 569, in run_env util.load_python_file(self.dir, "env.py") File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/alembic/util/pyfiles.py", line 94, in load_python_file module = load_module_py(module_id, path) File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/alembic/util/pyfiles.py", line 110, in load_module_py spec.loader.exec_module(module) # type: ignore File "", line 790, in exec_module File "", line 228, in _call_with_frames_removed File "/home/geonatureadmin/geonature/backend/geonature/migrations/env.py", line 88, in run_migrations_online() File "/home/geonatureadmin/geonature/backend/geonature/migrations/env.py", line 82, in run_migrations_online context.run_migrations() File "", line 8, in run_migrations File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/alembic/runtime/environment.py", line 853, in run_migrations self.get_context().run_migrations(kw) File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/alembic/runtime/migration.py", line 623, in run_migrations step.migration_fn(**kw) File "/home/geonatureadmin/geonature/backend/geonature/migrations/versions/1715cf31a75d_insert_ign_250m_bd_alti_in_dem.py", line 40, in upgrade db_uri = urlsplit(config["SQLALCHEMY_DATABASE_URI"]) File "/usr/lib/python3.9/urllib/parse.py", line 476, in urlsplit raise ValueError("Invalid IPv6 URL") ValueError: Invalid IPv6 URL

mvergez commented 1 year ago

Bonjour,

J'ai l'impression que ça vient de SQLALCHEMY_DATABASE_URI qui est le paramètre de l'url de la base de données. Il faut le configurer dans /home/geonatureadmin/geonature/config/geonature_config.toml et doit avoir cette forme :

SQLALCHEMY_DATABASE_URI = "postgresql://user_pg:pass_pg@localhost:5432/geonature2db"

Il faut remplacer user_pg, pass_pg, localhost:5432 par respectivement l'utilisateur en base de données (geonatadmin par défaut), le mot de passe de cet utilisateur et l'adresse vers la base de donnée et le port. Peut-être avez vous entré une IP V6 pour l'adresse IP de la base de données ?

camillemonchicourt commented 1 year ago

De quel script parlez-vous ? Je pense aussi que le paramètre SQLALCHEMY_DATABASE_URI a été mal rempli. L'erreur rencontrée semble se produire à cette endroit quand le MNT est intégré dans la BDD - https://github.com/PnX-SI/GeoNature/blob/master/backend/geonature/migrations/versions/1715cf31a75d_insert_ign_250m_bd_alti_in_dem.py#L40

Mais si vous parlez d'installation globale install_all.sh, alors celui-ci remplit automatiquement le fichier de configuration de GeoNature à partir des infos présentes dans le fichier de configuration de l'installation globale (https://github.com/PnX-SI/GeoNature/blob/master/install/install_all/install_all.ini). Peut-être avez-vous modifié une valeur de ce fichier de manière incorrecte ?

Dans les installations classiques, la base de données est installée sur le même serveur que GeoNature, donc il faut laisser localhost:5432 et ne pas le remplacer par l'adresse IP du serveur. D'ailleurs, je ne suis pas certain que le script d'installation globale install_all.sh gère bien le cas un plus particulier où la BDD est sur un autre serveur.

rastaferraille commented 1 year ago

Bonjour !

Merci beaucoup pour votre réactivité impressionnante :) Vous avez raison, il s'agit du script intall_all.sh, désolé.

Et effectivement, j'avais sans doute modifié à tort le fichier !

Je vérifie demain au travail, merci encore.

Bien à vous,

Le jeu. 17 août 2023 à 18:09, Camille Monchicourt @.***> a écrit :

De quel script parlez-vous ? Je pense aussi que le paramètre SQLALCHEMY_DATABASE_URI a été mal rempli.

Mais si vous parlez d'installation globale install_all.sh, alors celui-ci remplit automatiquement le fichier de configuration de GeoNature à partir des infos présentes dans le fichier de configuration de l'installation globale ( https://github.com/PnX-SI/GeoNature/blob/master/install/install_all/install_all.ini ). Peut-être avez-vous modifié une valeur de ce fichier de manière incorrecte ?

Dans les installations classiques, la base de données est installée sur le même serveur que GeoNature, donc il faut laisser localhost:5432 et ne pas le remplacer par l'adresse IP du serveur. D'ailleurs, je ne suis pas certain que le script d'installation globale install_all.sh gère bien le cas un plus particulier où la BDD est sur un autre serveur.

— Reply to this email directly, view it on GitHub https://github.com/PnX-SI/GeoNature/issues/2659#issuecomment-1682562150, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAXOFUVBXS4F3Q7BSTQQNQDXVY6Z7ANCNFSM6AAAAAA3UJAKTQ . You are receiving this because you authored the thread.Message ID: @.***>

rastaferraille commented 1 year ago

Bonjour !

J'ai vérifié le fichier ini, je n'avais pas modifié l'adresse et laissé localhost. Par contre, en faisant ping localhost, je me suis rendu compte qu'il résolvait le nom en IP v6. J'ai modifié le fichier host pour désactiver cette résolution en V6. Maintenant, il résout bien en 127.0.0.1.

J'ai relancé le script d'installation.

Je vous tiens au courant !

Merci encore !

Le jeu. 17 août 2023 à 20:56, E. @.***> a écrit :

Bonjour !

Merci beaucoup pour votre réactivité impressionnante :) Vous avez raison, il s'agit du script intall_all.sh, désolé.

Et effectivement, j'avais sans doute modifié à tort le fichier !

Je vérifie demain au travail, merci encore.

Bien à vous,

Le jeu. 17 août 2023 à 18:09, Camille Monchicourt < @.***> a écrit :

De quel script parlez-vous ? Je pense aussi que le paramètre SQLALCHEMY_DATABASE_URI a été mal rempli.

Mais si vous parlez d'installation globale install_all.sh, alors celui-ci remplit automatiquement le fichier de configuration de GeoNature à partir des infos présentes dans le fichier de configuration de l'installation globale ( https://github.com/PnX-SI/GeoNature/blob/master/install/install_all/install_all.ini ). Peut-être avez-vous modifié une valeur de ce fichier de manière incorrecte ?

Dans les installations classiques, la base de données est installée sur le même serveur que GeoNature, donc il faut laisser localhost:5432 et ne pas le remplacer par l'adresse IP du serveur. D'ailleurs, je ne suis pas certain que le script d'installation globale install_all.sh gère bien le cas un plus particulier où la BDD est sur un autre serveur.

— Reply to this email directly, view it on GitHub https://github.com/PnX-SI/GeoNature/issues/2659#issuecomment-1682562150, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAXOFUVBXS4F3Q7BSTQQNQDXVY6Z7ANCNFSM6AAAAAA3UJAKTQ . You are receiving this because you authored the thread.Message ID: @.***>

rastaferraille commented 1 year ago

même erreur !

Le ven. 18 août 2023 à 09:11, E. @.***> a écrit :

Bonjour !

J'ai vérifié le fichier ini, je n'avais pas modifié l'adresse et laissé localhost. Par contre, en faisant ping localhost, je me suis rendu compte qu'il résolvait le nom en IP v6. J'ai modifié le fichier host pour désactiver cette résolution en V6. Maintenant, il résout bien en 127.0.0.1.

J'ai relancé le script d'installation.

Je vous tiens au courant !

Merci encore !

Le jeu. 17 août 2023 à 20:56, E. @.***> a écrit :

Bonjour !

Merci beaucoup pour votre réactivité impressionnante :) Vous avez raison, il s'agit du script intall_all.sh, désolé.

Et effectivement, j'avais sans doute modifié à tort le fichier !

Je vérifie demain au travail, merci encore.

Bien à vous,

Le jeu. 17 août 2023 à 18:09, Camille Monchicourt < @.***> a écrit :

De quel script parlez-vous ? Je pense aussi que le paramètre SQLALCHEMY_DATABASE_URI a été mal rempli.

Mais si vous parlez d'installation globale install_all.sh, alors celui-ci remplit automatiquement le fichier de configuration de GeoNature à partir des infos présentes dans le fichier de configuration de l'installation globale ( https://github.com/PnX-SI/GeoNature/blob/master/install/install_all/install_all.ini ). Peut-être avez-vous modifié une valeur de ce fichier de manière incorrecte ?

Dans les installations classiques, la base de données est installée sur le même serveur que GeoNature, donc il faut laisser localhost:5432 et ne pas le remplacer par l'adresse IP du serveur. D'ailleurs, je ne suis pas certain que le script d'installation globale install_all.sh gère bien le cas un plus particulier où la BDD est sur un autre serveur.

— Reply to this email directly, view it on GitHub https://github.com/PnX-SI/GeoNature/issues/2659#issuecomment-1682562150, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAXOFUVBXS4F3Q7BSTQQNQDXVY6Z7ANCNFSM6AAAAAA3UJAKTQ . You are receiving this because you authored the thread.Message ID: @.***>

SamyM71 commented 1 year ago

Bonjour, Pour les problèmes d'IPV6 sur Debian, si vous ne l'utilisez pas, ne pas hésiter à désactiver ce protocole avec cette commande, en root : echo "1" > /proc/sys/net/ipv6/conf/<INTERFACE>/disable_ipv6 Remplacer bien-sûr <INTERFACE> par la vôtre.

rastaferraille commented 1 year ago

Bonjour,

D'accord, merci pour l'info. Ma manip n'avait pas suffi (modification de etc/host). J'ai donc désactivé ipv6 et relancé le script.

Je vous tiens au courant !

Le ven. 18 août 2023 à 11:49, SamyM71 @.***> a écrit :

Bonjour, Pour les problèmes d'IPV6 sur Debian, si vous ne l'utilisez pas, ne pas hésiter à désactiver ce protocole avec cette commande, en root : echo "1" > /proc/sys/net/ipv6/conf//disable_ipv6 Remplacer bien-sûr par la vôtre.

— Reply to this email directly, view it on GitHub https://github.com/PnX-SI/GeoNature/issues/2659#issuecomment-1683658842, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAXOFUSFXOIDPLRQR4O65TTXV43A7ANCNFSM6AAAAAA3UJAKTQ . You are receiving this because you authored the thread.Message ID: @.***>

camillemonchicourt commented 1 year ago

En tout cas, on a fait plein de tests et d'installation avec le script install_all.sh, ainsi que de nombreux utilisateurs, et jamais rencontré ce soucis. Donc cela semble lié à votre contexte, ou à la configuration du serveur ?

rastaferraille commented 1 year ago

Oui, je ne comprends pas.. ça me renvoie toujours la même erreur : Invalid IPv6 URL sur la fonction urlsplit ) la ligne 476 de parse.py dans upgrade_db_uri.. Y compris en remplaçant localhost par 127.0.0.1 dans le fichier ini. Nous avons effectivement réalisé certains durcissements au niveau de la sécurité sur le serveur. Je vais chercher de ce côté.

Le ven. 18 août 2023 à 12:26, Camille Monchicourt @.***> a écrit :

En tout cas, on a fait plein de tests et d'installation avec le script install_all.sh, ainsi que de nombreux utilisateurs, et jamais rencontré ce soucis. Donc cela semble lié à votre contexte, ou à la configuration du serveur ?

— Reply to this email directly, view it on GitHub https://github.com/PnX-SI/GeoNature/issues/2659#issuecomment-1683703027, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAXOFUQUFAFXCB6WK2XYZJTXV47M7ANCNFSM6AAAAAA3UJAKTQ . You are receiving this because you authored the thread.Message ID: @.***>

rastaferraille commented 1 year ago

Je tombe là dessus : https://github.com/pypa/pipenv/issues/4061

If special characters in the password or in the username are present a "ValueError: Invalid IPv6 URL" is raised. I have not tested all special characters, a ")" seem to work, also "@" or some ohters, at least "[" or "]" do not work. A simple test with the following env vars and the example Pipfile leads to this error.

Pensez-vous que ça puisse être lié ?

Le ven. 18 août 2023 à 13:44, E. @.***> a écrit :

Oui, je ne comprends pas.. ça me renvoie toujours la même erreur : Invalid IPv6 URL sur la fonction urlsplit ) la ligne 476 de parse.py dans upgrade_db_uri.. Y compris en remplaçant localhost par 127.0.0.1 dans le fichier ini. Nous avons effectivement réalisé certains durcissements au niveau de la sécurité sur le serveur. Je vais chercher de ce côté.

Le ven. 18 août 2023 à 12:26, Camille Monchicourt < @.***> a écrit :

En tout cas, on a fait plein de tests et d'installation avec le script install_all.sh, ainsi que de nombreux utilisateurs, et jamais rencontré ce soucis. Donc cela semble lié à votre contexte, ou à la configuration du serveur ?

— Reply to this email directly, view it on GitHub https://github.com/PnX-SI/GeoNature/issues/2659#issuecomment-1683703027, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAXOFUQUFAFXCB6WK2XYZJTXV47M7ANCNFSM6AAAAAA3UJAKTQ . You are receiving this because you authored the thread.Message ID: @.***>

camillemonchicourt commented 1 year ago

Ahhh oui ça, c'est déjà arrivé. Il y a des tickets sur le sujet. Si y a un @ dans le mot de passe de BDD ça va poser soucis quand on va chercher à Split les infos de connexion à la BDD.

rastaferraille commented 1 year ago

Merci beaucoup ! Bonne nouvelle ! je refais un test avec un mot de passe plus simple et je vous redis.

Le ven. 18 août 2023 à 13:56, Camille Monchicourt @.***> a écrit :

Ahhh oui ça, c'est déjà arrivé. Il y a des tickets sur le sujet. Si y a un @ dans le mot de passe de BDD ça va poser soucis quand on va chercher à Split les infos de connexion à la BDD.

— Reply to this email directly, view it on GitHub https://github.com/PnX-SI/GeoNature/issues/2659#issuecomment-1683811273, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAXOFUQ3IXYRZS6VTQOGANLXV5J7JANCNFSM6AAAAAA3UJAKTQ . You are receiving this because you authored the thread.Message ID: @.***>

camillemonchicourt commented 1 year ago

Voir notamment https://github.com/PnX-SI/GeoNature/issues/2112

rastaferraille commented 1 year ago

L'Installation est terminée !

Un grand merci pour votre soutien et bravo pour ce script d'installation global vraiment au top !!

Le ven. 18 août 2023 à 15:05, Camille Monchicourt @.***> a écrit :

Voir notamment #2112 https://github.com/PnX-SI/GeoNature/issues/2112

— Reply to this email directly, view it on GitHub https://github.com/PnX-SI/GeoNature/issues/2659#issuecomment-1683892621, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAXOFUXHVQ54JHHG7Q22ACDXV5SBXANCNFSM6AAAAAA3UJAKTQ . You are receiving this because you authored the thread.Message ID: @.***>

camillemonchicourt commented 1 year ago

OK merci pour ce retour. Donc c'était bien un soucis lié au contenu du mot de passe de la BDD, comme dans l'autre ticket mentionné. Je crois qu'il est possible que l'on améliore ça côté GeoNature pour que ces caractères ne posent pas soucis.

A creuser...