You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ant.apache.org by Mike Hardy <mh...@h3c.com> on 2003/03/15 02:40:09 UTC
exec task hangs with j2sdk 1.4.1 / linux?
Hello everyone -
First, I'll apologize if this has already been hashed out, I searched
everywhere I could (bug db, mailing list archive, google) and didn't find
it, but I might have just missed it.
Here's my problem, since upgrading from Sun's j2sdk 1.4.0 on linux (redhat
7.2 patched up a lot) to Sun's j2sdk 1.4.1, ant is no longer able to
successfully fire off an exec task that calls Tomcat's startup.sh. I have
tried ant 1.5.2 and the problem still occurs for me
It used to work just fine, I would see the catalina.sh output, then the
shell scripts would finish as tomcat went into daemon mode, the task would
return, and ant would exit. Now it just hangs there, making it a manual
process.
With ordinary shell scripts or other binaries, this works (I checked
/bin/echo, and writing a shell script that echo'd things). So I'm focusing
in on the JVM.
Is there a known problem with 1.4.1 leaving the stdin, stdout or stderr
file handles open?
It seems that's what's ant is waiting on given this info:
"Thread-3" daemon prio=1 tid=0x0x832cdf8 nid=0x6610 runnable
[be5ff000..be5ff860]
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(FileInputStream.java:174)
at
org.apache.tools.ant.taskdefs.StreamPumper.run(StreamPumper.java:105)
at java.lang.Thread.run(Thread.java:536)
"Thread-2" daemon prio=1 tid=0x0x82dc510 nid=0x660e runnable
[be7ff000..be7ff860]
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(FileInputStream.java:191)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:222)
at java.io.BufferedInputStream.read(BufferedInputStream.java:277)
- locked <0x4424f670> (a java.io.BufferedInputStream)
at java.io.FilterInputStream.read(FilterInputStream.java:90)
at
org.apache.tools.ant.taskdefs.StreamPumper.run(StreamPumper.java:105)
at java.lang.Thread.run(Thread.java:536)
If anyone has any information on how to work around this, or avoid it
completely, I'd really appreciate it.
Thanks in advance for any help-
-Mike
Re: exec task hangs with j2sdk 1.4.1 / linux?
Posted by Mike Hardy <mh...@h3c.com>.
Not the *best* answer technically since 1.4.0 has garbage collector bugs
that segfault the VM sometimes, but I'm in the position I can revert now
and wait for the future so I guess its okay.
Thank you very much for the pointer, I skimmed through the bug parade but
didn't see it.
Cheers-
-Mike
On Sat, 15 Mar 2003, Eric Weidner wrote:
> Mike,
>
> This is a Java 1.4.1 bug. It has been fixed in 1.4.2. We ran into this
> because we use a lot of execs in our product.
>
> See http://developer.java.sun.com/developer/bugParade/bugs/4750978.html.
>
> The workaround is to revert to 1.4.0 for anything that needs execs or
> wait for 1.4.2 which should have a beta out soon.
>
> Eric
> Out-of-the-Box
> http://www.ejbsolutions.com
>
>
> Mike Hardy wrote:
>
> >The exec task doesn't take a fork argument - I'm calling
> >Tomcat's startup.sh, not the Tomcat class directly via the ant java task.
> >
> >I did try vmlauncher="false" and "true", and I also tried
> >output="/dev/null" to see if I could get it to ignore the streams, but
> >neither helped.
> >
> >I'm still hunting around for something. Its definitely the sub-processes
> >output streams that are breaking an assumption somewhere. In the line of
> >code referenced in the thread dump from CVS for ant 1.5.2 its sitting
> >there polling the stream for input. It never comes and the stream doesn't
> >close though, so it hangs forever
> >
> >-Mike
> >
> >On Fri, 14 Mar 2003, Martin wrote:
> >
> >
> >
> >>Mike-
> >>Did you try it with fork = "true"
> >>-Martin
> >>
> >>----- Original Message -----
> >>From: "Mike Hardy" <mh...@h3c.com>
> >>To: <us...@ant.apache.org>
> >>Sent: Friday, March 14, 2003 6:40 PM
> >>Subject: exec task hangs with j2sdk 1.4.1 / linux?
> >>
> >>
> >>
> >>
> >>>Hello everyone -
> >>>
> >>>First, I'll apologize if this has already been hashed out, I searched
> >>>everywhere I could (bug db, mailing list archive, google) and didn't find
> >>>it, but I might have just missed it.
> >>>
> >>>Here's my problem, since upgrading from Sun's j2sdk 1.4.0 on linux (redhat
> >>>7.2 patched up a lot) to Sun's j2sdk 1.4.1, ant is no longer able to
> >>>successfully fire off an exec task that calls Tomcat's startup.sh. I have
> >>>tried ant 1.5.2 and the problem still occurs for me
> >>>
> >>>It used to work just fine, I would see the catalina.sh output, then the
> >>>shell scripts would finish as tomcat went into daemon mode, the task would
> >>>return, and ant would exit. Now it just hangs there, making it a manual
> >>>process.
> >>>
> >>>With ordinary shell scripts or other binaries, this works (I checked
> >>>/bin/echo, and writing a shell script that echo'd things). So I'm focusing
> >>>in on the JVM.
> >>>
> >>>Is there a known problem with 1.4.1 leaving the stdin, stdout or stderr
> >>>file handles open?
> >>>
> >>>It seems that's what's ant is waiting on given this info:
> >>>
> >>>"Thread-3" daemon prio=1 tid=0x0x832cdf8 nid=0x6610 runnable
> >>>[be5ff000..be5ff860]
> >>> at java.io.FileInputStream.readBytes(Native Method)
> >>> at java.io.FileInputStream.read(FileInputStream.java:174)
> >>> at
> >>>org.apache.tools.ant.taskdefs.StreamPumper.run(StreamPumper.java:105)
> >>> at java.lang.Thread.run(Thread.java:536)
> >>>
> >>>"Thread-2" daemon prio=1 tid=0x0x82dc510 nid=0x660e runnable
> >>>[be7ff000..be7ff860]
> >>> at java.io.FileInputStream.readBytes(Native Method)
> >>> at java.io.FileInputStream.read(FileInputStream.java:191)
> >>> at java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
> >>> at java.io.BufferedInputStream.read1(BufferedInputStream.java:222)
> >>> at java.io.BufferedInputStream.read(BufferedInputStream.java:277)
> >>> - locked <0x4424f670> (a java.io.BufferedInputStream)
> >>> at java.io.FilterInputStream.read(FilterInputStream.java:90)
> >>> at
> >>>org.apache.tools.ant.taskdefs.StreamPumper.run(StreamPumper.java:105)
> >>> at java.lang.Thread.run(Thread.java:536)
> >>>
> >>>
> >>>
> >>>If anyone has any information on how to work around this, or avoid it
> >>>completely, I'd really appreciate it.
> >>>
> >>>Thanks in advance for any help-
> >>>-Mike
> >>>
> >>>
> >>>---------------------------------------------------------------------
> >>>To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> >>>For additional commands, e-mail: user-help@ant.apache.org
> >>>
> >>>
> >>>
> >>>
> >>---------------------------------------------------------------------
> >>To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> >>For additional commands, e-mail: user-help@ant.apache.org
> >>
> >>
> >>
> >
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> >For additional commands, e-mail: user-help@ant.apache.org
> >
> >
> >
> >
> >
>
>
Re: exec task hangs with j2sdk 1.4.1 / linux?
Posted by Eric Weidner <er...@ejbsolutions.com>.
Mike,
This is a Java 1.4.1 bug. It has been fixed in 1.4.2. We ran into this
because we use a lot of execs in our product.
See http://developer.java.sun.com/developer/bugParade/bugs/4750978.html.
The workaround is to revert to 1.4.0 for anything that needs execs or
wait for 1.4.2 which should have a beta out soon.
Eric
Out-of-the-Box
http://www.ejbsolutions.com
Mike Hardy wrote:
>The exec task doesn't take a fork argument - I'm calling
>Tomcat's startup.sh, not the Tomcat class directly via the ant java task.
>
>I did try vmlauncher="false" and "true", and I also tried
>output="/dev/null" to see if I could get it to ignore the streams, but
>neither helped.
>
>I'm still hunting around for something. Its definitely the sub-processes
>output streams that are breaking an assumption somewhere. In the line of
>code referenced in the thread dump from CVS for ant 1.5.2 its sitting
>there polling the stream for input. It never comes and the stream doesn't
>close though, so it hangs forever
>
>-Mike
>
>On Fri, 14 Mar 2003, Martin wrote:
>
>
>
>>Mike-
>>Did you try it with fork = "true"
>>-Martin
>>
>>----- Original Message -----
>>From: "Mike Hardy" <mh...@h3c.com>
>>To: <us...@ant.apache.org>
>>Sent: Friday, March 14, 2003 6:40 PM
>>Subject: exec task hangs with j2sdk 1.4.1 / linux?
>>
>>
>>
>>
>>>Hello everyone -
>>>
>>>First, I'll apologize if this has already been hashed out, I searched
>>>everywhere I could (bug db, mailing list archive, google) and didn't find
>>>it, but I might have just missed it.
>>>
>>>Here's my problem, since upgrading from Sun's j2sdk 1.4.0 on linux (redhat
>>>7.2 patched up a lot) to Sun's j2sdk 1.4.1, ant is no longer able to
>>>successfully fire off an exec task that calls Tomcat's startup.sh. I have
>>>tried ant 1.5.2 and the problem still occurs for me
>>>
>>>It used to work just fine, I would see the catalina.sh output, then the
>>>shell scripts would finish as tomcat went into daemon mode, the task would
>>>return, and ant would exit. Now it just hangs there, making it a manual
>>>process.
>>>
>>>With ordinary shell scripts or other binaries, this works (I checked
>>>/bin/echo, and writing a shell script that echo'd things). So I'm focusing
>>>in on the JVM.
>>>
>>>Is there a known problem with 1.4.1 leaving the stdin, stdout or stderr
>>>file handles open?
>>>
>>>It seems that's what's ant is waiting on given this info:
>>>
>>>"Thread-3" daemon prio=1 tid=0x0x832cdf8 nid=0x6610 runnable
>>>[be5ff000..be5ff860]
>>> at java.io.FileInputStream.readBytes(Native Method)
>>> at java.io.FileInputStream.read(FileInputStream.java:174)
>>> at
>>>org.apache.tools.ant.taskdefs.StreamPumper.run(StreamPumper.java:105)
>>> at java.lang.Thread.run(Thread.java:536)
>>>
>>>"Thread-2" daemon prio=1 tid=0x0x82dc510 nid=0x660e runnable
>>>[be7ff000..be7ff860]
>>> at java.io.FileInputStream.readBytes(Native Method)
>>> at java.io.FileInputStream.read(FileInputStream.java:191)
>>> at java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
>>> at java.io.BufferedInputStream.read1(BufferedInputStream.java:222)
>>> at java.io.BufferedInputStream.read(BufferedInputStream.java:277)
>>> - locked <0x4424f670> (a java.io.BufferedInputStream)
>>> at java.io.FilterInputStream.read(FilterInputStream.java:90)
>>> at
>>>org.apache.tools.ant.taskdefs.StreamPumper.run(StreamPumper.java:105)
>>> at java.lang.Thread.run(Thread.java:536)
>>>
>>>
>>>
>>>If anyone has any information on how to work around this, or avoid it
>>>completely, I'd really appreciate it.
>>>
>>>Thanks in advance for any help-
>>>-Mike
>>>
>>>
>>>---------------------------------------------------------------------
>>>To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
>>>For additional commands, e-mail: user-help@ant.apache.org
>>>
>>>
>>>
>>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
>>For additional commands, e-mail: user-help@ant.apache.org
>>
>>
>>
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
>For additional commands, e-mail: user-help@ant.apache.org
>
>
>
>
>
Re: exec task hangs with j2sdk 1.4.1 / linux?
Posted by Mike Hardy <mh...@h3c.com>.
The exec task doesn't take a fork argument - I'm calling
Tomcat's startup.sh, not the Tomcat class directly via the ant java task.
I did try vmlauncher="false" and "true", and I also tried
output="/dev/null" to see if I could get it to ignore the streams, but
neither helped.
I'm still hunting around for something. Its definitely the sub-processes
output streams that are breaking an assumption somewhere. In the line of
code referenced in the thread dump from CVS for ant 1.5.2 its sitting
there polling the stream for input. It never comes and the stream doesn't
close though, so it hangs forever
-Mike
On Fri, 14 Mar 2003, Martin wrote:
> Mike-
> Did you try it with fork = "true"
> -Martin
>
> ----- Original Message -----
> From: "Mike Hardy" <mh...@h3c.com>
> To: <us...@ant.apache.org>
> Sent: Friday, March 14, 2003 6:40 PM
> Subject: exec task hangs with j2sdk 1.4.1 / linux?
>
>
> >
> > Hello everyone -
> >
> > First, I'll apologize if this has already been hashed out, I searched
> > everywhere I could (bug db, mailing list archive, google) and didn't find
> > it, but I might have just missed it.
> >
> > Here's my problem, since upgrading from Sun's j2sdk 1.4.0 on linux (redhat
> > 7.2 patched up a lot) to Sun's j2sdk 1.4.1, ant is no longer able to
> > successfully fire off an exec task that calls Tomcat's startup.sh. I have
> > tried ant 1.5.2 and the problem still occurs for me
> >
> > It used to work just fine, I would see the catalina.sh output, then the
> > shell scripts would finish as tomcat went into daemon mode, the task would
> > return, and ant would exit. Now it just hangs there, making it a manual
> > process.
> >
> > With ordinary shell scripts or other binaries, this works (I checked
> > /bin/echo, and writing a shell script that echo'd things). So I'm focusing
> > in on the JVM.
> >
> > Is there a known problem with 1.4.1 leaving the stdin, stdout or stderr
> > file handles open?
> >
> > It seems that's what's ant is waiting on given this info:
> >
> > "Thread-3" daemon prio=1 tid=0x0x832cdf8 nid=0x6610 runnable
> > [be5ff000..be5ff860]
> > at java.io.FileInputStream.readBytes(Native Method)
> > at java.io.FileInputStream.read(FileInputStream.java:174)
> > at
> > org.apache.tools.ant.taskdefs.StreamPumper.run(StreamPumper.java:105)
> > at java.lang.Thread.run(Thread.java:536)
> >
> > "Thread-2" daemon prio=1 tid=0x0x82dc510 nid=0x660e runnable
> > [be7ff000..be7ff860]
> > at java.io.FileInputStream.readBytes(Native Method)
> > at java.io.FileInputStream.read(FileInputStream.java:191)
> > at java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
> > at java.io.BufferedInputStream.read1(BufferedInputStream.java:222)
> > at java.io.BufferedInputStream.read(BufferedInputStream.java:277)
> > - locked <0x4424f670> (a java.io.BufferedInputStream)
> > at java.io.FilterInputStream.read(FilterInputStream.java:90)
> > at
> > org.apache.tools.ant.taskdefs.StreamPumper.run(StreamPumper.java:105)
> > at java.lang.Thread.run(Thread.java:536)
> >
> >
> >
> > If anyone has any information on how to work around this, or avoid it
> > completely, I'd really appreciate it.
> >
> > Thanks in advance for any help-
> > -Mike
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> > For additional commands, e-mail: user-help@ant.apache.org
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> For additional commands, e-mail: user-help@ant.apache.org
>
Re: exec task hangs with j2sdk 1.4.1 / linux?
Posted by Martin <mg...@hotmail.com>.
Mike-
Did you try it with fork = "true"
-Martin
----- Original Message -----
From: "Mike Hardy" <mh...@h3c.com>
To: <us...@ant.apache.org>
Sent: Friday, March 14, 2003 6:40 PM
Subject: exec task hangs with j2sdk 1.4.1 / linux?
>
> Hello everyone -
>
> First, I'll apologize if this has already been hashed out, I searched
> everywhere I could (bug db, mailing list archive, google) and didn't find
> it, but I might have just missed it.
>
> Here's my problem, since upgrading from Sun's j2sdk 1.4.0 on linux (redhat
> 7.2 patched up a lot) to Sun's j2sdk 1.4.1, ant is no longer able to
> successfully fire off an exec task that calls Tomcat's startup.sh. I have
> tried ant 1.5.2 and the problem still occurs for me
>
> It used to work just fine, I would see the catalina.sh output, then the
> shell scripts would finish as tomcat went into daemon mode, the task would
> return, and ant would exit. Now it just hangs there, making it a manual
> process.
>
> With ordinary shell scripts or other binaries, this works (I checked
> /bin/echo, and writing a shell script that echo'd things). So I'm focusing
> in on the JVM.
>
> Is there a known problem with 1.4.1 leaving the stdin, stdout or stderr
> file handles open?
>
> It seems that's what's ant is waiting on given this info:
>
> "Thread-3" daemon prio=1 tid=0x0x832cdf8 nid=0x6610 runnable
> [be5ff000..be5ff860]
> at java.io.FileInputStream.readBytes(Native Method)
> at java.io.FileInputStream.read(FileInputStream.java:174)
> at
> org.apache.tools.ant.taskdefs.StreamPumper.run(StreamPumper.java:105)
> at java.lang.Thread.run(Thread.java:536)
>
> "Thread-2" daemon prio=1 tid=0x0x82dc510 nid=0x660e runnable
> [be7ff000..be7ff860]
> at java.io.FileInputStream.readBytes(Native Method)
> at java.io.FileInputStream.read(FileInputStream.java:191)
> at java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
> at java.io.BufferedInputStream.read1(BufferedInputStream.java:222)
> at java.io.BufferedInputStream.read(BufferedInputStream.java:277)
> - locked <0x4424f670> (a java.io.BufferedInputStream)
> at java.io.FilterInputStream.read(FilterInputStream.java:90)
> at
> org.apache.tools.ant.taskdefs.StreamPumper.run(StreamPumper.java:105)
> at java.lang.Thread.run(Thread.java:536)
>
>
>
> If anyone has any information on how to work around this, or avoid it
> completely, I'd really appreciate it.
>
> Thanks in advance for any help-
> -Mike
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> For additional commands, e-mail: user-help@ant.apache.org
>
>