lombok deadlocks eclipse #566

Closed
lombokissues opened this Issue Jul 14, 2015 · 6 comments

Projects

None yet

1 participant

@lombokissues
Collaborator

Migrated from Google Code (issue 531)

@lombokissues
Collaborator

👤 shuzhang0   🕗 Jun 09, 2013 at 20:22 UTC

lombok version: 0.11.8
eclipse version: indigo
os: ubuntu 12.04

A deadlock occurs consistently and shortly after start up after I stalled lombok.

org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader gets blocked on lombok.patcher.equinox.EquinoxClassLoader which in turn is blocked on org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader

Relevant stack traces:
Name: Worker-4
State: BLOCKED on lombok.patcher.equinox.EquinoxClassLoader@ 29a07791 owned by: Compiler Processing Task
Total blocked: 35 Total waited: 36

Stack trace:
lombok.patcher.equinox.EquinoxClassLoader.loadClass(EquinoxClassLoader.java:135)
lombok.patcher.equinox.EquinoxClassLoader.overrideLoadResult(EquinoxClassLoader.java:286)
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java)
java.lang.ClassLoader.loadClass(ClassLoader.java:266)
...

Name: Compiler Processing Task
State: BLOCKED on org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader@ 6750cf54 owned by: Worker-4
Total blocked: 2 Total waited: 0

Stack trace:
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLoadedClass(ClasspathManager.java:477)
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:456)
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
...

Any work arounds?

@lombokissues
Collaborator

👤 shuzhang0   🕗 Jun 09, 2013 at 20:40 UTC

attaching full stacks
Name: Worker-4
State: BLOCKED on lombok.patcher.equinox.EquinoxClassLoader@ 29a07791 owned by: Compiler Processing Task
Total blocked: 35 Total waited: 36

Stack trace:
lombok.patcher.equinox.EquinoxClassLoader.loadClass(EquinoxClassLoader.java:135)
lombok.patcher.equinox.EquinoxClassLoader.overrideLoadResult(EquinoxClassLoader.java:286)
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java)
java.lang.ClassLoader.loadClass(ClassLoader.java:266)
org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.runPostCompiler(AbstractImageBuilder.java:334)
org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.writeClassFileContents(AbstractImageBuilder.java:832)
org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.writeClassFile(AbstractImageBuilder.java:823)
org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.acceptResult(AbstractImageBuilder.java:187)
org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:508)
org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:364)
org.eclipse.jdt.internal.core.builder.BatchImageBuilder.compile(BatchImageBuilder.java:178)
org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:301)
org.eclipse.jdt.internal.core.builder.BatchImageBuilder.build(BatchImageBuilder.java:60)
org.eclipse.jdt.internal.core.builder.JavaBuilder.buildAll(JavaBuilder.java:254)
org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:178)
org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:728)
org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:199)
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:239)
org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:292)
org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:295)
org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:351)
org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:374)
org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:143)
org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:241)
org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

Name: Compiler Processing Task
State: BLOCKED on org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader@ 6750cf54 owned by: Worker-4
Total blocked: 2 Total waited: 0

Stack trace:
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLoadedClass(ClasspathManager.java:477)
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:456)
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)
org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
java.lang.ClassLoader.loadClass(ClassLoader.java:266)
lombok.patcher.equinox.EquinoxClassLoader.loadClass(EquinoxClassLoader.java:217)

  • locked lombok.patcher.equinox.EquinoxClassLoader@ 29a07791
    java.lang.ClassLoader.loadClass(ClassLoader.java:266)
    lombok.eclipse.agent.PatchValEclipse.copyInitializationOfLocalDeclaration(PatchValEclipse.java:91)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    java.lang.reflect.Method.invoke(Method.java:616)
    lombok.eclipse.agent.PatchValEclipsePortal.copyInitializationOfLocalDeclaration(PatchValEclipsePortal.java:58)
    org.eclipse.jdt.internal.compiler.parser.Parser.consumeExitVariableWithInitialization(Parser.java:3714)
    org.eclipse.jdt.internal.compiler.parser.Parser.consumeRule(Parser.java:5533)
    org.eclipse.jdt.internal.compiler.parser.Parser.parse(Parser.java:9652)
    org.eclipse.jdt.internal.compiler.parser.Parser.parse(Parser.java:9988)
    org.eclipse.jdt.internal.compiler.ast.MethodDeclaration.parseStatements(MethodDeclaration.java:148)
    org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.parseMethods(TypeDeclaration.java:832)
    org.eclipse.jdt.internal.compiler.parser.Parser.getMethodBodies(Parser.java:8837)
    org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:749)
    org.eclipse.jdt.internal.compiler.ProcessTaskManager.run(ProcessTaskManager.java:137)
    java.lang.Thread.run(Thread.java:679)
@lombokissues
Collaborator

👤 reinierz   🕗 Jul 08, 2013 at 20:15 UTC

I have no idea if this fixes things, but we changed a lock that's near the stacktrace you've given us. Can you give it a shot and see if this solves the problem?

edge release with the fix is here:

https://projectlombok.org/download-edge.html

@lombokissues
Collaborator

👤 r.spilker   🕗 Feb 24, 2014 at 22:17 UTC

Shame we didn't get any feedback. More reports on something that looks similar have come up. We've eliminated one of the locks.

@lombokissues
Collaborator

👤 r.spilker   🕗 Feb 24, 2014 at 22:17 UTC

Duplicate of issue #680

@lombokissues
Collaborator

End of migration

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment