Projet

Général

Profil

Bug #74787

Conflit sur les bases de données dans le build

Ajouté par Emmanuel Cazenave il y a environ un an. Mis à jour il y a environ un an.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
23 février 2023
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

Description

https://jenkins.entrouvert.org/job/passerelle/3504/testReport/

psycopg2.errors.DuplicateDatabase: ERREUR:  la base de données « passerelle-test-_gw3 » existe déjà

Révisions associées

Révision d1583a99 (diff)
Ajouté par Emmanuel Cazenave il y a environ un an

tests: use a random number in database name and tox environment path (#74787)

Historique

#1

Mis à jour par Frédéric Péters il y a environ un an

Oui c'est le build de test "s" https://jenkins.entrouvert.org/job/s/ ("passerelle-73760") qui tourne en parallèle sur main et plouf, puisque :

            'NAME': ('passerelle-test-%s' % os.environ.get("BRANCH_NAME", "").replace('/', '-'))[:58],

Quantité d'options ici. (ajouter un numéro random, ou utiliser une autre variable d'environnement, type BUILD_TAG, virer le job, etc.)

#2

Mis à jour par Emmanuel Cazenave il y a environ un an

  • Assigné à mis à Emmanuel Cazenave

Frédéric Péters a écrit :

Oui c'est le build de test "s" https://jenkins.entrouvert.org/job/s/ ("passerelle-73760") qui tourne en parallèle sur main et plouf, puisque :

Ce job ne tourne pas sur main.

#3

Mis à jour par Robot Gitea il y a environ un an

  • Statut changé de Nouveau à En cours

Emmanuel Cazenave (ecazenave) a ouvert une pull request sur Gitea concernant cette demande :

#4

Mis à jour par Frédéric Péters il y a environ un an

Ok une précédente occurence j'ai souvenir que c'était le cas; mais si ce n'est pas ce job c'est un autre qui était sur main à ce moment-là. Et je vois maintenant que le build pointé date du 20 février, c'est exactement celui pour lequel j'avais regardé, et qui avait donné https://git.entrouvert.org/entrouvert/bidon/commit/234a4dcec747a871384b5476f76d00abd48b12e0 (laissé de côté parce que migration gitea)

#5

Mis à jour par Benjamin Dauvergne il y a environ un an

Sinon utiliser pg_virtualenv permet de ne pas se soucier du nom de la base ainsi que d'activer des options qui accélèrent un peu les tests, comme fsync=off.

authentic$ git grep fsync
Jenkinsfile:PGPORT=`python3 -c 'import struct; import socket; s=socket.socket(); s.setsockopt(socket.SOL_SOCKET, socket.SO_LINGER, struct.pack("ii", 1, 0)); s.bind(("", 0)); print(s.getsockname()[1]); s.close()'` pg_virtualenv -o fsync=off ${env.TMPDIR}/venv/bin/tox run --recreate ${env.TOXARGS}""" 

#6

Mis à jour par Emmanuel Cazenave il y a environ un an

Frédéric Péters a écrit :

https://git.entrouvert.org/entrouvert/bidon/commit/234a4dcec747a871384b5476f76d00abd48b12e0 (laissé de côté parce que migration gitea)

Je suis partis sur la même chose avant de voir ton message. Ça marche sur un job jenkins normal mais ça foire dans un job gitea sur les chemins tox :

No such file or directory: '/tmp/tox-jenkins/passerelle/jenkins-gitea-passerelle-wip/74787-build-tag-4/py3-django32-xmlschema14-codestyle-coverage/lib/python3.9/site-packages/xmlschema/schemas/XSD_1.0/XMLSchema.xsd'

Avec sur le système de fichier un /tmp/tox-jenkins/passerelle/jenkins-gitea-passerelle-wip%2F74787-build-tag-4.

Et tu as a du tomber sur un truc similaire sur le nom de la DB puisque tu fais 'NAME': ('bidon-test-%s' % os.environ.get("BUILD_TAG", "").replace('%2', '-').removeprefix('jenkins-'))[:63],, qu'il faudrait adapter d'une façon ou d'une autre pour le chemin tox.

Mais je trouve que ça devient vraiment lourdingue et chiant, alors je suis parti sur l'utilisation d'un numéro random, c'est plus simple et ça marche sur les jobs standards/gitea avec sur les noms de db des :

passerelle-test-18174_gw0
passerelle-test-18174_gw1
passerelle-test-18174_gw2
passerelle-test-18174_gw3
passerelle-test-18174_gw4
passerelle-test-18174_gw5

Avec un chemin tox : /tmp/tox-jenkins/passerelle/18174/

#7

Mis à jour par Robot Gitea il y a environ un an

  • Statut changé de En cours à Solution proposée
#8

Mis à jour par Emmanuel Cazenave il y a environ un an

  • Statut changé de Solution proposée à En cours

Benjamin Dauvergne a écrit :

Sinon utiliser pg_virtualenv

J'ai failli me laisser séduire, mais pas encore chaud bouillant, peut-être à cause de la ligne cabalistique que ça rajoute dans le Jenkinsfile.

#9

Mis à jour par Benjamin Dauvergne il y a environ un an

Emmanuel Cazenave a écrit :

Benjamin Dauvergne a écrit :

Sinon utiliser pg_virtualenv

J'ai failli me laisser séduire, mais pas encore chaud bouillant, peut-être à cause de la ligne cabalistique que ça rajoute dans le Jenkinsfile.

La partie PG_PORT n'est pas nécessairement compliqué, je n'avais pas cherché bien loin à l'époque mais on peut filter bêtement le chemin d'une socket unix, donc

PGPORT=${env.TMPDIR)/postgres.sock pg_virtualenv -o fsync=off ${env.TMPDIR}/venv/bin/tox run --recreate ${env.TOXARGS}

PS: Ça me marche pas :/

#10

Mis à jour par Robot Gitea il y a environ un an

  • Statut changé de En cours à Solution proposée
  • Assigné à changé de Emmanuel Cazenave à Benjamin Dauvergne

Benjamin Dauvergne (bdauvergne) a ouvert une pull request sur Gitea concernant cette demande :

#11

Mis à jour par Benjamin Dauvergne il y a environ un an

  • Assigné à changé de Benjamin Dauvergne à Emmanuel Cazenave
#12

Mis à jour par Frédéric Péters il y a environ un an

  • Statut changé de Solution proposée à En cours

Pas claire l'intention de la PR fermée ?

#13

Mis à jour par Robot Gitea il y a environ un an

  • Statut changé de En cours à Solution proposée
#14

Mis à jour par Robot Gitea il y a environ un an

  • Statut changé de Solution proposée à Solution validée

Agate Berriot (aberriot) a approuvé une pull request sur Gitea concernant cette demande :

#15

Mis à jour par Robot Gitea il y a environ un an

  • Statut changé de Solution validée à Résolu (à déployer)

Emmanuel Cazenave (ecazenave) a mergé une pull request sur Gitea concernant cette demande :

#16

Mis à jour par Transition automatique il y a environ un an

  • Statut changé de Résolu (à déployer) à Solution déployée
#17

Mis à jour par Transition automatique il y a 11 mois

Automatic expiration

Formats disponibles : Atom PDF