Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[ajdt-dev] AJDT build goes into an infinite loop

Hello all,

since at least a year in our team we have problems when building from
within ECLIPSE with the AspectJ-compiler contained in AJDT. Symptoms:

- the first build after starting ECLIPSE allways works flawless.
  (compiles, weaves, updates markers and model)
- starting with some of the subsequent builds (the 2.nd, 3rd or so,
  seemingly random) the build goes into an seemingly infinite loop
  - one CPU is permanently at about 100%
  - progress display doesnt show any change
  - building can't be canceled and Eclipse can't be shutdown normally
    because ("..waiting for background work to complete").
    You need to kill the eclipse Process.
- after starting ECLIPSE, the same build again finishes flawless
  (and one of the next builds hangs....)

We couldn't get a clear diagnosis a long time, because the build was
excessively memory hungry. The new pipelining compilation (Spring 2007)
helped a lot, because reduced the needed memory to about 700MB.
Meanwhile we have refactored, and now we see the same problems while
building much smaller (sub)-projects. We don't use dependant projects
in ECLIPSE, rather we have some core-jars (including some binary aspects) in the classpath.

The Problem is not ulitmately urgent, because we do all real builds
with the IAJC ant task (and this allways worked without problems).

Anyone else seeing similar symptoms? Any Ideas where to search
to nail down the problem?

thanks
Hermann Vosseler
IT/Development
Baader Wertpapierhandelsbank AG


=======================
Additional Infos:

We are running 
 - ECLIPSE 3.3.1.1 Build id: M20071023-1652
 - AJDT 1.5.0.200706070619 with AspectJ version: 1.5.4.200705211336
 - Java 1.6.0_03-b05 on Ubuntu Gutsy

While in the "seemingly looping" state, I allways find the following
situation in the ECLIPSE stacktrace: besides the GUI/GTK thread,
a single thread is running and allways shows the same frames:


"Worker-17" prio=10 tid=0x09d94c00 nid=0x2270 runnable [0x5f695000..0x5f695fc0]
   java.lang.Thread.State: RUNNABLE
        at org.aspectj.weaver.ReferenceType.hasAnnotation(ReferenceType.java:151)
        at org.aspectj.weaver.patterns.ExactAnnotationTypePattern.matches(ExactAnnotationTypePattern.java:82)
        at org.aspectj.weaver.patterns.AnyWithAnnotationTypePattern.matchesExactly(TypePattern.java:470)
        at org.aspectj.weaver.patterns.TypePattern.matchesStatically(TypePattern.java:121)
        at org.aspectj.weaver.patterns.SignaturePattern.matchesExactlyMethod(SignaturePattern.java:375)
        at org.aspectj.weaver.patterns.SignaturePattern.matchesExactly(SignaturePattern.java:325)
        at org.aspectj.weaver.patterns.SignaturePattern.matches(SignaturePattern.java:289)
        at org.aspectj.weaver.patterns.HasMemberTypePattern.hasMethod(HasMemberTypePattern.java:77)
        at org.aspectj.weaver.patterns.HasMemberTypePattern.matchesExactly(HasMemberTypePattern.java:49)
        at org.aspectj.weaver.patterns.TypePattern.matchesStatically(TypePattern.java:121)
        at org.aspectj.weaver.patterns.DeclareAnnotation.matches(DeclareAnnotation.java:254)
        at org.aspectj.ajdt.internal.compiler.lookup.AjLookupEnvironment.doDeclareAnnotations(AjLookupEnvironment.java:750)
        at org.aspectj.ajdt.internal.compiler.lookup.AjLookupEnvironment.weaveInterTypeDeclarations(AjLookupEnvironment.java:618)
        at org.aspectj.ajdt.internal.compiler.lookup.AjLookupEnvironment.weaveInterTypeDeclarations(AjLookupEnvironment.java:519)
        at org.aspectj.ajdt.internal.compiler.lookup.AjLookupEnvironment.createBinaryTypeFrom(AjLookupEnvironment.java:1060)
        at org.aspectj.org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.createBinaryTypeFrom(LookupEnvironment.java:480)
        at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.accept(Compiler.java:190)
        at org.aspectj.org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:137)
        at org.aspectj.org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage(PackageBinding.java:178)
        at org.aspectj.org.eclipse.jdt.internal.compiler.lookup.Scope.getPackage(Scope.java:2218)
        at org.aspectj.org.eclipse.jdt.internal.compiler.ast.QualifiedTypeReference.getTypeBinding(QualifiedTypeReference.java:62)
        at org.aspectj.org.eclipse.jdt.internal.compiler.ast.JavadocQualifiedTypeReference.internalResolveType(JavadocQualifiedTypeReference.java:58)
        at org.aspectj.org.eclipse.jdt.internal.compiler.ast.JavadocQualifiedTypeReference.resolveType(JavadocQualifiedTypeReference.java:81)
        at org.aspectj.org.eclipse.jdt.internal.compiler.ast.Javadoc.resolveReference(Javadoc.java:222)
        at org.aspectj.org.eclipse.jdt.internal.compiler.ast.Javadoc.resolve(Javadoc.java:116)
        at org.aspectj.org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1094)
        at org.aspectj.org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1137)
        at org.aspectj.org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.resolve(CompilationUnitDeclaration.java:305)
        at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:519)
        at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:329)
        at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performCompilation(AjBuildManager.java:974)
        at org.aspectj.ajdt.internal.core.builder.AjBuildManager.doBuild(AjBuildManager.java:291)
        at org.aspectj.ajdt.internal.core.builder.AjBuildManager.incrementalBuild(AjBuildManager.java:185)
        at org.aspectj.ajde.core.internal.AjdeCoreBuildManager.doBuild(AjdeCoreBuildManager.java:88)
        at org.aspectj.ajde.core.AjCompiler.build(AjCompiler.java:96)
        at org.eclipse.ajdt.core.builder.AJBuilder.build(AJBuilder.java:198)


Back to the top