You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by bu...@apache.org on 2004/01/22 02:59:24 UTC

DO NOT REPLY [Bug 26330] New: - Ant freezes when CPU load is high

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=26330>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=26330

Ant freezes when CPU load is high

           Summary: Ant freezes when CPU load is high
           Product: Ant
           Version: 1.5.4
          Platform: Other
        OS/Version: Other
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: Core
        AssignedTo: dev@ant.apache.org
        ReportedBy: wms@igoweb.org


When CPU load is high, ant sometimes "freezes". Sending a SIGQUIT to Java to get
a thread dump, I see that there is only one thread running, and it is waiting on
a condition in the "org.apache.tools.ant.Project.fireTargetFinished" function.
Seems that probably there is a race condition, when tasks are given very unfair
scheduling (due to heavy load), the monitor is notified before the thread starts
waiting? Just a guess. Here's the full thread dump, as you can see the only
application thread is the one that is waiting:

Full thread dump Java HotSpot(TM) Client VM (1.4.2_03-b02 mixed mode):
 
"Signal Dispatcher" daemon prio=1 tid=0x0809d458 nid=0x1d54 waiting on condition
[0..0]
 
"Finalizer" daemon prio=1 tid=0x08088698 nid=0x1d54 in Object.wait()
[4c942000..4c942854]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x44c284c0> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
        - locked <0x44c284c0> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
 
"Reference Handler" daemon prio=1 tid=0x08087aa8 nid=0x1d54 in Object.wait()
[4c8c1000..4c8c1854]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x44c28528> (a java.lang.ref.Reference$Lock)
        at java.lang.Object.wait(Object.java:429)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:115)
        - locked <0x44c28528> (a java.lang.ref.Reference$Lock)
 
"main" prio=1 tid=0x080522b8 nid=0x1d54 waiting on condition [bfffc000..bfffcb08]
        at org.apache.tools.ant.Project.fireTargetFinished(Project.java:1944)
        at org.apache.tools.ant.Target.performTasks(Target.java:337)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1339)
        at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:397)
        at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:143)
       at org.apache.tools.ant.Task.perform(Task.java:341)
        at org.apache.tools.ant.Target.execute(Target.java:309)
        at org.apache.tools.ant.Target.performTasks(Target.java:336)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1339)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1255)
        at org.apache.tools.ant.Main.runBuild(Main.java:609)
        at org.apache.tools.ant.Main.start(Main.java:196)
        at org.apache.tools.ant.Main.main(Main.java:235)
 
"VM Thread" prio=1 tid=0x08086788 nid=0x1d54 runnable
 
"VM Periodic Task Thread" prio=1 tid=0x0809fc50 nid=0x1d54 waiting on condition
"Suspend Checker Thread" prio=1 tid=0x0809cab8 nid=0x1d54 runnable

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org