bdw429s
09/01/2023, 9:19 PM5.4.2.17 where I'm seeing a fair amount of stack traces on the server having exactly the same spot they are at (in thread). It's nothing particularly interesting, however
• it's classloading which makes it a pain to troubleshoot, always in the process of loading the page source for a CFC that's being instantiated
• It's always inside the PageSourceImpl.loadArchive() method even though the CFC in question is not part of a Lucee archive
• I'm unclear why this class loading always seem to be slow, and under a lot of load, it's causing very serious locks due to synchronized methods in the PageSourceImpl class where one thread doing the class loading will block ALL OTHER THREADS waiting to create an instance of the same CFC. See this ticket
• I don't even understand why Lucee is doing the class loading at all! This production server should have class cached in the page pool, which I've hacked to have a max of 10,000 and I'm monitoring the size so I know for 100% certainty that the page polls aren't full or even close.
• This week we had to remove 2 CFCs from the session scope which is stored in Redis and deserialized each request as the CFC template class loading on the same 2 CFCs every request was just locking up the entire server, especially when CPU usage on their swarm nodes was high and the code inside the synchronized methods slowed down even more.
Check out the partial stack trace in the thread and let me know if you've ever seen this before.bdw429s
09/01/2023, 9:19 PMorg.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1591)
org.apache.felix.framework.BundleWiringImpl.access$300(BundleWiringImpl.java:79)
org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1976)
java.lang.ClassLoader.loadClass(Unknown Source)
org.apache.felix.framework.Felix.loadBundleClass(Felix.java:2116)
org.apache.felix.framework.BundleImpl.loadClass(BundleImpl.java:986)
lucee.runtime.MappingImpl.getArchiveClass(MappingImpl.java:192)
lucee.runtime.PageSourceImpl.loadArchive(PageSourceImpl.java:282)
lucee.runtime.PageSourceImpl.loadPageThrowTemplateException(PageSourceImpl.java:242)
- locked <0x2ea3527c> (a lucee.runtime.PageSourceImpl)
lucee.runtime.component.ComponentLoader._search(ComponentLoader.java:343)
lucee.runtime.component.ComponentLoader._search(ComponentLoader.java:188)
lucee.runtime.component.ComponentLoader.searchComponent(ComponentLoader.java:87)
lucee.runtime.ComponentImpl.init(ComponentImpl.java:381)
models.agency.office.agent_cfc$cf.initComponent(/client/models/Agency/Office/Agent.cfc)bdw429s
09/01/2023, 9:21 PMPageSourceImpl instance which block all other threads on the server from being able to create an instance of this same CFC until this thread is done with the classloading its doing, even though the class should totally be cached in memory.bdw429s
09/01/2023, 9:22 PMPageSourceImpl.loadArchive() method even though this CFC does not live in an archive at all, but a normal CF mapping.bdw429s
09/01/2023, 9:23 PM/cfspreadsheet/ /usr/local/lib/serverHome/WEB-INF/lucee-server/context/archives/cfc/cfspreadsheet/cfc-archive-cfspreadsheet.larzackster
09/02/2023, 8:28 AMzackster
09/02/2023, 8:29 AMbdw429s
09/02/2023, 10:01 PMzackster
09/05/2023, 10:06 AMbdw429s
09/05/2023, 2:30 PMbdw429s
09/06/2023, 4:00 PMbdw429s
09/06/2023, 4:01 PMlucee.runtime.PageSourceImpl.loadPageThrowTemplateException(PageSourceImpl.java:233)
- waiting on <0x10acfb98> (a lucee.runtime.PageSourceImpl held by thread 13849, XNIO-1 task-28)
lucee.runtime.component.ComponentLoader._search(ComponentLoader.java:343)
lucee.runtime.component.ComponentLoader._search(ComponentLoader.java:188)
lucee.runtime.component.ComponentLoader.searchComponent(ComponentLoader.java:82)
lucee.runtime.PageContextImpl.loadComponent(PageContextImpl.java:3280)
lucee.runtime.tag.Invoke.doComponent(Invoke.java:206)
lucee.runtime.tag.Invoke.doEndTag(Invoke.java:186)
models.client_cfc$cf.udfCall7(/client/models/client.cfc:2172)
models.client_cfc$cf.udfCall(/client/models/client.cfc)bdw429s
09/06/2023, 4:02 PM<cfinvoke scope="Internal" component="client.models.Agency.Office.Agent" method="AgentFind" returnvariable="GetOfficeID">
<cfinvokeargument name="param" value="">
<cfinvokeargument name="param2" value="">
<cfinvokeargument name="param3" value="">
</cfinvoke>bdw429s
09/06/2023, 4:05 PMbdw429s
09/06/2023, 4:06 PMorg.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1993)
java.lang.ClassLoader.loadClass(Unknown Source)
org.apache.felix.framework.Felix.loadBundleClass(Felix.java:2116)
org.apache.felix.framework.BundleImpl.loadClass(BundleImpl.java:986)
lucee.runtime.MappingImpl.getArchiveClass(MappingImpl.java:192)
lucee.runtime.PageSourceImpl.loadArchive(PageSourceImpl.java:282)
lucee.runtime.PageSourceImpl.loadPageThrowTemplateException(PageSourceImpl.java:242)
- locked <0x10acfb98> (a lucee.runtime.PageSourceImpl)
lucee.runtime.component.ComponentLoader._search(ComponentLoader.java:343)
lucee.runtime.component.ComponentLoader._search(ComponentLoader.java:188)
lucee.runtime.component.ComponentLoader.searchComponent(ComponentLoader.java:82)
lucee.runtime.PageContextImpl.loadComponent(PageContextImpl.java:3280)
lucee.runtime.tag.Invoke.doComponent(Invoke.java:206)
lucee.runtime.tag.Invoke.doEndTag(Invoke.java:186)
models.client$cf.udfCall7(/client/models/client.cfc:2172)
models.client$cf.udfCall(/client/models/client.cfc)bdw429s
09/06/2023, 4:07 PM