Les opérations de Git pendent parfois dans Jenkins sur Windows

We are running continuous Jenkins builds of a Git project hosted at Assembla. Jenkins is running on Tomcat 6 under its own user and generally works fine.

Cependant, de temps en temps (disons une fois sur 10), l'opération de vérification au début du travail de construction se bloque simplement. À d'autres moments, l'opération Git tag à la fin de la construction se bloque également. Je crois que cela ne s'est jamais produit en ligne de commande (sur le même hôte avec le même utilisateur).

Lorsque vous êtes bloqué, l'arborescence de Windows montre taskhost.exe? tomcat6.exe? git.exe? ssh.exe

Lors de la destruction externe des processus Git et ssh d'une commande de balise, la piletrace suivante est vue dans la sortie de la console de travail: l'erreur est étrange puisque le répertoire mentionné existe déjà et que la clé privée est installée.

hudson.plugins.git.GitException: Command "C:/Program Files (x86)/Git/bin/git.exe push  " returned status code 1:
stdout:
stderr: Could not create directory 'c/Users//.ssh'.
    at hudson.plugins.git.GitAPI.launchCommandIn(GitAPI.java:779)
    at hudson.plugins.git.GitAPI.launchCommand(GitAPI.java:741)

Voici une liste complète des processus et des handles (à l'exception de la longue liste de threads Tomcat). La tâche de construction est actuellement suspendue sur pull. Un autre phénomène étrange ici est qu'il y a un sondage SCM programmé toutes les 5 minutes, mais il n'a pas fonctionné depuis quelques jours - il est probablement aussi bloqué en quelque sorte.

Process                PID      CPU      Private   Working     Description                                      Company Name
                                         Bytes     Set
-----------------------------------------------------------------------------------------------------------------------------------------
System Idle          Process 0  84.09        0 K       24 K
 Interrupts            n/a       0.28        0 K        0 K    Hardware Interrupts
 DPCs                  n/a       0.85        0 K        0 K    Deferred Procedure Calls
 System                   4                112 K      300 K
  smss.exe              240                620 K    1,196 K    Windows Session Manager                                 Microsoft Corporation
sppsvc.exe             2664              3,312 K    9,100 K    Microsoft Software Protection Platform Service          Microsoft Corporation
csrss.exe               344              3,516 K    5,120 K    Client Server Runtime Process                           Microsoft Corporation
 conhost.exe           1316              1,184 K    2,804 K    Console Window Host                                     Microsoft Corporation
 conhost.exe           3148              1,140 K    2,696 K    Console Window Host                                     Microsoft Corporation
wininit.exe             396              1,944 K    4,624 K    Windows Start-Up Application                            Microsoft Corporation
 services.exe           496              5,096 K   10,444 K    Services and Controller app                             Microsoft Corporation
  svchost.exe           616              4,776 K    9,940 K    Host Process for Windows Services                       Microsoft Corporation
   WmiPrvSE.exe        2468              2,692 K    6,052 K    WMI Provider Host                                       Microsoft Corporation
   dllhost.exe         2180      2.27    2,160 K    5,392 K    COM Surrogate                                           Microsoft Corporation
  svchost.exe           692      0.28    4,512 K    8,568 K    Host Process for Windows Services                       Microsoft Corporation
  svchost.exe           776              9,804 K   12,528 K    Host Process for Windows Services                       Microsoft Corporation
  svchost.exe           832             22,052 K   34,980 K    Host Process for Windows Services                       Microsoft Corporation
  svchost.exe           888              7,988 K   14,528 K    Host Process for Windows Services                       Microsoft Corporation
  svchost.exe           944              8,844 K   15,740 K    Host Process for Windows Services                       Microsoft Corporation
   dwm.exe              800              1,692 K    4,636 K    Desktop Window Manager                                  Microsoft Corporation
   dwm.exe             3908              1,800 K    4,748 K    Desktop Window Manager                                  Microsoft Corporation
  svchost.exe           984             13,036 K   17,004 K    Host Process for Windows Services                       Microsoft Corporation
  svchost.exe           284              8,536 K   11,152 K    Host Process for Windows Services                       Microsoft Corporation
  spoolsv.exe          1064              9,808 K   16,696 K    Spooler SubSystem App                                   Microsoft Corporation
  svchost.exe          1168              1,116 K    2,740 K    Host Process for Windows Services                       Microsoft Corporation
  Tomcat6.exe          1308      0.28  331,512 K  302,568 K    Commons Daemon Service Runner                           Apache Software Foundation
   git.exe             1812              3,308 K    4,880 K
    ssh.exe            2996              2,940 K    5,792 K
  vmtoolsd.exe         1352              8,260 K   12,892 K    VMware Tools Core Service                               VMware, Inc.
  VMUpgradeHelper.exe  1416              2,452 K    6,588 K    VMware virtual hardware upgrade helper application      VMware, Inc.
  svchost.exe          1880              3,796 K    9,224 K    Host Process for Windows Services                       Microsoft Corporation
   rdpclip.exe         3020              2,584 K    7,076 K    RDP Clip Monitor                                        Microsoft Corporation
   rdpclip.exe         4072              1,948 K    6,236 K    RDP Clip Monitor                                        Microsoft Corporation
  svchost.exe          1932              1,964 K    5,532 K    Host Process for Windows Services                       Microsoft Corporation
  dllhost.exe          1996              4,500 K   11,340 K    COM Surrogate                                           Microsoft Corporation
  msdtc.exe            1284              3,604 K    7,880 K    Microsoft Distributed Transaction Coordinator Service   Microsoft Corporation
  taskhost.exe         2492              3,076 K    6,252 K    Host Process for Windows Tasks                          Microsoft Corporation
  taskhost.exe         3548              2,896 K    6,088 K    Host Process for Windows Tasks                          Microsoft Corporation
 lsass.exe              504              8,516 K   16,548 K    Local Security Authority Process                        Microsoft Corporation
 lsm.exe                512              3,468 K    6,480 K    Local Session Manager Service                           Microsoft Corporation
csrss.exe               408              1,836 K    3,796 K    Client Server Runtime Process                           Microsoft Corporation
winlogon.exe            436              1,780 K    4,392 K    Windows Logon Application                               Microsoft Corporation
 LogonUI.exe            784              7,344 K   14,460 K    Windows Logon User Interface Host                       Microsoft Corporation
csrss.exe              2184              2,756 K    7,532 K    Client Server Runtime Process                           Microsoft Corporation
winlogon.exe           2952              1,960 K    5,192 K    Windows Logon Application                               Microsoft Corporation
explorer.exe           1836             23,536 K   45,060 K    Windows Explorer                                        Microsoft Corporation
 VMwareTray.exe        2168              2,824 K    6,400 K    VMware Tools tray application                           VMware, Inc.
 regedit.exe           2772              6,212 K    9,584 K    Registry Editor                                         Microsoft Corporation
 procexp64.exe         3648      11.93  21,904 K   37,056 K    Sysinternals Process Explorer                           Sysinternals - www.sysinternals.com
csrss.exe              3140              2,732 K    5,612 K    Client Server Runtime Process                           Microsoft Corporation
 conhost.exe           2500              1,312 K    3,452 K    Console Window Host                                     Microsoft Corporation
winlogon.exe           3172              1,900 K    4,980 K    Windows Logon Application                               Microsoft Corporation
explorer.exe            868             28,840 K   45,200 K    Windows Explorer                                        Microsoft Corporation
 VMwareTray.exe        3300              2,672 K    6,252 K    VMware Tools tray application                           VMware, Inc.
 rundll32.exe          3328              1,828 K    5,584 K    Windows host process (Rundll32)                         Microsoft Corporation
 cmd.exe               2832              2,240 K    2,588 K    Windows Command Processor                               Microsoft Corporation

Process: Tomcat6.exe Pid: 1308

Type        Name
Desktop      \Default
Directory    \KnownDlls
Directory    \BaseNamedObjects
Event        \BaseNamedObjects\TOMCAT6SIGNAL
File    C:\Program Files\Apache Software Foundation\Tomcat 6.0\logs\commons-daemon.2012-05-24.log
File    C:\Program Files\Apache Software Foundation\Tomcat 6.0\logs\tomcat6-stdout.2012-05-24.log
File    C:\Program Files\Apache Software Foundation\Tomcat 6.0\logs\tomcat6-stdout.2012-05-24.log
File    C:\Program Files\Apache Software Foundation\Tomcat 6.0\logs\tomcat6-stderr.2012-05-24.log
File    C:\Program Files\Apache Software Foundation\Tomcat 6.0\logs\tomcat6-stderr.2012-05-24.log
File    C:\Program Files\Apache Software Foundation\Tomcat 6.0
File    C:\Users\\AppData\Local\Temp\hsperfdata_\1308
File    C:\Program Files\Java\jre7\lib\rt.jar
File    C:\Program Files\Apache Software Foundation\Tomcat 6.0\bin\bootstrap.jar
File    C:\Program Files\Apache Software Foundation\Tomcat 6.0\bin\tomcat-juli.jar
File    C:\Program Files\Apache Software Foundation\Tomcat 6.0\logs\catalina.2012-05-30.log
File    C:\Program Files\Apache Software Foundation\Tomcat 6.0\logs\localhost.2012-05-24.log
File    C:\Program Files\Apache Software Foundation\Tomcat 6.0\logs\manager.2012-05-24.log
File    C:\Program Files\Apache Software Foundation\Tomcat 6.0\logs\host-manager.2012-05-24.log
File    C:\Program Files\Apache Software Foundation\Tomcat 6.0\logs\tomcat6-stderr.2012-05-24.log
File    C:\Program Files\Apache Software Foundation\Tomcat 6.0\logs\tomcat6-stdout.2012-05-24.log
File    C:\Program Files\Java\jre7\lib\ext\dnsns.jar
File    C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\annotations-api.jar
File    C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\catalina-ant.jar
File    C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\catalina-ha.jar
File    C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\catalina-tribes.jar
File    C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\catalina.jar
File    C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\ecj-3.7.jar
File    C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\el-api.jar
File    C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\jasper-el.jar
File    C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\jasper.jar
File    C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\jsp-api.jar
File    C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\servlet-api.jar
File    C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\tomcat-coyo
0
Oui, c'est le même utilisateur.
ajouté l'auteur user1414274, source
@VonC merci pour votre aide de toute façon
ajouté l'auteur user1414274, source
@Vonc a ajouté le résultat de ssh find au corps de question. La console n'affiche rien d'autre qu'avant (ligne unique - Commencé par l'utilisateur et c'est tout). Une fois de plus, une construction est bloquée, et le journal des modifications est périmé et se termine par une ligne "Extraction des modifications en amont". BTW un travail différent sur le même serveur jenkins fonctionne bien alors que ce travail est bloqué.
ajouté l'auteur user1414274, source
Va ajouter la trace. Pensez-vous voir quelque chose dans la sortie de la console en conséquence ou à quel autre endroit les sorties de trace devraient-elles être vues? Quant aux poignées - je ne sais pas ce que vous voulez vérifier. La liste ci-dessus a tout sur la machine (procexp couru comme administrateur).
ajouté l'auteur user1414274, source
BTW Je pense qu'il a été bloqué en raison de la suspension du sondage SCM - j'ai tué les processus GIT et SSH, et tout à coup de nouveaux processus ont été créés et le travail a commencé à tirer de SCM et à fonctionner.
ajouté l'auteur user1414274, source
Voir ci-dessus dans le corps de la question
ajouté l'auteur user1414274, source
Voici un arbre de processus complet et gère le vidage où jenkins est actuellement accroché sur une caisse GIT.
ajouté l'auteur user1414274, source
va essayer la prochaine fois que ça arrive
ajouté l'auteur user1414274, source
Oui, tous le même utilisateur. Je soupçonne que si le problème avait à voir avec l'utilisateur, cela n'aurait pas fonctionné du tout. Cependant, cela fonctionne - et ne se bloque qu'occasionnellement.
ajouté l'auteur user1414274, source
Pouvez-vous essayer un GIT_TRACE = 1 dans vos variables d'environnement de travail afin de voir s'il y a une trace utile quand cet appel de git ssh se bloque? Et as-tu vérifié les poignées référençant ces exécutables? (pour vérifier s'il y avait un conflit avec d'autres processus)
ajouté l'auteur VonC, source
Une sorte de conflit de ressources alors ... Il serait intéressant, avant de tuer l'arbre de processus, de rechercher les handles sur ssh.exe (via un explorateur de processus: technet.microsoft.com/fr-fr/sysinternals/bb896653.aspx )
ajouté l'auteur VonC, source
La console devrait suffire. En ce qui concerne le handle, l'idée est de vérifier si un autre processus a un handle ouvert sur ssh.exe : utilisez dans l'explorateur de processus le CTRL + F et tapez ssh (voir geekyninja.com/archives/… pour l'illustration)
ajouté l'auteur VonC, source
Assez étrange. Je suis désolé de ne pas offrir de réponse concluante, mais je voulais être sûr de couvrir les options de débogage habituelles.
ajouté l'auteur VonC, source
et le processus tomcat6.exe appartient également au même utilisateur?
ajouté l'auteur VonC, source
Est-ce que nom d'utilisateur est le même compte que celui avec lequel Jenkins fonctionne?
ajouté l'auteur VonC, source
Ce problème est-il corrigé?
ajouté l'auteur Maximin, source

4 Réponses

Ceci est discuté à:

https://issues.jenkins-ci.org/browse/JENKINS-5413

Vous pouvez exécuter le script ci-dessous dans la console de script:

Jenkins.instance.getTrigger("SCMTrigger").getRunners().each()
{
  item ->
    println(item.getTarget().name)
    println(item.getDuration())
    println(item.getStartTime())
    long millis = Calendar.instance.time.time - item.getStartTime()

    if(millis > (1000 * 60 * 3))//1000 millis in a second * 60 seconds in a minute * 3 minutes
    {
      Thread.getAllStackTraces().keySet().each()
      { 
        tItem ->
          if (tItem.getName().contains("SCM polling") && tItem.getName().contains(item.getTarget().name))
          { 
            println "Interrupting thread " + tItem.getName(); 
            tItem.interrupt()
          }
       }
    }
}

pour au moins éclaircir le problème ...

0
ajouté
Qu'est-ce que cela ferait? Je viens d'obtenir: Résultat: [[email protected]]
ajouté l'auteur Josh Santangelo, source

Dans mon cas, le téléchargement se fait à partir du site PuTTY et du réglage la variable d'environnement GIT_SSH pour l'utiliser a résolu le problème.

0
ajouté

Je l'ai résolu en:

  • définition du chemin vers l'exécutable Git vers C: \ Program Files (x86) \ Git \ cmd \ git.exe (ie cmd et non bin!) et
  • en définissant la variable d'environnement % HOME sur $ USERPROFILE
    (sinon HOME par défaut est $ HOMEDRIVE $ HOMEPATH , qui était H: \ dans mon cas, mais généralement $ HOME est défini sur $ USERPROFILE ).
0
ajouté
Nous avons ces deux paramètres et nous continuons à rencontrer ce problème ...
ajouté l'auteur gliptak, source
Excellent. Merci d'avoir pris le temps de mettre à jour cette vieille question. +1
ajouté l'auteur VonC, source
Cool merci. Cela m'a beaucoup aidé!
ajouté l'auteur SGrebenkin, source
Je pensais que cela avait réglé mon problème, mais après une semaine de santé le problème est revenu aujourd'hui = (
ajouté l'auteur brianfeucht, source

J'ai peut-être résolu cela. J'ai initialement mis en place mes clés SSH en les générant avec ssh-keygen sur une machine Linux. Cela fonctionnait généralement, mais Git pendait occasionnellement à Jenkins.

Maintenant, j'ai essayé d'utiliser les outils PuTTY pour configurer l'authentification basée sur les clés sur mes serveurs Git, en utilisant ces instructions . Je définis ensuite la variable d'environnement GIT_SSH sur le chemin d'accès à plink.exe. Cela semble fonctionner maintenant, mais c'était toujours un problème intermittent. J'espère que ça ne reviendra pas ...

0
ajouté