Crash after any cfm file change

Hey All,

I just finished getting a new app running on a clients server (win server 2016) for in-house use only and I chose to set it up with commandbox running lucee 5.

I am running into an odd issue. If I make the slightest change to a cfm file say for instance I comment out a cfif statement wrapping a link I don’t want to display or change the environment from production to development (cfwheels framework), the whole thing blows up and will either not load anything to the screen when requesting 127.0.0.1 or it will throw a lucee error.

What I have figured out so far is that if I delete the apps cfclasses directory and then restart the server it loads up perfect. So I am thinking it has something to do with that…

I heed to resolve this but am clueless as where to go from here. Any help would be very appreciated. Thank so much

blows up? What errors are you talking about?

Yes, you need to actually include the error message! We can’t read your mind.

The pattern of this sounds like maybe you’re running an older version of Lucee4 (5.2) on Java 11.

The most common is simply nothing. I open the browser put in the 127.0.0.1 and it takes a moment and then literally nothing. It just appears to be comply unstable.

Here is a blow by blow to give you an idea…

Fresh reboot, running things from a service using https://www.ortussolutions.com/blog/screencast-starting-commandbox-servers-as-a-windows-service.

Server boots up, I wait a healthy few minutes…

Open browser to 127.0.0.1… blank screen, no error, no app, nothing.

If I open commandbox and do a server list it shows as running. If I stop the service and do another server list it shows as stopped.

I start start the service, check commandbox… reload the browser, app comes up no error.

If I go to the code and open the apps dashboard view and type test and save the file and reload the browser. I get an error. I will reload the app in cfwheels development mode so I can give you the exact lucee error. and will follow up this post with that.

Lucee 5.3.2.77
Error: java.lang.IllegalStateException
Message: No compatible attachment provider is available

Java version is 11.0.9
which is in the jre directory with the commandbox box.exe

Where is the rest of the error? What is the stack trace? Also, have you been looking in the

  • Lucee logs (server AND web context)
  • console log

