Bug #33101
Ligne manquante dans site/profile/manifests/icinga2/master.pp provoque une erreur de lint
0%
Description
Troppp weird. je viens d'essayer de pousser un changement et c'est bloqué par des warnings de lint. je vérifie le contenu du fichier de mon bord : tout est correct.. j'ai modifié le hook update pour que ça créée une copie du fichier avant le check de lint et là je vois qu'il manque une ligne!
au bout du compte pour débloquer ça, j'ai mis en commentaire le check de lint pendant que je poussais mon code. c'est rentré. ensuite j'ai vérifié en faisant un clone du control-repository et je vois la ligne qui manquait pendant le hook OvO
je présume qu'on a un bug qqpart dans le hook qui cause d'une façon étrange que la ligne disparaisse avant qu'on roule puppet-lint sur le contenu.
ce que j'ai poussé qui causait le problème:
To ssh://puppet1.koumbit.net/srv/git/control-repo.git 1b802d5e..bb85532b production -> production
p-e une méthode pour tester ça serait de se positionner sur le même commit de départ, créer une nouvelle branche, modifier site/profile/manifests/icinga2/master.pp et merger ça sur le top de 1b802d5e et ensuite essayer de pousser.
Historique
#1 Mis à jour par Gabriel Filion il y a plus de 4 ans
j'ai réussi à reproduire. j'ai créé une branche sur le point de départ avec:
git checkout 1b802d5e git branch test_ligne_manquante_redmine_33101 git checkout test_ligne_manquante_redmine_33101 git push origin test_ligne_manquante_redmine_33101
donc là le point de départ est sur le puppetmaster.
pour reproduire le bug, on peut déplacer notre branche locale vers le point du merge qui a causé le problème:
git merge bb85532b
maintenant quand on essaye de faire git push origin test_ligne_manquante_redmine_33101
ça devrait donner l'erreur de lint causée par la ligne manquante. on peut pousser ça autant de fois qu'on veut pour tester des choses avec le hook tant qu'on s'arrange pas pour que le hook bypass le check de lint.
#2 Mis à jour par Gabriel Filion il y a plus de 4 ans
l'output de l'erreur quand on pousse:
$ git push origin test_ligne_manquante_redmine_33101 Total 0 (delta 0), reused 0 (delta 0), pack-reused 0 remote: INFO: Skipping review check on commit "bb85532baf9e2fb9dc99f54f728e7f8b3db5b27b" - no changes to Puppetfile{,.lock} remote: Linting YAML file: hieradata/common.yaml OK remote: Verifying syntax for file: site/profile/manifests/icinga2/master.pp OK remote: Verifying lint errors for file: site/profile/manifests/icinga2/master.ppWARNING: indentation of => is not properly aligned (expected in column 15, but found it in column 19) on line 97 remote: WARNING: indentation of => is not properly aligned (expected in column 15, but found it in column 19) on line 98 remote: WARNING: indentation of => is not properly aligned (expected in column 15, but found it in column 19) on line 99 remote: WARNING: indentation of => is not properly aligned (expected in column 15, but found it in column 19) on line 104 remote: WARNING: indentation of => is not properly aligned (expected in column 15, but found it in column 19) on line 105 remote: Puppet lint failed for file: site/profile/manifests/icinga2/master.pp remote: OK remote: error: hook declined to update refs/heads/test_ligne_manquante_redmine_33101 To ssh://puppet1.koumbit.net/srv/git/control-repo.git ! [remote rejected] test_ligne_manquante_redmine_33101 -> test_ligne_manquante_redmine_33101 (hook declined) error: failed to push some refs to 'ssh://puppet1.koumbit.net/srv/git/control-repo.git
#3 Mis à jour par Gabriel Filion il y a plus de 4 ans
- Statut changé de New à In progress
ok j'ai mis le doigt dessus je crois:
59 # Avoid the --ignoreimport bug by filtering out import lines 60 git cat-file blob "$new_sha1" | grep -v "^[ ]*import" > "$tmp"
la ligne qui manque c'est (le # au début de la ligne c'est vim.. juste pour indication de où c'est. le début de la ligne c'est juste des espaces):
100 import_schema => true,
donc ça veut dire qu'il faudrait ré-expoter le contenu du fichier sans retirer les lignes import pour faire un check de lint qui a plus d'allure.
#4 Mis à jour par Gabriel Filion il y a plus de 4 ans
- Statut changé de In progress à Closed
la solution c'était de retirer le grep -v qui enlevait les lignes qui commençaient par "import". c'était un fix à un bug pour une option qui a disparue dans puppet 4.0. donc complètement inutile (et problématique en plus). ciao!
j'ai envoyé le commit 7600627 sur les hooks git, pull'ed ça sur le puppet master, et maintenant je peux pousser le merge problématique sans problème!