Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

lombok deadlocks eclipse #566

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

lombok deadlocks eclipse #566

lombokissues opened this issue Jul 14, 2015 · 6 comments

Comments

@lombokissues
Copy link

Migrated from Google Code (issue 531)

@lombokissues
Copy link
Author

👤 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
Copy link
Author

👤 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
Copy link
Author

👤 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
Copy link
Author

👤 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
Copy link
Author

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

Duplicate of issue #680

@lombokissues
Copy link
Author

End of migration

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

No branches or pull requests

1 participant