As luck would have it I re-upgraded without issue. No recurrence of the 
protocol handler classload exception.

But in the meantime I did hit upon a logging configuration that might have 
pointed to the culprit. Here's a logging.properties file you can feed to 
Jenkins via the method at the end of this wiki page 
<https://www.jenkins.io/doc/book/system-administration/viewing-logs/>. My 
suspicion is that using the *System Log* link would not work in the 
situation I ran into because the stack trace blocked logon outright. You 
would never be able to get back to the custom logger(s) set up in the UI.

handlers=java.util.logging.FileHandler, java.util.logging.ConsoleHandler

.level=WARNING

java.util.logging.FileHandler.level=FINE
java.util.logging.FileHandler.pattern=c:/Jenkins/troubleshoot%g.log
java.util.logging.FileHandler.limit=1048576
java.util.logging.FileHandler.count=10
java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter

java.util.logging.ConsoleHandler.level=WARNING
java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter

java.util.logging.SimpleFormatter.format=[%1$tF %1$tT %1$tz] [%4$s] %2$s %5
$s%6$s%n

jenkins.InitReactorRunner.level=FINE
hudson.ExtensionFinder$GuiceFinder.level=FINE



On Monday, May 4, 2020 at 9:57:46 AM UTC-7, Brian Ray wrote:
>
> On upgrade of our production LTS core from 2.204.5 to 2.222.3 the master 
> UI stack traced immediately thus, not even displaying logon fields.
>
> java.lang.ClassNotFoundException: 
> org.jenkinsci.remoting.engine.JnlpProtocol1Handler ...
>
> Full stack trace is down at the end.
>
> I understand the proximate cause. Deprecated protocols JNLP 1 through 3 
> were removed in Remoting 3.40 
> <https://github.com/jenkinsci/remoting/releases/tag/remoting-3.40> (core 
> 2.222.1).
>
> After rollback of the core I'm stuck in troubleshooting the ultimate 
> cause. I am reasonably certain that I upgraded all JNLP agents to protocol 
> 4 circa core 2.138.1. Our WMI Windows Agents Plugin is up to date at 
> version 1.6. A quick and dirty Script Console query shows all our online 
> Windows agents connected with protocol 4.
>
> So ...
>
> 1. Is it possible that some other plugin is looking for this JNLP 1 class?
> 2. Is it possible that a node running an old agent JAR is trying to 
> connect via JNLP 1?
> 3. And most importantly, how could I squeeze more information out of the 
> reactor startup processing to find the culprit(s)? Are there some loggers 
> that might cough up that information with more verbose logging?
>
> Thanks!
>
> ---
>
> java.lang.ClassNotFoundException: 
> org.jenkinsci.remoting.engine.JnlpProtocol1Handler
>     at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
>     at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
>     at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
>     at 
> org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:543)
>     at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
> Caused: java.lang.NoClassDefFoundError: 
> Lorg/jenkinsci/remoting/engine/JnlpProtocol1Handler;
>     at java.lang.Class.getDeclaredFields0(Native Method)
>     at java.lang.Class.privateGetDeclaredFields(Class.java:2583)
>     at java.lang.Class.getDeclaredFields(Class.java:1916)
>     at 
> com.google.inject.spi.InjectionPoint.getInjectionPoints(InjectionPoint.java:675)
>     at 
> com.google.inject.spi.InjectionPoint.forInstanceMethodsAndFields(InjectionPoint.java:380)
>     at 
> com.google.inject.internal.MembersInjectorStore.createWithListeners(MembersInjectorStore.java:93)
>     at 
> com.google.inject.internal.MembersInjectorStore.access$000(MembersInjectorStore.java:37)
>     at 
> com.google.inject.internal.MembersInjectorStore$1.create(MembersInjectorStore.java:45)
>     at 
> com.google.inject.internal.MembersInjectorStore$1.create(MembersInjectorStore.java:42)
>     at 
> com.google.inject.internal.FailableCache$1.load(FailableCache.java:37)
>     at 
> com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3568)
>     at 
> com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2350)
>     at 
> com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2313)
>     at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2228)
> Caused: com.google.common.util.concurrent.ExecutionError
>     at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2232)
>     at com.google.common.cache.LocalCache.get(LocalCache.java:3965)
>     at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3969)
>     at 
> com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4829)
>     at 
> com.google.common.cache.LocalCache$LocalManualCache.getUnchecked(LocalCache.java:4834)
>     at com.google.inject.internal.FailableCache.get(FailableCache.java:48)
>     at 
> com.google.inject.internal.MembersInjectorStore.get(MembersInjectorStore.java:68)
>     at 
> com.google.inject.internal.ConstructorInjectorStore.createConstructor(ConstructorInjectorStore.java:74)
>     at 
> com.google.inject.internal.ConstructorInjectorStore.access$000(ConstructorInjectorStore.java:29)
>     at 
> com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:37)
>     at 
> com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:33)
>     at 
> com.google.inject.internal.FailableCache$1.load(FailableCache.java:37)
>     at 
> com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3568)
>     at 
> com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2350)
>     at 
> com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2313)
>     at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2228)
> Caused: com.google.common.util.concurrent.ExecutionError
>     at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2232)
>     at com.google.common.cache.LocalCache.get(LocalCache.java:3965)
>     at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3969)
>     at 
> com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4829)
>     at 
> com.google.common.cache.LocalCache$LocalManualCache.getUnchecked(LocalCache.java:4834)
>     at com.google.inject.internal.FailableCache.get(FailableCache.java:48)
>     at 
> com.google.inject.internal.ConstructorInjectorStore.get(ConstructorInjectorStore.java:50)
>     at 
> com.google.inject.internal.ConstructorBindingImpl.initialize(ConstructorBindingImpl.java:136)
>     at 
> com.google.inject.internal.InjectorImpl.initializeBinding(InjectorImpl.java:533)
>     at 
> com.google.inject.internal.AbstractBindingProcessor$Processor$1.run(AbstractBindingProcessor.java:160)
>     at 
> com.google.inject.internal.ProcessedBindingData.initializeBindings(ProcessedBindingData.java:44)
>     at 
> com.google.inject.internal.InternalInjectorCreator.initializeStatically(InternalInjectorCreator.java:123)
>     at 
> com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:107)
>     at com.google.inject.Guice.createInjector(Guice.java:96)
>     at com.google.inject.Guice.createInjector(Guice.java:73)
>     at com.google.inject.Guice.createInjector(Guice.java:62)
>     at hudson.ExtensionFinder$GuiceFinder.<init>(ExtensionFinder.java:290)
>     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native 
> Method)
>     at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>     at 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>     at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
>     at java.lang.Class.newInstance(Class.java:442)
>     at net.java.sezpoz.IndexItem.instance(IndexItem.java:181)
>     at hudson.ExtensionFinder$Sezpoz._find(ExtensionFinder.java:704)
>     at hudson.ExtensionFinder$Sezpoz.find(ExtensionFinder.java:690)
>     at 
> hudson.ClassicPluginStrategy.findComponents(ClassicPluginStrategy.java:344)
>     at hudson.ExtensionList.load(ExtensionList.java:381)
>     at hudson.ExtensionList.ensureLoaded(ExtensionList.java:317)
>     at hudson.ExtensionList.getComponents(ExtensionList.java:183)
>     at jenkins.model.Jenkins$6.onInitMilestoneAttained(Jenkins.java:1152)
>     at jenkins.InitReactorRunner$1.onAttained(InitReactorRunner.java:83)
>     at 
> org.jvnet.hudson.reactor.ReactorListener$Aggregator.lambda$onAttained$3(ReactorListener.java:102)
>     at 
> org.jvnet.hudson.reactor.ReactorListener$Aggregator.run(ReactorListener.java:109)
>     at 
> org.jvnet.hudson.reactor.ReactorListener$Aggregator.onAttained(ReactorListener.java:102)
>     at org.jvnet.hudson.reactor.Reactor$1.run(Reactor.java:177)
>     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:1155)
>     at jenkins.model.Jenkins.<init>(Jenkins.java:966)
>     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)
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" 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-users/4baccb54-99fc-47a8-b0b0-8bb578052704%40googlegroups.com.

Reply via email to