openshift / jenkins

Apache License 2.0
260 stars 446 forks source link

Rebuilt Jenkins master image (2.46.3 -> 2.60.1) causes fatal errors during startup with JENKINS_HOME persistent volume #339

Closed scoheb closed 7 years ago

scoheb commented 7 years ago

OPENSHIFT_JENKINS_JVM_ARCH is set to i386 so using 32 bit Java mkdir: cannot create directory ‘/var/lib/jenkins/logs’: File exists Running from: /usr/lib/jenkins/jenkins.war webroot: EnvVars.masterEnvVars.get("JENKINS_HOME") Jul 31, 2017 1:56:55 PM Main deleteWinstoneTempContents WARNING: Failed to delete the temporary Winstone file /tmp/winstone/jenkins.war Jul 31, 2017 1:56:55 PM org.eclipse.jetty.util.log.JavaUtilLog info INFO: Logging initialized @619ms Jul 31, 2017 1:56:55 PM winstone.Logger logInternal INFO: Beginning extraction from war file Jul 31, 2017 1:56:55 PM winstone.Logger logInternal INFO: Winstone shutdown successfully Jul 31, 2017 1:56:55 PM winstone.Logger logInternal SEVERE: Container startup failed java.io.FileNotFoundException: /var/lib/jenkins/war/WEB-INF/lib/commons-collections-3.2.2.jar (Permission denied) at java.io.FileOutputStream.open0(Native Method) at java.io.FileOutputStream.open(FileOutputStream.java:270) at java.io.FileOutputStream.(FileOutputStream.java:213) at java.io.FileOutputStream.(FileOutputStream.java:162) at winstone.HostConfiguration.getWebRoot(HostConfiguration.java:280) at winstone.HostConfiguration.(HostConfiguration.java:83) at winstone.HostGroup.initHost(HostGroup.java:66) at winstone.HostGroup.(HostGroup.java:45) at winstone.Launcher.(Launcher.java:144) at winstone.Launcher.main(Launcher.java:352) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at Main._main(Main.java:264) at Main.main(Main.java:112)

Here is a snapshot of the permissions in the above directory.

lib-jenkins lib2

In addition, after rollback (using previous version) these errors are seen:

WARNING: exception while collecting data: java.io.IOException: JavaMelody directory can't be created: /var/lib/jenkins/monitoring/_jenkins-11-t00f7 java.io.IOException: JavaMelody directory can't be created: /var/lib/jenkins/monitoring/_jenkins-11-t00f7

Jul 29, 2017 10:28:00 PM jenkins.metrics.api.Metrics$HealthChecker$3 run SEVERE: jenkins.metrics.api.Metrics$HealthChecker could not create listener java.io.FileNotFoundException: /var/lib/jenkins/logs/health-checker.log (Permission denied) at java.io.FileOutputStream.open0(Native Method) at java.io.FileOutputStream.open(FileOutputStream.java:270) at java.io.FileOutputStream.(FileOutputStream.java:213) at java.io.FileOutputStream.(FileOutputStream.java:162) at hudson.util.StreamTaskListener.(StreamTaskListener.java:97) at hudson.util.StreamTaskListener.(StreamTaskListener.java:90) at jenkins.metrics.api.Metrics$HealthChecker$3.run(Metrics.java:564) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:748)

Jul 29, 2017 10:08:30 PM com.cloudbees.plugins.credentials.SystemCredentialsProvider SEVERE: Failed to read the existing credentials java.io.IOException: Unable to read /var/lib/jenkins/credentials.xml at hudson.XmlFile.unmarshal(XmlFile.java:161)

org.apache.commons.jelly.JellyTagException: jar:file:/var/lib/jenkins/war/WEB-INF/lib/jenkins-core-2.46.3.jar!/hudson/model/Run/console.jelly:65:27: java.io.IOException: Failed to create a temporary file in /var/lib/jenkins/secrets

I am wondering a complete fix-permissions call should be made instead of the piece-meal approach today.

scoheb commented 7 years ago

I believe this is a false alarm. I had altered my restricted SCC and this caused the fatal errors. Reverting to the default restricted SCC permitted my container to start. Sorry for the noise.