cfstatic
cfstatic copied to clipboard
LESS compiler stuck in loop
After performing a fresh install of Mura 6.1, which uses cfstatic, three requests end up running for over 10 minutes when I try to access the Mura admin. The server shows these requests are causing CF to use up to 75% CPU. Stack traces show something within cfstatic is creating the load on the server:
at org.mozilla.javascript.regexp.NativeRegExp.simpleMatch(NativeRegExp.java:1909) at org.mozilla.javascript.regexp.NativeRegExp.executeREBytecode(NativeRegExp.java:1992) at org.mozilla.javascript.regexp.NativeRegExp.matchRegExp(NativeRegExp.java:2381) at org.mozilla.javascript.regexp.NativeRegExp.executeRegExp(NativeRegExp.java:2412) at org.mozilla.javascript.regexp.NativeRegExp.execSub(NativeRegExp.java:269) at org.mozilla.javascript.regexp.NativeRegExp.execIdCall(NativeRegExp.java:2684) at org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97) at org.mozilla.javascript.Interpreter.interpretLoop(Interpreter.java:1473) at org.mozilla.javascript.Interpreter.interpret(Interpreter.java:815) at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:109) at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:394) at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3091) at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:107) at org.mozilla.javascript.Context$1.run(Context.java:478) at org.mozilla.javascript.Context.call(Context.java:489) at org.mozilla.javascript.Context.call(Context.java:476) at com.asual.lesscss.LessEngine.call(LessEngine.java:205) at com.asual.lesscss.LessEngine.compile(LessEngine.java:174) at com.asual.lesscss.LessEngine.compile(LessEngine.java:165) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at sun.reflect.GeneratedMethodAccessor1477.invoke(null:-1) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at coldfusion.runtime.StructBean.invoke(StructBean.java:508) at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2465) at cfJavaProxy2ecfc913132690$funcONMISSINGMETHOD.runFunction(D:\home\testsite.com\wwwroot\requirements\org\cfstatic\lib\javaloader\JavaProxy.cfc:94) at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472) at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47) at coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:405) at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:368) at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:55) at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321) at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:280) at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:676) at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:444) at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:414) at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2432) at cfLessCompiler2ecfc1066826494$funcCOMPILE.runFunction(D:\home\testsite.com\wwwroot\requirements\org\cfstatic\util\LessCompiler.cfc:31) at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472) at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47) at coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:405) at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:368) at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:55) at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321) at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:220) at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:655) at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:444) at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:414) at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2432) at cfCfStatic2ecfc20751721$func_COMPILELESS.runFunction(D:\home\testsite.com\wwwroot\requirements\org\cfstatic\CfStatic.cfc:586)
For your reference, the 'hung' requests are to the following URLs (on a local test site):
- testsite.com/index.cfm
- testsite.com/index.cfm
- testsite.com/index.cfm/admin/images/favicon.ico
The only way to kill the threads is via a CF restart, which would be nice to avoid. Let me know if you need more info.
This was posted on Mura's Github page (https://github.com/blueriver/MuraCMS/issues/1470) earlier, but it was recommended that I post over here too.
Thanks for this Jake, that sounds like a nightmare. I'm really pushed to look into this at the moment but have some plans that will hopefully change that very soon.