Projet

Général

Profil

Scénario #35033

Erreur incompréhensible si un paquet est dans le module et dans la variante

Ajouté par Emmanuel GARETTE il y a plus d'un an. Mis à jour il y a environ un an.

Statut:
Terminé (Sprint)
Priorité:
Normal
Assigné à:
Catégorie:
-
Début:
01/10/2022
Echéance:
01/01/2024
% réalisé:

100%

Points de scénarios:
2.0
Restant à faire (heures):
0.00 heure
Estimation basée sur la vélocité:
Release:
Liens avec la release:
Auto

Description

constat

Dans ma variante seth j'avais ajouté les paquets eole-fichier-quota et eole-ad-dc-pso (ils étaient marqué comme installé mais non déclaré).

Suite à l'inclusion de ces paquets dans le module (#34762), j'ai une série d'erreurs qu'il est difficile a interprété.

L'erreur primaire est la présence dans les logs :

  • nov. 19 19:48:36 zephir zephir_backend[461261]: [-] Erreur de lecture de la configuration du serveur 23 ('int' object has no attribute '__cmp__')
  • il est impossible de lancer gen_config sur le serveur en s'identifiant sur Zéphir

Les problèmes :

1/ dans gen_config lancé sur le serveur distant on a une erreur incompéhensible :

dans /usr/lib/python3/dist-packages/eolegenconfig/lib.py

il y a : code, res = proxy.serveurs.get_dico(zephir['server_id'], 'modif_config')

Il n'y a pas de vérification du code. S'il y a une erreur "res" est alors une string.
L'eval sur la string renvoi une erreur.

2/ problème de comparaison dans /usr/lib/python3/dist-packages/zephir/utils/creolewrap.py

cmp n'existe plus en python3 :

def sort_dicts(dict1, dict2):
    name1 = os.path.basename(dict1[0])
    name2 = os.path.basename(dict2[0])
    if name1 == name2:
        # noms identiques: ordre des répertoires conservé
        return dict1[1].__cmp__(dict2[1])
    elif name1 > name2:
        return 1
    else:
        return -1

3/ problème identique dans /usr/lib/python3/dist-packages/creole/xmlreflector.py

                    def sort_group(file1, file2):
                        if file1[0] == file2[0]:
                            # sort by initial xmlfolder order if same name
                            return file1[1].__cmp__(file2[1])
                        # sort by filename
                        elif file1[0] > file2[0]:
                            return 1
                        else:
                            return -1

4/ une fois tout cela corrigé, l'erreur n'est toujours pas compréhensible :

zephir_backend[467913]: #011creole.error.CreoleDictConsistencyError: b'D\xc3\xa9j\xc3\xa0 d\xc3\xa9fini dans un autre fichier XML, /etc/warnquota.conf ne peut \xc3\xaatre cr\xc3\xa9\xc3\xa9 de nouveau'

Proposition

- gen_config devrait interpréter correctement le code retour Zéphir
- logiquement il ne devrait pas y avoir 2 fois le même nom de fichier en dehors du cadre de Zéphir. En effet, sur un serveur tous les fichiers sont chargés depuis un répertoire unique. Il ne peut pas y avoir 2 fois un même fichier avec le même nom.
Sur Zéphir on pourrait détecter que les liens symboliques pointes vers le même fichier et faire une erreur explicite.

À faire sur EOLE ≥ 2.8.0

eole-dns-ad-dc.png Voir (77 ko) Joël Cuissinat, 06/12/2022 16:32


Sous-tâches

Tâche #35361: TestFerméBenjamin Bohard

Tâche #35362: Gestion dans gen_config des codes de retour envoyés par zéphirFerméLaurent Gourvenec

Tâche #35364: Remplacement de la méthode __cmp__ pour les entiersFerméLaurent Gourvenec

Tâche #35371: Affichage d'une erreur explicite dans gen_config si un dico est installé en double via ZéphirFerméLaurent Gourvenec

Historique

#1 Mis à jour par Joël Cuissinat il y a plus d'un an

C'est également valable si le paquet est dans le module et dans le serveur, suite à l'inclusion du paquet eole-dns-ad-dc sur AmonEcole (#34724), Éric s'est bien retrouvé dans un cas similaire à celui décrit dans la demande :

En supprimant le paquet de la liste des dictionnaires additionnels, la situation est redevenue normal mais ce cas de figure doit être mieux géré ;)

#2 Mis à jour par Joël Cuissinat il y a plus d'un an

  • Description mis à jour (diff)

#3 Mis à jour par Joël Cuissinat il y a plus d'un an

  • Tracker changé de Demande à Scénario
  • Début 21/11/2022 supprimé
  • Release mis à EOLE 2.8.0.1
  • Points de scénarios mis à 2.0

#4 Mis à jour par Joël Cuissinat il y a plus d'un an

  • Release changé de EOLE 2.8.0.1 à Carnet de produit (Cadoles)

#5 Mis à jour par Joël Cuissinat il y a plus d'un an

  • Release changé de Carnet de produit (Cadoles) à EOLE 2.8.0.1

#6 Mis à jour par Joël Cuissinat il y a environ un an

  • Release changé de EOLE 2.8.0.1 à Carnet de produit (Cadoles)

#7 Mis à jour par Joël Cuissinat il y a environ un an

  • Description mis à jour (diff)

#8 Mis à jour par Laurent Gourvenec il y a environ un an

  • Assigné à mis à Laurent Gourvenec

#9 Mis à jour par Laurent Gourvenec il y a environ un an

  • Echéance mis à 01/01/2024
  • Version cible mis à Carnet Cadoles
  • Début mis à 01/10/2022

#10 Mis à jour par Laurent Gourvenec il y a environ un an

Message d'erreur proposé :
Erreur de lecture de la configuration : Un dictionnaire est présent en double sur Zéphir ! Vérifiez sur le serveur Zéphir que les paquets installés par la variante et sur ce serveur ne font pas doublons avec les paquets installés de base.

#11 Mis à jour par Joël Cuissinat il y a environ un an

  • Statut changé de Nouveau à Terminé (Sprint)
  • Version cible changé de Carnet Cadoles à Livraison Cadoles 31/05/2023
  • Release changé de Carnet de produit (Cadoles) à EOLE 2.8.0

Formats disponibles : Atom PDF