lishunli / projectlombok

Automatically exported from code.google.com/p/projectlombok
0 stars 0 forks source link

lombok deadlocks eclipse #531

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
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(DefaultClassL
oader.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(ClasspathMa
nager.java:477)
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathMan
ager.java:456)
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultC
lassLoader.java:216)
...

Any work arounds?

Original issue reported on code.google.com by shuzha...@gmail.com on 9 Jun 2013 at 8:22

GoogleCodeExporter commented 9 years ago
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(DefaultClassL
oader.java)
java.lang.ClassLoader.loadClass(ClassLoader.java:266)
org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.runPostCompiler(Abstr
actImageBuilder.java:334)
org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.writeClassFileContent
s(AbstractImageBuilder.java:832)
org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.writeClassFile(Abstra
ctImageBuilder.java:823)
org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.acceptResult(Abstract
ImageBuilder.java:187)
org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:508)
org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImage
Builder.java:364)
org.eclipse.jdt.internal.core.builder.BatchImageBuilder.compile(BatchImageBuilde
r.java:178)
org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImage
Builder.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:3
51)
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(ClasspathMa
nager.java:477)
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathMan
ager.java:456)
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultC
lassLoader.java:216)
org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:4
00)
org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.jav
a: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(DefaultClassL
oader.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(PatchV
alEclipse.java:91)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
a:43)
java.lang.reflect.Method.invoke(Method.java:616)
lombok.eclipse.agent.PatchValEclipsePortal.copyInitializationOfLocalDeclaration(
PatchValEclipsePortal.java:58)
org.eclipse.jdt.internal.compiler.parser.Parser.consumeExitVariableWithInitializ
ation(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(MethodDe
claration.java:148)
org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.parseMethods(TypeDeclarati
on.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)

Original comment by shuzha...@gmail.com on 9 Jun 2013 at 8:40

GoogleCodeExporter commented 9 years ago
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:

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

Original comment by reini...@gmail.com on 8 Jul 2013 at 8:15

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

Original comment by r.spilker on 24 Feb 2014 at 10:17