https://issues.jenkins-ci.org/browse/JENKINS-51856 is probably the better task. Introducing new milestones has been discussed and agreed at the JCasC project meetings before, so it is rather a matter of a reference implementation for JEP.
BR, Oleg On Tuesday, November 19, 2019 at 9:48:03 AM UTC+1, 夏润泽 wrote: > > Hi all: > This question about casc has occurred more frequently after my recent > upgrade. Jenkins version (2.176.2) > CascPlugin version (1.27) I recently upgraded to Jenkins version 2.199 to > see who caused the problem ( > https://issues.jenkins-ci.org/browse/JENKINS-58993) I found out that it > was because I used casc to configure K8Clouds, and changes in cloudList > would cause jenkins.save () This is the first problem I found, and it may > not be the only one, so I suggest setting a more appropriate initialization > milestone for casc. > > startup log: > ``` > Picked up JAVA_TOOL_OPTIONS: -Xms512m -Xmx512m -XX:MaxRAM=2g > -Dhudson.slaves.NodeProvisioner.initialDelay=20 > -Dhudson.slaves.NodeProvisioner.MARGIN=50 > -Dhudson.slaves.NodeProvisioner.MARGIN0=0.85 > -Dhudson.model.LoadStatistics.clock=5000 > -Dhudson.model.LoadStatistics.decay=0.2 > -Dhudson.slaves.NodeProvisioner.recurrencePeriod=5000 -verbose:gc > -Xloggc:/var/jenkins_home/gc-%t.log -XX:NumberOfGCLogFiles=2 > -XX:+UseGCLogFileRotation -XX:GCLogFileSize=100m -XX:+PrintGC > -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintHeapAtGC > -XX:+PrintGCCause -XX:+PrintTenuringDistribution -XX:+PrintReferenceGC > -XX:+PrintAdaptiveSizePolicy -XX:+UseG1GC -XX:+UseStringDeduplication > -XX:+ParallelRefProcEnabled -XX:+DisableExplicitGC > -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions > Running from: /usr/share/jenkins/jenkins.war > webroot: EnvVars.masterEnvVars.get("JENKINS_HOME") > 2019-11-19 03:02:27.156+0000 [id=1] INFO > org.eclipse.jetty.util.log.Log#initialized: > Logging initialized @673ms to org.eclipse.jetty.util.log.JavaUtilLog > 2019-11-19 03:02:27.365+0000 [id=1] INFO winstone.Logger#logInternal: > Beginning extraction from war file > 2019-11-19 03:02:27.442+0000 [id=1] WARNING > o.e.j.s.handler.ContextHandler#setContextPath: > Empty contextPath > 2019-11-19 03:02:27.554+0000 [id=1] INFO > org.eclipse.jetty.server.Server#doStart: > jetty-9.4.z-SNAPSHOT; built: 2019-05-02T00:04:53.875Z; git: > e1bc35120a6617ee3df052294e433f3a25ce7097; jvm 1.8.0_222-b10 > 2019-11-19 03:02:28.129+0000 [id=1] INFO > o.e.j.w.StandardDescriptorProcessor#visitServlet: > NO JSP Support for /, did not find org.eclipse.jetty.jsp.JettyJspServlet > 2019-11-19 03:02:28.235+0000 [id=1] INFO > o.e.j.s.s.DefaultSessionIdManager#doStart: > DefaultSessionIdManager workerName=node0 > 2019-11-19 03:02:28.235+0000 [id=1] INFO > o.e.j.s.s.DefaultSessionIdManager#doStart: > No SessionScavenger set, using defaults > 2019-11-19 03:02:28.237+0000 [id=1] INFO > o.e.j.server.session.HouseKeeper#startScavenging: > node0 Scavenging every 660000ms > Jenkins home directory: /var/jenkins_home found at: > EnvVars.masterEnvVars.get("JENKINS_HOME") > 2019-11-19 03:02:29.242+0000 [id=1] INFO > o.e.j.s.handler.ContextHandler#doStart: > Started w.@5d908d47{Jenkins > v2.199,/,file:///var/jenkins_home/war/,AVAILABLE}{/var/jenkins_home/war} > 2019-11-19 03:02:29.255+0000 [id=1] INFO > o.e.j.server.AbstractConnector#doStart: > Started ServerConnector@64616ca2{HTTP/1.1,[http/1.1]}{0.0.0.0:8080} > 2019-11-19 03:02:29.351+0000 [id=1] INFO > org.eclipse.jetty.server.Server#doStart: > Started @2868ms > 2019-11-19 03:02:29.352+0000 [id=21] INFO winstone.Logger#logInternal: > Winstone Servlet Engine v4.0 running: controlPort=disabled > 2019-11-19 03:02:31.263+0000 [id=27] INFO > jenkins.InitReactorRunner$1#onAttained: > Started initialization > 2019-11-19 03:02:32.260+0000 [id=26] INFO > jenkins.InitReactorRunner$1#onAttained: > Listed all plugins > 2019-11-19 03:02:33.756+0000 [id=26] INFO ruby.RubyRuntimePlugin#start: > Injecting JRuby into XStream > 2019-11-19 03:02:59.769+0000 [id=26] INFO > jenkins.InitReactorRunner$1#onAttained: > Prepared all plugins > 2019-11-19 03:03:00.260+0000 [id=27] INFO > jenkins.InitReactorRunner$1#onAttained: > Started all plugins > 2019-11-19 03:03:04.695+0000 [id=27] INFO > h.ExtensionFinder$GuiceFinder$FaultTolerantScope$1#error: > Failed to instantiate optional component > hudson.plugins.build_timeout.operations.AbortAndRestartOperation$DescriptorImpl; > > skipping > 2019-11-19 03:03:05.033+0000 [id=27] INFO > jenkins.InitReactorRunner$1#onAttained: > Augmented all extensions > 2019-11-19 03:03:09.131+0000 [id=27] SEVERE jenkins.model.Jenkins#save: > An attempt to save Jenkins'' global configuration before it has been loaded > has been made during milestone Augmented all extensions. This is > indicative of a bug in the caller and may lead to full or partial loss of > configuration. > java.lang.IllegalStateException: call trace > at jenkins.model.Jenkins.save(Jenkins.java:3299) > at hudson.util.PersistedList.onModified(PersistedList.java:173) > at jenkins.model.Jenkins$CloudList.onModified(Jenkins.java:525) > at hudson.util.PersistedList.replaceBy(PersistedList.java:85) > at > io.jenkins.plugins.casc.impl.attributes.DescribableListAttribute.setValue(DescribableListAttribute.java:18) > at > io.jenkins.plugins.casc.impl.attributes.DescribableListAttribute.setValue(DescribableListAttribute.java:9) > at > io.jenkins.plugins.casc.BaseConfigurator.configure(BaseConfigurator.java:359) > at > io.jenkins.plugins.casc.BaseConfigurator.configure(BaseConfigurator.java:271) > at > io.jenkins.plugins.casc.ConfigurationAsCode.lambda$configureWith$4(ConfigurationAsCode.java:694) > at > io.jenkins.plugins.casc.ConfigurationAsCode.invokeWith(ConfigurationAsCode.java:664) > at > io.jenkins.plugins.casc.ConfigurationAsCode.configureWith(ConfigurationAsCode.java:694) > at > io.jenkins.plugins.casc.ConfigurationAsCode.configureWith(ConfigurationAsCode.java:585) > at > io.jenkins.plugins.casc.ConfigurationAsCode.configure(ConfigurationAsCode.java:280) > at > io.jenkins.plugins.casc.ConfigurationAsCode.init(ConfigurationAsCode.java:272) > 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 hudson.init.TaskMethodFinder.invoke(TaskMethodFinder.java:104) > at hudson.init.TaskMethodFinder$TaskImpl.run(TaskMethodFinder.java:175) > at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:296) > at jenkins.model.Jenkins$5.runTask(Jenkins.java:1124) > at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:214) > at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > at java.lang.Thread.run(Thread.java:748) > 2019-11-19 03:03:09.139+0000 [id=27] SEVERE > jenkins.InitReactorRunner$1#onTaskFailed: > Failed ConfigurationAsCode.init > java.lang.IllegalStateException: An attempt to save the global > configuration was made before it was loaded > at jenkins.model.Jenkins.save(Jenkins.java:3308) > at hudson.util.PersistedList.onModified(PersistedList.java:173) > at jenkins.model.Jenkins$CloudList.onModified(Jenkins.java:525) > at hudson.util.PersistedList.replaceBy(PersistedList.java:85) > at > io.jenkins.plugins.casc.impl.attributes.DescribableListAttribute.setValue(DescribableListAttribute.java:18) > at > io.jenkins.plugins.casc.impl.attributes.DescribableListAttribute.setValue(DescribableListAttribute.java:9) > at > io.jenkins.plugins.casc.BaseConfigurator.configure(BaseConfigurator.java:359) > Caused: io.jenkins.plugins.casc.ConfiguratorException: cloud: Failed to > set attribute clouds(class: class hudson.slaves.Cloud, multiple: true) > at > io.jenkins.plugins.casc.BaseConfigurator.configure(BaseConfigurator.java:361) > at > io.jenkins.plugins.casc.BaseConfigurator.configure(BaseConfigurator.java:271) > Caused: io.jenkins.plugins.casc.ConfiguratorException: Failed to save > hudson.model.Hudson@484ad4e9 > at > io.jenkins.plugins.casc.BaseConfigurator.configure(BaseConfigurator.java:274) > at > io.jenkins.plugins.casc.ConfigurationAsCode.lambda$configureWith$4(ConfigurationAsCode.java:694) > at > io.jenkins.plugins.casc.ConfigurationAsCode.invokeWith(ConfigurationAsCode.java:664) > Caused: io.jenkins.plugins.casc.ConfiguratorException: jenkins: error > configuring 'jenkins' with class > io.jenkins.plugins.casc.core.JenkinsConfigurator configurator > at > io.jenkins.plugins.casc.ConfigurationAsCode.invokeWith(ConfigurationAsCode.java:670) > at > io.jenkins.plugins.casc.ConfigurationAsCode.configureWith(ConfigurationAsCode.java:694) > at > io.jenkins.plugins.casc.ConfigurationAsCode.configureWith(ConfigurationAsCode.java:585) > at > io.jenkins.plugins.casc.ConfigurationAsCode.configure(ConfigurationAsCode.java:280) > at > io.jenkins.plugins.casc.ConfigurationAsCode.init(ConfigurationAsCode.java:272) > Caused: java.lang.reflect.InvocationTargetException > 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 hudson.init.TaskMethodFinder.invoke(TaskMethodFinder.java:104) > Caused: java.lang.Error > at hudson.init.TaskMethodFinder.invoke(TaskMethodFinder.java:110) > at hudson.init.TaskMethodFinder$TaskImpl.run(TaskMethodFinder.java:175) > at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:296) > at jenkins.model.Jenkins$5.runTask(Jenkins.java:1124) > at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:214) > at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > at java.lang.Thread.run(Thread.java:748) > 2019-11-19 03:03:09.142+0000 [id=20] SEVERE hudson.util.BootFailure#publish: > Failed to initialize Jenkins > java.lang.IllegalStateException: An attempt to save the global > configuration was made before it was loaded > at jenkins.model.Jenkins.save(Jenkins.java:3308) > at hudson.util.PersistedList.onModified(PersistedList.java:173) > at jenkins.model.Jenkins$CloudList.onModified(Jenkins.java:525) > at hudson.util.PersistedList.replaceBy(PersistedList.java:85) > at > io.jenkins.plugins.casc.impl.attributes.DescribableListAttribute.setValue(DescribableListAttribute.java:18) > at > io.jenkins.plugins.casc.impl.attributes.DescribableListAttribute.setValue(DescribableListAttribute.java:9) > at > io.jenkins.plugins.casc.BaseConfigurator.configure(BaseConfigurator.java:359) > Caused: io.jenkins.plugins.casc.ConfiguratorException: cloud: Failed to > set attribute clouds(class: class hudson.slaves.Cloud, multiple: true) > at > io.jenkins.plugins.casc.BaseConfigurator.configure(BaseConfigurator.java:361) > at > io.jenkins.plugins.casc.BaseConfigurator.configure(BaseConfigurator.java:271) > Caused: io.jenkins.plugins.casc.ConfiguratorException: Failed to save > hudson.model.Hudson@484ad4e9 > at > io.jenkins.plugins.casc.BaseConfigurator.configure(BaseConfigurator.java:274) > at > io.jenkins.plugins.casc.ConfigurationAsCode.lambda$configureWith$4(ConfigurationAsCode.java:694) > at > io.jenkins.plugins.casc.ConfigurationAsCode.invokeWith(ConfigurationAsCode.java:664) > Caused: io.jenkins.plugins.casc.ConfiguratorException: jenkins: error > configuring 'jenkins' with class > io.jenkins.plugins.casc.core.JenkinsConfigurator configurator > at > io.jenkins.plugins.casc.ConfigurationAsCode.invokeWith(ConfigurationAsCode.java:670) > at > io.jenkins.plugins.casc.ConfigurationAsCode.configureWith(ConfigurationAsCode.java:694) > at > io.jenkins.plugins.casc.ConfigurationAsCode.configureWith(ConfigurationAsCode.java:585) > at > io.jenkins.plugins.casc.ConfigurationAsCode.configure(ConfigurationAsCode.java:280) > at > io.jenkins.plugins.casc.ConfigurationAsCode.init(ConfigurationAsCode.java:272) > Caused: java.lang.reflect.InvocationTargetException > 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 hudson.init.TaskMethodFinder.invoke(TaskMethodFinder.java:104) > Caused: java.lang.Error > at hudson.init.TaskMethodFinder.invoke(TaskMethodFinder.java:110) > at hudson.init.TaskMethodFinder$TaskImpl.run(TaskMethodFinder.java:175) > at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:296) > at jenkins.model.Jenkins$5.runTask(Jenkins.java:1124) > at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:214) > at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > at java.lang.Thread.run(Thread.java:748) > Caused: org.jvnet.hudson.reactor.ReactorException > at org.jvnet.hudson.reactor.Reactor.execute(Reactor.java:282) > at jenkins.InitReactorRunner.run(InitReactorRunner.java:48) > at jenkins.model.Jenkins.executeReactor(Jenkins.java:1158) > at jenkins.model.Jenkins.<init>(Jenkins.java:965) > at hudson.model.Hudson.<init>(Hudson.java:85) > at hudson.model.Hudson.<init>(Hudson.java:81) > at hudson.WebAppMain$3.run(WebAppMain.java:233) > Caused: hudson.util.HudsonFailedToLoad > at hudson.WebAppMain$3.run(WebAppMain.java:250) > 2019-11-19 03:03:09.150+0000 [id=20] INFO jenkins.model.Jenkins#cleanUp: > Stopping Jenkins > 2019-11-19 03:03:09.327+0000 [id=26] WARNING > hudson.model.ComputerSet#<clinit>: > Failed to instantiate NodeMonitors > java.nio.channels.ClosedByInterruptException > at > java.nio.channels.spi.AbstractInterruptibleChannel.end(AbstractInterruptibleChannel.java:202) > at sun.nio.ch.FileChannelImpl.read(FileChannelImpl.java:164) > at sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:65) > at sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:109) > at sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:103) > at java.io.BufferedInputStream.fill(BufferedInputStream.java:246) > at java.io.BufferedInputStream.read(BufferedInputStream.java:265) > at java.io.FilterInputStream.read(FilterInputStream.java:83) > at java.io.PushbackInputStream.read(PushbackInputStream.java:139) > at > com.thoughtworks.xstream.core.util.XmlHeaderAwareReader.getHeader(XmlHeaderAwareReader.java:79) > at > com.thoughtworks.xstream.core.util.XmlHeaderAwareReader.<init>(XmlHeaderAwareReader.java:61) > at > com.thoughtworks.xstream.io.xml.AbstractXppDriver.createReader(AbstractXppDriver.java:65) > Caused: com.thoughtworks.xstream.io.StreamException: : null > at > com.thoughtworks.xstream.io.xml.AbstractXppDriver.createReader(AbstractXppDriver.java:69) > at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1053) > at hudson.XmlFile.read(XmlFile.java:147) > Caused: java.io.IOException: Unable to read > /var/jenkins_home/nodeMonitors.xml > at hudson.XmlFile.read(XmlFile.java:149) > at hudson.model.ComputerSet.<clinit>(ComputerSet.java:445) > at > jenkins.metrics.impl.JenkinsHealthCheckProviderImpl.getHealthChecks(JenkinsHealthCheckProviderImpl.java:89) > at > jenkins.metrics.api.HealthCheckProviderListener.onChange(HealthCheckProviderListener.java:93) > at > jenkins.metrics.api.HealthCheckProviderListener.attach(HealthCheckProviderListener.java:79) > at jenkins.metrics.api.Metrics.afterExtensionsAugmented(Metrics.java:314) > 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 hudson.init.TaskMethodFinder.invoke(TaskMethodFinder.java:104) > at hudson.init.TaskMethodFinder$TaskImpl.run(TaskMethodFinder.java:175) > at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:296) > at jenkins.model.Jenkins$5.runTask(Jenkins.java:1124) > at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:214) > at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > at java.lang.Thread.run(Thread.java:748) > 2019-11-19 03:03:09.340+0000 [id=20] INFO > jenkins.model.Jenkins$18#onAttained: > Started termination > 2019-11-19 03:03:09.365+0000 [id=20] INFO > jenkins.model.Jenkins$18#onAttained: > Completed termination > 2019-11-19 03:03:09.365+0000 [id=20] INFO > jenkins.model.Jenkins#_cleanUpDisconnectComputers: > Starting node disconnection > 2019-11-19 03:03:09.367+0000 [id=20] INFO > jenkins.model.Jenkins#_cleanUpShutdownPluginManager: > Stopping plugin manager > 2019-11-19 03:03:09.441+0000 [id=20] INFO > jenkins.model.Jenkins#_cleanUpPersistQueue: > Persisting build queue > 2019-11-19 03:03:09.457+0000 [id=20] INFO jenkins.model.Jenkins#cleanUp: > Jenkins stopped > ``` > -- You received this message because you are subscribed to the Google Groups "Jenkins Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/40403987-8309-4fba-9c79-9c35ff597d95%40googlegroups.com.