lucee.runtime.exp.NativeException: No compatible attachment provider is available
at lucee.runtime.instrumentation.InstrumentationFactoryExternal.install(InstrumentationFactoryExternal.java:390)
at lucee.runtime.instrumentation.InstrumentationFactoryExternal.install(InstrumentationFactoryExternal.java:375)
at lucee.runtime.instrumentation.InstrumentationFactoryExternal.install(InstrumentationFactoryExternal.java:344)
at lucee.runtime.instrumentation.InstrumentationFactoryExternal.install(InstrumentationFactoryExternal.java:330)
at lucee.runtime.instrumentation.InstrumentationFactory.getInstrumentation(InstrumentationFactory.java:126)
at lucee.commons.lang.PhysicalClassLoader.loadClass(PhysicalClassLoader.java:175)
at lucee.runtime.MappingImpl.getPhysicalClass(MappingImpl.java:252)
at lucee.runtime.PageSourceImpl._compile(PageSourceImpl.java:405)
at lucee.runtime.PageSourceImpl.compile(PageSourceImpl.java:369)
at lucee.runtime.PageSourceImpl.loadPhysical(PageSourceImpl.java:315)
at lucee.runtime.PageSourceImpl.loadPageThrowTemplateException(PageSourceImpl.java:220)
at lucee.runtime.PageSourceImpl.loadPage(PageSourceImpl.java:967)
at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:937)
at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:834)
at lucee.runtime.PageContextImpl.doInclude(PageContextImpl.java:816)
at global.cfml_cfm$cf.udfCall1(/wheels/global/cfml.cfm:117)
at global.cfml_cfm$cf.udfCall(/wheels/global/cfml.cfm)
at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:106)
at lucee.runtime.type.UDFImpl._call(UDFImpl.java:342)
at lucee.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:205)
at lucee.runtime.type.scope.UndefinedImpl.callWithNamedValues(UndefinedImpl.java:778)
at lucee.runtime.util.VariableUtilImpl.callFunctionWithNamedValues(VariableUtilImpl.java:846)
at lucee.runtime.PageContextImpl.getFunctionWithNamedValues(PageContextImpl.java:1726)
at controller.rendering_cfm$cf.udfCall2(/wheels/controller/rendering.cfm:474)
at controller.rendering_cfm$cf.udfCall(/wheels/controller/rendering.cfm)
at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:106)
at lucee.runtime.type.UDFImpl._call(UDFImpl.java:342)
at lucee.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:205)
at lucee.runtime.type.scope.UndefinedImpl.callWithNamedValues(UndefinedImpl.java:778)
at lucee.runtime.util.VariableUtilImpl.callFunctionWithNamedValues(VariableUtilImpl.java:846)
at lucee.runtime.PageContextImpl.getFunctionWithNamedValues(PageContextImpl.java:1726)
at controller.rendering_cfm$cf.udfCall2(/wheels/controller/rendering.cfm:225)
at controller.rendering_cfm$cf.udfCall(/wheels/controller/rendering.cfm)
at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:106)
at lucee.runtime.type.UDFImpl._call(UDFImpl.java:342)
at lucee.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:205)
at lucee.runtime.type.scope.UndefinedImpl.callWithNamedValues(UndefinedImpl.java:778)
at lucee.runtime.util.VariableUtilImpl.callFunctionWithNamedValues(VariableUtilImpl.java:846)
at lucee.runtime.PageContextImpl.getFunctionWithNamedValues(PageContextImpl.java:1726)
at controller.rendering_cfm$cf.udfCall1(/wheels/controller/rendering.cfm:66)
at controller.rendering_cfm$cf.udfCall(/wheels/controller/rendering.cfm)
at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:106)
at lucee.runtime.type.UDFImpl._call(UDFImpl.java:342)
at lucee.runtime.type.UDFImpl.call(UDFImpl.java:215)
at lucee.runtime.type.scope.UndefinedImpl.call(UndefinedImpl.java:765)
at lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:768)
at lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1707)
at controller.processing_cfm$cf.udfCall(/wheels/controller/processing.cfm:134)
at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:106)
at lucee.runtime.type.UDFImpl._call(UDFImpl.java:342)
at lucee.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:205)
at lucee.runtime.type.scope.UndefinedImpl.callWithNamedValues(UndefinedImpl.java:778)
at lucee.runtime.util.VariableUtilImpl.callFunctionWithNamedValues(VariableUtilImpl.java:846)
at lucee.runtime.PageContextImpl.getFunctionWithNamedValues(PageContextImpl.java:1726)
at controller.processing_cfm$cf.udfCall(/wheels/controller/processing.cfm:91)
at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:106)
at lucee.runtime.type.UDFImpl._call(UDFImpl.java:342)
at lucee.runtime.type.UDFImpl.call(UDFImpl.java:215)
at lucee.runtime.ComponentImpl._call(ComponentImpl.java:682)
at lucee.runtime.ComponentImpl._call(ComponentImpl.java:570)
at lucee.runtime.ComponentImpl.call(ComponentImpl.java:1918)
at lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:768)
at lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1707)
at wheels.dispatch.functions_cfm$cf.udfCall1(/wheels/dispatch/functions.cfm:184)
at wheels.dispatch.functions_cfm$cf.udfCall(/wheels/dispatch/functions.cfm)
at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:106)
at lucee.runtime.type.UDFImpl._call(UDFImpl.java:342)
at lucee.runtime.type.UDFImpl.call(UDFImpl.java:215)
at lucee.runtime.ComponentImpl._call(ComponentImpl.java:682)
at lucee.runtime.ComponentImpl._call(ComponentImpl.java:570)
at lucee.runtime.ComponentImpl.call(ComponentImpl.java:1918)
at lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:768)
at lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1707)
at wheels.index_cfm$cf.call(/wheels/index.cfm:5)
at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:942)
at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:834)
at lucee.runtime.PageContextImpl.doInclude(PageContextImpl.java:816)
at rewrite_cfm$cf.call(/rewrite.cfm:2)
at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:942)
at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:834)
at lucee.runtime.PageContextImpl.doInclude(PageContextImpl.java:816)
at wheels.events.onrequest_cfm$cf.udfCall(/wheels/events/onrequest.cfm:5)
at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:106)
at lucee.runtime.type.UDFImpl._call(UDFImpl.java:342)
at lucee.runtime.type.UDFImpl.call(UDFImpl.java:215)
at lucee.runtime.ComponentImpl._call(ComponentImpl.java:682)
at lucee.runtime.ComponentImpl._call(ComponentImpl.java:570)
at lucee.runtime.ComponentImpl.call(ComponentImpl.java:1918)
at lucee.runtime.listener.ModernAppListener.call(ModernAppListener.java:436)
at lucee.runtime.listener.ModernAppListener._onRequest(ModernAppListener.java:215)
at lucee.runtime.listener.MixedAppListener.onRequest(MixedAppListener.java:42)
at lucee.runtime.PageContextImpl.execute(PageContextImpl.java:2409)
at lucee.runtime.PageContextImpl._execute(PageContextImpl.java:2399)
at lucee.runtime.PageContextImpl.executeCFML(PageContextImpl.java:2374)
at lucee.runtime.engine.Request.exe(Request.java:43)
at lucee.runtime.engine.CFMLEngineImpl._service(CFMLEngineImpl.java:1037)
at lucee.runtime.engine.CFMLEngineImpl.serviceCFML(CFMLEngineImpl.java:983)
at lucee.loader.engine.CFMLEngineWrapper.serviceCFML(CFMLEngineWrapper.java:97)
at lucee.loader.servlet.CFMLServlet.service(CFMLServlet.java:51)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:590)
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
at org.cfmlprojects.regexpathinfofilter.RegexPathInfoFilter.doFilter(RegexPathInfoFilter.java:47)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:251)
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchToPath(ServletInitialHandler.java:186)
at io.undertow.servlet.spec.RequestDispatcherImpl.forwardImpl(RequestDispatcherImpl.java:227)
at io.undertow.servlet.spec.RequestDispatcherImpl.forwardImplSetup(RequestDispatcherImpl.java:149)
at io.undertow.servlet.spec.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:111)
at org.cfmlprojects.regexpathinfofilter.RegexPathInfoFilter.doFilter(RegexPathInfoFilter.java:45)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:251)
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchToPath(ServletInitialHandler.java:186)
at io.undertow.servlet.spec.RequestDispatcherImpl.forwardImpl(RequestDispatcherImpl.java:227)
at io.undertow.servlet.spec.RequestDispatcherImpl.forwardImplSetup(RequestDispatcherImpl.java:149)
at io.undertow.servlet.spec.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:111)
at org.tuckey.web.filters.urlrewrite.NormalRewrittenUrl.doRewrite(NormalRewrittenUrl.java:215)
at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:171)
at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:405)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:132)
at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at runwar.Server$1.handleRequest(Server.java:531)
at io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:269)
at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:78)
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:133)
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:130)
at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:249)
at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:78)
at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:99)
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:387)
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:841)
at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:2019)
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1558)
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1449)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IllegalStateException: No compatible attachment provider is available
… 172 more

Also, what version of CommandBox are you on? And, Lucee 5.3.2 is a little old. 5.3.7 is the latest. Does the error still occur there? Actually, come to think of it-- i think Lucee 5.3.2 still had issues with Java 11. I’m pretty sure that’s the issue. It’s likely related to the instrumentation agent Lucee loads to reload class files. Which makes sense with your error message since Lucee attaches to the JVM to load the instrumentation dynamically. Thus the attachment provider error.

Update to the latest version of Lucee. If you can’t do that, use Java 8 for now. Note, these are Lucee bugs, unrelated to CommandBox.

at lucee.runtime.instrumentation.InstrumentationFactoryExternal.install(InstrumentationFactoryExternal.java:390)

Yes, that 100% proves my theory. All this information should have been in the original post and this would have been a much shorter conversation :slight_smile:

Thanks Brad, I will update to current lucee and see how that goes. Sorry about the non-detailed OP.

Just as an update. Changing to latest version of lucee did in fact solved the issue. Thank you so much for your awesome support!