Hanging requests if debugging is enabled / Locking in ArrayImpl

Description

Requests are hanging (seem to have locking issues) if the Lucee Debugging is active.
Could be a locking Problem in ArrayImpl?

Please check the appended custom Debug template.

Two stacktraces:

lucee.runtime.type.ArrayImpl.duplicate(ArrayImpl.java:569)
lucee.runtime.type.ArrayImpl.duplicate(ArrayImpl.java:557)

  • locked <0x2d38efb0> (a lucee.runtime.type.ArrayImpl)
    lucee.runtime.op.Duplicator.duplicate(Duplicator.java:126)
    lucee.runtime.type.QueryImpl.addColumn(QueryImpl.java:1092)
    lucee.runtime.type.QueryImpl.addColumn(QueryImpl.java:1080)
    lucee.runtime.debug.DebuggerImpl.getDebuggingData(DebuggerImpl.java:610)
    lucee.runtime.debug.DebuggerImpl.getDebuggingData(DebuggerImpl.java:304)
    lucee.runtime.debug.DebuggerImpl.writeOut(DebuggerImpl.java:251)
    lucee.runtime.listener.ModernAppListener.onDebug(ModernAppListener.java:376)
    lucee.runtime.PageContextImpl.execute(PageContextImpl.java:2284)
    lucee.runtime.PageContextImpl.execute(PageContextImpl.java:2226)
    lucee.runtime.engine.CFMLEngineImpl.serviceCFML(CFMLEngineImpl.java:456)
    lucee.loader.servlet.CFMLServlet.service(null:???)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
    org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
    org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    sun.reflect.GeneratedMethodAccessor34.invoke(null:???)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    java.lang.reflect.Method.invoke(Method.java:601)
    com.intergral.fusionreactor.j2ee.filterchain.WrappedFilterChain.doFilter(WrappedFilterChain.java:97)
    com.intergral.fusionreactor.j2ee.filter.FusionReactorRequestHandler.doNext(FusionReactorRequestHandler.java:472)
    com.intergral.fusionreactor.j2ee.filter.FusionReactorRequestHandler.doHttpServletRequest(FusionReactorRequestHandler.java:312)
    com.intergral.fusionreactor.j2ee.filter.FusionReactorRequestHandler.doFusionRequest(FusionReactorRequestHandler.java:192)
    com.intergral.fusionreactor.j2ee.filter.FusionReactorRequestHandler.handle(FusionReactorRequestHandler.java:507)
    com.intergral.fusionreactor.j2ee.filter.FusionReactorCoreFilter.doFilter(FusionReactorCoreFilter.java:36)
    sun.reflect.GeneratedMethodAccessor35.invoke(null:???)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    java.lang.reflect.Method.invoke(Method.java:601)
    com.intergral.fusionreactor.j2ee.filterchain.WrappedFilterChain.doFilter(WrappedFilterChain.java:79)
    sun.reflect.GeneratedMethodAccessor33.invoke(null:???)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    java.lang.reflect.Method.invoke(Method.java:601)
    com.intergral.fusionreactor.agent.filter.FusionReactorStaticFilter.doFilter(FusionReactorStaticFilter.java:53)
    com.intergral.fusionreactor.agent.pointcuts.NewFilterChainPointCut$1.invoke(NewFilterChainPointCut.java:41)
    org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:???)
    org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
    org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
    org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516)
    org.apache.coyote.ajp.AbstractAjpProcessor.process(AbstractAjpProcessor.java:831)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:659)
    org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2439)
    org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2428)

  • locked <0x448399bc> (a org.apache.tomcat.util.net.AprEndpoint$AprSocketWrapper)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    java.lang.Thread.run(Thread.java:722)

Locked ownable synchronizers:

  • java.util.concurrent.ThreadPoolExecutor$Worker@41d99c35

