Nous utilisons donc Gerrit Trigger (2.21.1) sur notre gestionnaire de build Jenkins CI et utilisons des conteneurs Docker pour les builds réels.

Le problème qui est apparu récemment dans certaines de nos succursales, l’interrogation de Gerrit Repo échouant et l’obligeant à "détecter les modifications" à chaque fois, il est donc constamment reconstruit en dépit de tout changement.

La vérification du journal de scrutation Gerrit Repo pour l’un des jobs affectés donne l’une des deux sorties suivantes:

Gerrit Repo Polling Log

Started on Dec 20, 2016 11:31:01 AM

Qui ne semble jamais remplir, ou:

Started on Dec 20, 2016 12:27:01 PM
Polling SCM changes on aosp-host
[workspace] $ repo init -u http://xxx.xxx.xxx.xxx/git/project/platform/manifest.git -b branch -m branch.xml
Get https://gerrit.googlesource.com/git-repo/clone.bundle
Get https://gerrit.googlesource.com/git-repo
fatal: Not a git repository: '/home/jenkins/workspace/.repo/manifests.git'
fatal: Not a git repository: '/home/jenkins/workspace/.repo/manifests.git'
fatal: cannot obtain manifest http://xxx.xxx.xxx.xxx/git/project/platform/manifest.git
Done. Took 1 min 19 sec
Changes found

Les builds, qui sont déclenchés par cette défaillance, utilisent les mêmes commandes et fonctionnent correctement:

[workspace] $ repo init -u http://xxx.xxx.xxx.xxx/git/project/platform/manifest.git -b branch -m branch.xml

En naviguant dans le répertoire manifest, on voit le symptôme:

jenkins@f052b3453d95:~/workspace/.repo$ ll 
total 32 
drwxr-xr-x 1 jenkins jenkins   180 Dec 20 11:08 ./ 
drwxrwxr-x 1 jenkins jenkins   778 Dec 20 11:07 ../
-rw-r--r-- 1 jenkins jenkins 20087 Dec 20 10:14 .repo_fetchtimes.json 
lrwxrwxrwx 1 jenkins jenkins    20 Dec 20 10:13 manifest.xml -> manifests/company.xml 
drwxr-xr-x 1 jenkins jenkins     8 Dec 16 17:33 manifests/ 
drwxr-xr-x 1 jenkins jenkins    50 Dec 16 17:33 manifests.git/ 
drwxr-xr-x 1 jenkins jenkins    28 Dec 16 17:43 project-objects/
-rw-r--r-- 1 jenkins jenkins  7756 Dec 20 10:14 project.list 
drwxr-xr-x 1 jenkins jenkins   410 Dec 16 17:46 projects/

avec

lrwxrwxrwx 1 jenkins jenkins    20 Dec 20 10:13 manifest.xml -> manifests/company.xml

surligné en rouge, car l’associé company.xmln’est pas trouvé ... pour que le journal Gerrit de dessus soit exact, il échoue init. Ceci est confirmé via a repo statusdans le répertoire principal:

jenkins@f052b3453d95:~/workspace$ repo status
Traceback (most recent call last):
  File "/home/jenkins/workspace/.repo/repo/main.py", line 531, in <module>
    _Main(sys.argv[1:])
  File "/home/jenkins/workspace/.repo/repo/main.py", line 507, in _Main
    result = repo._Run(argv) or 0
  File "/home/jenkins/workspace/.repo/repo/main.py", line 180, in _Run
    result = cmd.Execute(copts, cargs)
  File "/home/jenkins/workspace/.repo/repo/subcmds/status.py", line 130, in Execute
    all_projects = self.GetProjects(args)
  File "/home/jenkins/workspace/.repo/repo/command.py", line 140, in GetProjects
    all_projects_list = manifest.projects
  File "/home/jenkins/workspace/.repo/repo/manifest_xml.py", line 350, in projects
    self._Load()
  File "/home/jenkins/workspace/.repo/repo/manifest_xml.py", line 407, in _Load
    self.manifestProject.worktree))
  File "/home/jenkins/workspace/.repo/repo/manifest_xml.py", line 443, in _ParseManifestXml
    root = xml.dom.minidom.parse(path)
  File "/usr/lib/python2.7/xml/dom/minidom.py", line 1918, in parse
    return expatbuilder.parse(file)
  File "/usr/lib/python2.7/xml/dom/expatbuilder.py", line 922, in parse
    fp = open(file, 'rb')
IOError: [Errno 2] No such file or directory: '/home/jenkins/workspace/.repo/manifest.xml'

Le problème est que l'exécution en repo init -u <url> -m company.xmlligne de commande fonctionne correctement et produit un référentiel valide.

Avez-vous une idée à donner sur ce problème?

Loup temporel
la source