Dear Colleagues, I'm working in a shared responsibility company infrastructure. We run Jenkins in Tomcat container. Last week I downloaded the latest LTS release (2.138.1) and made an upgrade like the followings:
- I stopped the running Jenkins service
- I made a backup about the old war file and its deployed directory
- I deleted the old jenkins.war file and directory where Tomcat deployes the contents
- I put the new war file into the same directory
- I started Jenkins service
And at the and I tried to reach the web interface but I got this error: "java.util.MissingResourceException: Can't find resource for bundle org.jvnet.localizer.ResourceBundleHolder$ResourceBundleImpl, key ApiTokenProperty.LegacyTokenNamejava.util.MissingResourceException: Can't find resource for bundle org.jvnet.localizer.ResourceBundleHolder$ResourceBundleImpl, key ApiTokenProperty.LegacyTokenName at java.util.ResourceBundle.getObject(ResourceBundle.java:450) at java.util.ResourceBundle.getString(ResourceBundle.java:407) at org.jvnet.localizer.ResourceBundleHolder.format(ResourceBundleHolder.java:170) at jenkins.security.Messages.ApiTokenProperty_LegacyTokenName(Messages.java:57) at jenkins.security.apitoken.ApiTokenStore$HashedToken.buildNewFromLegacy(ApiTokenStore.java:375) at jenkins.security.apitoken.ApiTokenStore.addLegacyToken(ApiTokenStore.java:155) at jenkins.security.apitoken.ApiTokenStore.deleteAllLegacyAndGenerateNewOne(ApiTokenStore.java:141) at jenkins.security.apitoken.ApiTokenStore.regenerateTokenFromLegacyIfRequired(ApiTokenStore.java:135) at jenkins.security.ApiTokenProperty.setUser(ApiTokenProperty.java:134) at hudson.model.User.load(User.java:217) at hudson.model.User.<init>(User.java:162) at hudson.model.User.getOrCreate(User.java:533) at hudson.model.User.access$300(User.java:133) at hudson.model.User$AllUsers.scanAll(User.java:1164)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:497) 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:1066) 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:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)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:1100) at jenkins.model.Jenkins.<init>(Jenkins.java:904) 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)Page generated: Sep 14, 2018 1:53:26 PM CESTJenkins ver. 2.138.1" We have a many times upgraded Jenkins with very old data. The war file which is read by Tomcat also has to be renamed hudson.war because of conventions. We are using this Jenkins through reverse proxy. When I stopped Jenkins service and made a restore of old war file (2.121.1 LTS) with old deployed directory everything worked again. This problem may relate to this new: "Replace single per-user API token with new system of multiple, revocable, unrecoverable API tokens with usage tracking." Can you tell based on these details what's wrong and how to make a working upgrade? Thank you!
|