Uploaded image for project: 'Groovy'
  1. Groovy
  2. GROOVY-4050

Server-Deadlock through InvokerHelper.createScript/GroovyClassLoader.parseClass

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Blocker
    • Resolution: Duplicate
    • 1.7.0
    • None
    • None
    • None
    • n.a.

    Description

      Groovy script execution locked our application server. Here's the relevant stack trace:

      Name: WebConnectorWorker-localhost:8102-2
      State: BLOCKED on java.lang.Class@1b660ee owned by: WorkflowTimerWorker-1265798225457
      Total blocked: 466  Total waited: 462
      
      Stack trace: 
      java.beans.Introspector.getPublicDeclaredMethods(Introspector.java:1271)
      java.beans.Introspector.internalFindMethod(Introspector.java:1321)
      java.beans.Introspector.findMethod(Introspector.java:1392)
      java.beans.Introspector.findMethod(Introspector.java:1372)
      java.beans.PropertyDescriptor.getReadMethod(PropertyDescriptor.java:179)
         - locked java.beans.PropertyDescriptor@c0623d
      groovy.lang.MetaClassImpl.applyPropertyDescriptors(MetaClassImpl.java:2209)
      groovy.lang.MetaClassImpl.setupProperties(MetaClassImpl.java:1993)
      groovy.lang.MetaClassImpl.addProperties(MetaClassImpl.java:2934)
      groovy.lang.MetaClassImpl.initialize(MetaClassImpl.java:2905)
         - locked groovy.lang.MetaClassImpl@74ceb0
      org.codehaus.groovy.reflection.ClassInfo.getMetaClassUnderLock(ClassInfo.java:164)
      org.codehaus.groovy.reflection.ClassInfo.getMetaClass(ClassInfo.java:193)
      org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.getMetaClass(MetaClassRegistryImpl.java:199)
      org.codehaus.groovy.runtime.InvokerHelper.getMetaClass(InvokerHelper.java:697)
      org.codehaus.groovy.runtime.callsite.AbstractCallSite.createPojoMetaClassGetPropertySite(AbstractCallSite.java:280)
      org.codehaus.groovy.runtime.callsite.AbstractCallSite.createGetPropertySite(AbstractCallSite.java:260)
      org.codehaus.groovy.runtime.callsite.AbstractCallSite.acceptGetProperty(AbstractCallSite.java:245)
      org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:237)
      org.codehaus.groovy.ast.builder.AstBuilderInvocationTrap$_closure1.doCall(AstBuilderTransformation.groovy:127)
      sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      java.lang.reflect.Method.invoke(Method.java:597)
      org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:88)
      groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
      org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:272)
      groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886)
      groovy.lang.Closure.call(Closure.java:276)
      groovy.lang.Closure.call(Closure.java:289)
      org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:1167)
      org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:1143)
      org.codehaus.groovy.runtime.dgm$108.invoke(Unknown Source)
      org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:270)
      org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52)
      org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
      org.codehaus.groovy.runtime.callsite.AbstractCallSite.callSafe(AbstractCallSite.java:90)
      org.codehaus.groovy.ast.builder.AstBuilderInvocationTrap.<init>(AstBuilderTransformation.groovy:126)
      sun.reflect.GeneratedConstructorAccessor477.newInstance(Unknown Source)
      sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
      java.lang.reflect.Constructor.newInstance(Constructor.java:513)
      org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:77)
      org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:107)
      org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:212)
      org.codehaus.groovy.ast.builder.AstBuilderTransformation.visit(AstBuilderTransformation.groovy:47)
      org.codehaus.groovy.transform.ASTTransformationVisitor$3.call(ASTTransformationVisitor.java:303)
      org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:831)
      org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:519)
      org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:495)
      org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:472)
      groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:291)
         - locked java.util.HashMap@52b63d
      groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:262)
      de.uplanet.lucy.server.scripting.groovy.IxGroovySystem.parseClass(Unknown Source)
      de.uplanet.lucy.server.workflow.action.GroovyScriptWorkflowAction.process(Unknown Source)
      de.uplanet.lucy.server.workflow.WorkflowEngine.a(Unknown Source)
      ...
      
      
      
      Name: WorkflowTimerWorker-1265798225457
      State: BLOCKED on java.util.HashMap@52b63d owned by: WebConnectorWorker-localhost:8102-2
      Total blocked: 1.050  Total waited: 1
      
      Stack trace: 
      groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:707)
      groovy.lang.GroovyClassLoader$InnerLoader.loadClass(GroovyClassLoader.java:425)
      groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:772)
      java.lang.ClassLoader.loadClass(ClassLoader.java:248)
      java.beans.Introspector.instantiate(Introspector.java:1453)
      java.beans.Introspector.findExplicitBeanInfo(Introspector.java:425)
         - locked java.lang.Class@1b660ee
      java.beans.Introspector.<init>(Introspector.java:374)
      java.beans.Introspector.getBeanInfo(Introspector.java:168)
      groovy.lang.MetaClassImpl$15.run(MetaClassImpl.java:2924)
      java.security.AccessController.doPrivileged(Native Method)
      groovy.lang.MetaClassImpl.addProperties(MetaClassImpl.java:2922)
      groovy.lang.MetaClassImpl.initialize(MetaClassImpl.java:2905)
         - locked groovy.lang.MetaClassImpl@2c7b08
      org.codehaus.groovy.reflection.ClassInfo.getMetaClassUnderLock(ClassInfo.java:164)
      org.codehaus.groovy.reflection.ClassInfo.getMetaClass(ClassInfo.java:180)
      org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.getMetaClass(MetaClassRegistryImpl.java:195)
      org.codehaus.groovy.runtime.InvokerHelper.getMetaClass(InvokerHelper.java:701)
      groovy.lang.GroovyObjectSupport.<init>(GroovyObjectSupport.java:32)
      groovy.lang.Script.<init>(Script.java:40)
      groovy.lang.Script.<init>(Script.java:37)
      scriptAFC7EDDF24EE93BAE3B63496F7416D8B3C9898A8.<init>(scriptAFC7EDDF24EE93BAE3B63496F7416D8B3C9898A8.groovy)
      sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
      sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
      sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
      java.lang.reflect.Constructor.newInstance(Constructor.java:513)
      java.lang.Class.newInstance0(Class.java:355)
      java.lang.Class.newInstance(Class.java:308)
      org.codehaus.groovy.runtime.InvokerHelper.createScript(InvokerHelper.java:400)
      de.uplanet.lucy.server.workflow.eventhandler.GroovyScriptWorkflowEventHandler.process(Unknown Source)
      de.uplanet.lucy.server.workflow.WorkflowEngine.a(Unknown Source)
      ...
      

      Attachments

        Issue Links

          Activity

            People

              guillaume Guillaume Sauthier
              veita Alexander Veit
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: