-
Bug
-
Resolution: Unresolved
-
Major
-
None
Our Jenkins controller and agents are in 2 different clouds, with a latency of ~ 80ms between them, and the Warnings Next Generation plugin's Javac issue scanner takes about 7 minutes to parse our Javac warnings:
00:40:07 [Java Compiler] -> found 366 issues (skipped 45 duplicates) 00:47:09 [Java Compiler] Post processing issues on 'ci-6.localdomain' with source code encoding 'UTF-8' 00:47:09 [Java Compiler] Skipping SCM blames as requested
The timestamps are misleading, because the "Post processing issues" line is only logged after the processing is done.
Most of the time is spent here:
"pool-1-thread-23408 for JNLP4-connect connection to ci.org/12.23.34.45:8888 id=2470453 / waiting for JNLP4-connect connection to ci.org/12.23.34.45:8888 id=16923" #27074 daemon prio=5 os_prio=0 tid=0x00007ff4bc119800 nid=0x18d46f in Object.wait() [0x00007ff4d9bc9000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at hudson.remoting.Request.call(Request.java:177) - locked <0x00000007461cb1b8> (a hudson.remoting.RemoteInvocationHandler$RPCRequest) at hudson.remoting.RemoteInvocationHandler.invoke(RemoteInvocationHandler.java:289) at com.sun.proxy.$Proxy6.fetch3(Unknown Source) at hudson.remoting.RemoteClassLoader.prefetchClassReference(RemoteClassLoader.java:348) at hudson.remoting.RemoteClassLoader.loadWithMultiClassLoader(RemoteClassLoader.java:253) at hudson.remoting.RemoteClassLoader.findClass(RemoteClassLoader.java:223) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) - locked <0x000000064b71b330> (a hudson.remoting.RemoteClassLoader) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) at org.apache.xerces.impl.dv.ObjectFactory.findProviderClass(Unknown Source) at org.apache.xerces.impl.dv.ObjectFactory.newInstance(Unknown Source) at org.apache.xerces.impl.dv.DTDDVFactory.getInstance(Unknown Source) at org.apache.xerces.impl.dv.DTDDVFactory.getInstance(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.<init>(Unknown Source) at org.apache.xerces.parsers.XIncludeAwareParserConfiguration.<init>(Unknown Source) at org.apache.xerces.parsers.XIncludeAwareParserConfiguration.<init>(Unknown Source) at sun.reflect.GeneratedConstructorAccessor95.newInstance(Unknown Source) 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 org.apache.xerces.parsers.ObjectFactory.newInstance(Unknown Source) at org.apache.xerces.parsers.ObjectFactory.createObject(Unknown Source) at org.apache.xerces.parsers.ObjectFactory.createObject(Unknown Source) at org.apache.xerces.parsers.SAXParser.<init>(Unknown Source) at org.apache.xerces.parsers.SAXParser.<init>(Unknown Source) at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.<init>(Unknown Source) at org.apache.xerces.jaxp.SAXParserImpl.<init>(Unknown Source) at org.apache.xerces.jaxp.SAXParserImpl.<init>(Unknown Source) at org.apache.xerces.jaxp.SAXParserFactoryImpl.newSAXParserImpl(Unknown Source) at org.apache.xerces.jaxp.SAXParserFactoryImpl.setFeature(Unknown Source) at edu.hm.hafner.analysis.SecureXmlParserFactory.configureSaxParserFactory(SecureXmlParserFactory.java:121) at edu.hm.hafner.analysis.SecureDigester.<init>(SecureDigester.java:27) at edu.hm.hafner.analysis.ModuleDetector.parsePomAttribute(ModuleDetector.java:294) at edu.hm.hafner.analysis.ModuleDetector.parsePom(ModuleDetector.java:288) at edu.hm.hafner.analysis.ModuleDetector.collectMavenProjects(ModuleDetector.java:127) at edu.hm.hafner.analysis.ModuleDetector.createFilesToModuleMapping(ModuleDetector.java:109) at edu.hm.hafner.analysis.ModuleDetector.<init>(ModuleDetector.java:91) at io.jenkins.plugins.analysis.core.steps.IssuesScanner$ReportPostProcessor.resolveModuleNames(IssuesScanner.java:290) at io.jenkins.plugins.analysis.core.steps.IssuesScanner$ReportPostProcessor.invoke(IssuesScanner.java:249) at io.jenkins.plugins.analysis.core.steps.IssuesScanner$ReportPostProcessor.invoke(IssuesScanner.java:223) at hudson.FilePath$FileCallableWrapper.call(FilePath.java:3331) at hudson.remoting.UserRequest.perform(UserRequest.java:211)
I enabled all logs for hudson.remoting.RemoteClassLoader and it shows a lot of repetition in the remote class loading:
- 3552 FINER hudson.remoting.RemoteClassLoader prefetchClassReference fetch3(org.apache.xerces.impl.dv.dtd.DTDDVFactoryImpl)
- 3552 FINER hudson.remoting.RemoteClassLoader prefetchClassReference fetch3(org.apache.xerces.parsers.XIncludeAwareParserConfiguration)
I have tried switching to -workDir, but it didn't make any difference.