2016-06-06 12 views
0

Ich hatte eine perfekt funktionierende AWS VM, die ich duplizierte, um ähnliche Umgebungen für Bühne und Produktion zu haben.
ich die VM gestoppt, um einen Snapshot zu erstellen, aber jetzt, wenn ich einen Build mit dem jenkins Slave auf es zu starten, bekomme ich diesen Fehler:Jenkins Slave kann nach dem Neustart der VM nicht ausgeführt werden

Building remotely on <nodename> in workspace /home/ubuntu/workspace/<workspaceName> 
Installing JDK 
java.io.IOException: Unable to find JDK with ID= 
    at hudson.tools.JDKInstaller.locate(JDKInstaller.java:422) 
    at hudson.tools.JDKInstaller.performInstallation(JDKInstaller.java:134) 
    at hudson.tools.InstallerTranslator.getToolHome(InstallerTranslator.java:68) 
    at hudson.tools.ToolLocationNodeProperty.getToolHome(ToolLocationNodeProperty.java:107) 
    at hudson.tools.ToolInstallation.translateFor(ToolInstallation.java:205) 
    at hudson.model.JDK.forNode(JDK.java:130) 
    at hudson.model.AbstractProject.getEnvironment(AbstractProject.java:355) 
    at hudson.model.Run.getEnvironment(Run.java:2228) 
    at hudson.model.AbstractBuild.getEnvironment(AbstractBuild.java:932) 
    at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:828) 
    at hudson.scm.SCM.checkout(SCM.java:484) 
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1274) 
    at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:609) 
    at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86) 
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:531) 
    at hudson.model.Run.execute(Run.java:1738) 
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) 
    at hudson.model.ResourceController.execute(ResourceController.java:98) 
    at hudson.model.Executor.run(Executor.java:381) 
Finished: FAILURE 

Alternativ bekam ich manchmal diese Präzision
(zwischen „Installieren von JDK“ und „java.io.IOException: Kann nicht JDK finden, mit ID =“)

FATAL: Failed to get Environment Vars from build 
java.lang.RuntimeException: Failed to get Environment Vars from build 
    at jenkins.plugins.publish_over.BPPlugin.getEnvironmentVariables(BPPlugin.java:84) 
    at jenkins.plugins.publish_over.BPPlugin.perform(BPPlugin.java:93) 
    at jenkins.plugins.publish_over_ssh.BapSshPreBuildWrapper.setUp(BapSshPreBuildWrapper.java:64) 
    at hudson.model.Build$BuildExecution.doRun(Build.java:154) 
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:536) 
    at hudson.model.Run.execute(Run.java:1738) 
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) 
    at hudson.model.ResourceController.execute(ResourceController.java:98) 
    at hudson.model.Executor.run(Executor.java:381) 

ich habe nicht bemerkt, was diese zusätzliche Linien verursacht erscheinen, da ich alles versucht, mir t Hought über, einschließlich

  • Flushing alle Dateien in meinem Benutzerverzeichnis (.jenkins, Arbeitsplatz und jede jdk zugehörige Datei aus slave.jar und dem JDK dir zu den Skripten installieren ...)
  • Recreating meinen jenkins Slave und/oder Build, entweder von Grund auf neu, oder als eine Kopie von meinem ersten Build.
  • Recreating erneut die VM aus dem Snapshot (nur um sicher zu sein, kann ich nichts Schraube hat in-zwischen oben)

JDK bereits hier ist, natürlich. Vor diesem Neustart funktionierte alles gut. Also meine erste Frage ist "Warum versucht es ein JDK zu installieren?"

Ich habe keine Ahnung von den "Environment Vars", die es zu bekommen versucht, und ich bin mir nicht bewusst, dass sich die VM-Konfiguration geändert hat.

+0

Update: sieht aus wie das Problem auf dem Master-Server (oder mit Jenkins Slave Plug-in?), da andere Jobs auch jetzt scheitern. Ich glaube nicht, dass irgendeine Konfiguration geändert wurde, also werde ich die Ursache untersuchen und den Beitrag aktualisieren. – Balmipour

Antwort

1

Sieht aus wie das Problem war "nur", dass der konfigurierte JDK-Einstellungswert von Jenkins verschwunden ist.

Ich habe absolut keine Ahnung, WARUM es, denn niemand hätte diese Einstellung geändert, und es ist in einem Untermenü, das zuerst geöffnet werden muss, so dass es vor Manipulationsfehlern geschützt ist.

Wie auch immer, hier ist, wie ich es behoben habe. Es ist so einfach, wie die JAVA_HOME Wert in Jenkins Einstellung:


• Go Jenkins verwalten -> Configure System
• Klicken Sie auf "Installationen JDK"
• Deaktivieren Sie "automatisch installieren" (My environnement bereits eingerichtet wurde, ich brauchte nur wieder die Variable eingestellt)
• Set JAVA_HOME (in meinem Fall, /usr/lib/jvm/java-7-openjdk-amd64) und gegebenenfalls den Namen Ihres

EDIT installieren: da einige andere weiter Builds zum scheitern verurteilt, hatte ich einen symbolischen Link auf eine erstellen von meinen älteren Servern, die Java in/usr/bin/java installiert hattenmkdir -p /usr/lib/jvm/java-7-openjdk-amd64/bin/

Ich habe auch eine Umgebungsvariable JAVA_HOME mit dem gleichen Wert /usr/lib/jvm/java-7-openjdk-amd64 in Jenkins conf hinzugefügt. Wahrscheinlich überflüssig


Unsere Jenkins Version ist 1.609.3 (eingecheckt in /var/lib/jenkins/config.xml),
Bitte kommentieren Sie, wenn Sie das gleiche Problem erfahren, da ich wirklich bezweifle, dass dieser Fehler von einem Benutzer stammte.

+0

Irgendwie ist mir beim Neustart von Jenkins genau das passiert. Die Builds fingen an zu scheitern, mein Blut lief kalt, ich fand deine Antwort, verifiziert, dass meine JDK-Konfiguration irgendwie nach der Installation einiger Plugins und dem Neustart geknackt worden war. Meine JDK-Konfiguration wurde aktualisiert, neu gestartet - niemand wusste, was passiert ist. Puh. – synthesizerpatel

0

Wir hatten ein ähnliches Problem, aber festgestellt, dass das System nicht die entsprechende Version von jdk installiert hatte. Auf Jenkins sieht es so aus, als ob es die jdks in $ JENKINS_HOME/tools/hudson.model.JDK installiert (in unserem Fall /var/lib/jenkins/tools/hudson.model.JDK/jdk8).

Wir aktualisiert die oben genannten Schritte und es funktionierte perfekt.

  • Go Jenkins zu verwalten -> Configure System
  • Klicken Sie auf "Installationen JDK"
  • entmarkieren "automatisch installieren" (Meine Umgebung bereits eingerichtet wurde, musste ich einfach wieder die Variable setzen)
  • Set JAVA_HOME (in meinem Fall, /var/lib/jenkins/tools/hudson.model.JDK/jdk8) und gegebenenfalls den Namen Ihres installieren