Community
Participate
Working Groups
If you create an external tool that creates a lot of output, and do not select the option to log output to the console, the tool will crash with the following error: ExternalToolsAction.runAntProblem Reason: External tool runner internal error When the same tool is run with the output logged to the console, it does not crash. Due to bug 17381, only Ant scripts can display this behaviour.
Created attachment 1007 [details] Ant script to create lots of output
I got different behaviour when running a fresh Eclipse. Now, the script runs longer (a couple of minutes), but crashes the JVM. No significant data is written to the workspace log, and no java core file was created. I have attached screenshots of the dialogs below.
Created attachment 1011 [details] First error dialog encountered
Created attachment 1012 [details] Second error dialog encountered
Need to determine why this crashes and where. What happens to the output when it's not being logged?
Sounds like a pipe fills up somewhere and their code doesn't expect it to. Could explicitely send the output to /dev/null (or equivalent) if output is not being logged and see if this fixes the problem.
I've got a different error in a self hosting workspace. A dialog saying internal error shows up and here is what I get in the debug console besides the normal script output: [antcall] java.lang.StackOverflowError [antcall] at org.eclipse.ant.internal.core.ant.InternalAntRunner.run (InternalAntRunner.java:277) [antcall] at java.lang.reflect.Method.invoke(Native Method) [antcall] at org.eclipse.ant.core.AntRunner.run(AntRunner.java:155) [antcall] at org.eclipse.ui.externaltools.internal.core.AntFileRunner.execute (AntFileRunner.java:51) [antcall] at org.eclipse.ui.externaltools.internal.core.DefaultRunnerContext.executeRunner (DefaultRunnerContext.java:214) [antcall] at org.eclipse.ui.externaltools.internal.core.DefaultRunnerContext.run (DefaultRunnerContext.java:264) [antcall] at org.eclipse.ui.externaltools.internal.ui.AntLaunchWizard$1.run (AntLaunchWizard.java:116) [antcall] at org.eclipse.jface.operation.ModalContext$ModalContextThread.run (ModalContext.java:98) BUILD FAILED java.lang.StackOverflowError at org.eclipse.ant.internal.core.ant.InternalAntRunner.run (InternalAntRunner.java:277) at java.lang.reflect.Method.invoke(Native Method) at org.eclipse.ant.core.AntRunner.run(AntRunner.java:155) at org.eclipse.ui.externaltools.internal.core.AntFileRunner.execute (AntFileRunner.java:51) at org.eclipse.ui.externaltools.internal.core.DefaultRunnerContext.executeRunner (DefaultRunnerContext.java:214) at org.eclipse.ui.externaltools.internal.core.DefaultRunnerContext.run (DefaultRunnerContext.java:264) at org.eclipse.ui.externaltools.internal.ui.AntLaunchWizard$1.run (AntLaunchWizard.java:116) at org.eclipse.jface.operation.ModalContext$ModalContextThread.run (ModalContext.java:98)
The stack overflow occurs even when showing output to the Log Console. It also occurs when not writing to the Log Console but when using a NullBuilder.
I'm going to ignore this until someone points out the connection to SWT.
Change released. Please verify.
McQ, I cc'ed you on this because this was causing a VM crash. We have not been able to reproduce the VM crash so far.
Build: 20020602 (F@ candidate 2) The overflow seems to be caused by the recursive nature of the test script, not the amount of output generated by the script. If the tool shows output to the console, this is pretty obvious. The stack trace shown to the console when the stack overflow occurs contains only 6 distinct method calls that repeat until the stack overflows: at org.apache.tools.ant.Task.perform(Task.java:217) at org.apache.tools.ant.Target.execute(Target.java:184) at org.apache.tools.ant.Target.performTasks(Target.java:202) at org.apache.tools.ant.Project.executeTarget(Project.java:601) at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:266) at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:120) Each target in the Ant file we are using to test calls the other target, so the stack gets continously larger until the overflow occurs. The VM crash is still occuring on Adam's machine. It is happening whether or not the output goes to the Log Console. This is really making me think that this isn't an External Tools issue. It seems like for some reason Adam's machine is not handling the stack overflow correctly.
Adam, which VM were you using?
IBM Windows 32 JDK 1.3.1 SR-1 (30 April 2002)
Build: 20020602 (F2) I have not been able to reproduce this problem on my machine. Closing PR.