Details
-
Bug
-
Status: Resolved
-
Blocker
-
Resolution: Fixed
-
None
-
None
Description
With recent commits (likely related to NIFI-7122 or NIFI-7638), NiFi will be extremely slow to start with relatively large flows definitions and will be extremely CPU intensive. According to a thread dump, it seems to be related to the fingerprinting logic:
"main" Id=1 RUNNABLE at org.bouncycastle.crypto.generators.Argon2BytesGenerator.fillBlock(Unknown Source) at org.bouncycastle.crypto.generators.Argon2BytesGenerator.fillSegment(Unknown Source) at org.bouncycastle.crypto.generators.Argon2BytesGenerator.fillMemoryBlocks(Unknown Source) at org.bouncycastle.crypto.generators.Argon2BytesGenerator.generateBytes(Unknown Source) at org.bouncycastle.crypto.generators.Argon2BytesGenerator.generateBytes(Unknown Source) at org.apache.nifi.security.util.crypto.Argon2SecureHasher.hash(Argon2SecureHasher.java:290) at org.apache.nifi.security.util.crypto.Argon2SecureHasher.hash(Argon2SecureHasher.java:258) at org.apache.nifi.security.util.crypto.AbstractSecureHasher.hashBase64(AbstractSecureHasher.java:188) at org.apache.nifi.security.util.crypto.CipherUtility.getLoggableRepresentationOfSensitiveValue(CipherUtility.java:450) at org.apache.nifi.security.util.crypto.CipherUtility.getLoggableRepresentationOfSensitiveValue(CipherUtility.java:435) at org.apache.nifi.fingerprint.FingerprintFactory.getLoggableRepresentationOfSensitiveValue(FingerprintFactory.java:552) at org.apache.nifi.fingerprint.FingerprintFactory.access$200(FingerprintFactory.java:70) at org.apache.nifi.fingerprint.FingerprintFactory$6.compare(FingerprintFactory.java:846) at org.apache.nifi.fingerprint.FingerprintFactory$6.compare(FingerprintFactory.java:831) at java.util.TimSort.binarySort(TimSort.java:296) at java.util.TimSort.sort(TimSort.java:221) at java.util.Arrays.sort(Arrays.java:1512) at java.util.ArrayList.sort(ArrayList.java:1464) at java.util.Collections.sort(Collections.java:177) at org.apache.nifi.fingerprint.FingerprintFactory.sortElements(FingerprintFactory.java:880) at org.apache.nifi.fingerprint.FingerprintFactory.addFlowFileProcessorFingerprint(FingerprintFactory.java:488) at org.apache.nifi.fingerprint.FingerprintFactory.addProcessGroupFingerprint(FingerprintFactory.java:370) at org.apache.nifi.fingerprint.FingerprintFactory.addProcessGroupFingerprint(FingerprintFactory.java:398) at org.apache.nifi.fingerprint.FingerprintFactory.addProcessGroupFingerprint(FingerprintFactory.java:398) at org.apache.nifi.fingerprint.FingerprintFactory.addProcessGroupFingerprint(FingerprintFactory.java:398) at org.apache.nifi.fingerprint.FingerprintFactory.addFlowControllerFingerprint(FingerprintFactory.java:232) at org.apache.nifi.fingerprint.FingerprintFactory.createFingerprint(FingerprintFactory.java:172) - waiting on org.apache.nifi.fingerprint.FingerprintFactory@6ae4b0f3 at org.apache.nifi.fingerprint.FingerprintFactory.createFingerprint(FingerprintFactory.java:145) - waiting on org.apache.nifi.fingerprint.FingerprintFactory@6ae4b0f3 at org.apache.nifi.controller.inheritance.FlowFingerprintCheck.checkInheritability(FlowFingerprintCheck.java:43) at org.apache.nifi.controller.StandardFlowSynchronizer.sync(StandardFlowSynchronizer.java:206) at org.apache.nifi.controller.FlowController.synchronize(FlowController.java:1425) at org.apache.nifi.persistence.StandardXMLFlowConfigurationDAO.load(StandardXMLFlowConfigurationDAO.java:89) - waiting on org.apache.nifi.persistence.StandardXMLFlowConfigurationDAO@48106119 at org.apache.nifi.controller.StandardFlowService.loadFromBytes(StandardFlowService.java:792) at org.apache.nifi.controller.StandardFlowService.load(StandardFlowService.java:537) at org.apache.nifi.web.contextlistener.ApplicationStartupContextListener.contextInitialized(ApplicationStartupContextListener.java:72) at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:930) at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:553) at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:889) at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:356) at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1445) at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1409) at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:822) at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:275) at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:524) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72) - waiting on java.lang.Object@1c1d9b1e - waiting on java.lang.Object@6c3bb93d - waiting on java.lang.Object@2317ff61 - waiting on java.lang.Object@68444ab3 - waiting on java.lang.Object@18f1e9ce - waiting on java.lang.Object@29b249bc at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169) at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:117) at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72) - waiting on java.lang.Object@1c1d9b1e - waiting on java.lang.Object@6c3bb93d - waiting on java.lang.Object@2317ff61 - waiting on java.lang.Object@68444ab3 - waiting on java.lang.Object@18f1e9ce - waiting on java.lang.Object@29b249bc at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169) at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:110) at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97) at org.eclipse.jetty.server.handler.gzip.GzipHandler.doStart(GzipHandler.java:425) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72) - waiting on java.lang.Object@1c1d9b1e - waiting on java.lang.Object@6c3bb93d - waiting on java.lang.Object@2317ff61 - waiting on java.lang.Object@68444ab3 - waiting on java.lang.Object@18f1e9ce - waiting on java.lang.Object@29b249bc at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169) at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:117) at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72) - waiting on java.lang.Object@1c1d9b1e - waiting on java.lang.Object@6c3bb93d - waiting on java.lang.Object@2317ff61 - waiting on java.lang.Object@68444ab3 - waiting on java.lang.Object@18f1e9ce - waiting on java.lang.Object@29b249bc at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169) at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:117) at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72) - waiting on java.lang.Object@1c1d9b1e - waiting on java.lang.Object@6c3bb93d - waiting on java.lang.Object@2317ff61 - waiting on java.lang.Object@68444ab3 - waiting on java.lang.Object@18f1e9ce - waiting on java.lang.Object@29b249bc at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169) at org.eclipse.jetty.server.Server.start(Server.java:407) at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:110) at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97) at org.eclipse.jetty.server.Server.doStart(Server.java:371) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72) - waiting on java.lang.Object@1c1d9b1e - waiting on java.lang.Object@6c3bb93d - waiting on java.lang.Object@2317ff61 - waiting on java.lang.Object@68444ab3 - waiting on java.lang.Object@18f1e9ce - waiting on java.lang.Object@29b249bc at org.apache.nifi.web.server.JettyServer.start(JettyServer.java:1058) at org.apache.nifi.NiFi.<init>(NiFi.java:158) at org.apache.nifi.NiFi.<init>(NiFi.java:72) at org.apache.nifi.NiFi.main(NiFi.java:301) Number of Locked Synchronizers: 2 - java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync@35c2471c - java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync@7f9982c5