lucee.runtime.type.ArrayImpl.enlargeCapacity(ArrayImpl.java:253)
lucee.runtime.type.ArrayImpl.setE(ArrayImpl.java:231)

  • locked <0x812c5db> (a lucee.runtime.type.ArrayImpl)
    lucee.runtime.type.ArrayImpl.set(ArrayImpl.java:211)
    lucee.runtime.type.ArrayImpl.duplicate(ArrayImpl.java:569)
    lucee.runtime.type.ArrayImpl.duplicate(ArrayImpl.java:557)

  • locked <0x8347a0d> (a lucee.runtime.type.ArrayImpl)
    lucee.runtime.op.Duplicator.duplicate(Duplicator.java:126)
    lucee.runtime.type.QueryImpl.addColumn(QueryImpl.java:1092)
    lucee.runtime.type.QueryImpl.addColumn(QueryImpl.java:1080)
    lucee.runtime.debug.DebuggerImpl.getDebuggingData(DebuggerImpl.java:609)
    lucee.runtime.debug.DebuggerPool.store(DebuggerPool.java:47)

  • locked <0x41e2f6a2> (a lucee.runtime.debug.DebuggerPool)
    lucee.runtime.PageContextImpl.release(PageContextImpl.java:561)
    lucee.runtime.CFMLFactoryImpl.releaseLuceePageContext(CFMLFactoryImpl.java:176)
    lucee.runtime.engine.CFMLEngineImpl.serviceCFML(CFMLEngineImpl.java:463)
    lucee.loader.servlet.CFMLServlet.service(null:???)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
    org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
    org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    sun.reflect.GeneratedMethodAccessor34.invoke(null:???)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    java.lang.reflect.Method.invoke(Method.java:601)
    com.intergral.fusionreactor.j2ee.filterchain.WrappedFilterChain.doFilter(WrappedFilterChain.java:97)
    com.intergral.fusionreactor.j2ee.filter.FusionReactorRequestHandler.doNext(FusionReactorRequestHandler.java:472)
    com.intergral.fusionreactor.j2ee.filter.FusionReactorRequestHandler.doHttpServletRequest(FusionReactorRequestHandler.java:312)
    com.intergral.fusionreactor.j2ee.filter.FusionReactorRequestHandler.doFusionRequest(FusionReactorRequestHandler.java:192)
    com.intergral.fusionreactor.j2ee.filter.FusionReactorRequestHandler.handle(FusionReactorRequestHandler.java:507)
    com.intergral.fusionreactor.j2ee.filter.FusionReactorCoreFilter.doFilter(FusionReactorCoreFilter.java:36)
    sun.reflect.GeneratedMethodAccessor35.invoke(null:???)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    java.lang.reflect.Method.invoke(Method.java:601)
    com.intergral.fusionreactor.j2ee.filterchain.WrappedFilterChain.doFilter(WrappedFilterChain.java:79)
    sun.reflect.GeneratedMethodAccessor33.invoke(null:???)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    java.lang.reflect.Method.invoke(Method.java:601)
    com.intergral.fusionreactor.agent.filter.FusionReactorStaticFilter.doFilter(FusionReactorStaticFilter.java:53)
    com.intergral.fusionreactor.agent.pointcuts.NewFilterChainPointCut$1.invoke(NewFilterChainPointCut.java:41)
    org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:???)
    org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
    org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
    org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516)
    org.apache.coyote.ajp.AbstractAjpProcessor.process(AbstractAjpProcessor.java:831)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:659)
    org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2439)
    org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2428)

  • locked <0x448399bc> (a org.apache.tomcat.util.net.AprEndpoint$AprSocketWrapper)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    java.lang.Thread.run(Thread.java:722)

Locked ownable synchronizers:

  • java.util.concurrent.ThreadPoolExecutor$Worker@41d99c35

Environment

Windows

Attachments

1

Activity

Show:

Michael Offner 4 June 2015 at 13:29

https://bitbucket.org/lucee/lucee/commits/d338deefa7cde029eb6c3bee29d9884f49d20e9c

Lucee 5 dosn't need this fix, #5 has a complete new version of the Array implementation

Fixed

Details

Assignee

Reporter

Priority

Fix versions

New Issue warning screen

Before you create a new Issue, please post to the mailing list first https://dev.lucee.org

Once the issue has been verified, one of the Lucee team will ask you to file an issue

Affects versions

Created 3 June 2015 at 16:19
Updated 8 May 2020 at 19:50
Resolved 4 June 2015 at 13:29