Good Evening Anthony-

how about set maxwait attribute to a reasonably small value such as 5 secs e.g. maxwait="5"

http://ant.apache.org/manual/CoreTasks/waitfor.html

M--

This email message and any files transmitted with it contain confidential
information intended only for the person(s) to whom this email message is
addressed.  If you have received this email message in error, please notify
the sender immediately by telephone or email and destroy the original
message without making a copy.  Thank you.

----- Original Message ----- From: "Berglas, Anthony" <[EMAIL PROTECTED]>
To: "Ant Users List" <user@ant.apache.org>
Sent: Tuesday, April 17, 2007 7:35 PM
Subject: RE: Bug: waitfor waits too long, too slow


I'm a Turkey.  "dbserver" should be "localhost".  Having looked at all
sorts of things, including "telnet localhost", I just did not see it.

There is in fact no machine called dbserver.  It would, of course, be
nice to get a dnslookup error rather than just hang.  But that is not
the way that the C-Grade code in operating systems works!

If Socket could print some sort of message for timeout vs simply no port
listener that would be good, but I suspect that it cannot.

Thanks for your reply, and sorry to bother you.

Anthony

-----Original Message-----
From: Steve Loughran [mailto:[EMAIL PROTECTED]
Sent: Tuesday, April 17, 2007 7:09 PM
To: Ant Users List
Subject: Re: Bug: waitfor waits too long, too slow

Berglas, Anthony wrote:
> Hello All,
>
> I have the following fragment in a build that restarts tomcat
>         <waitfor>
>             <not>
>                 <socket server="dbserver" port="8080"/>
>             </not>
>         </waitfor>
>
> The trouble is that it takes about 30 seconds to run, even if Tomcat
has
> not run for a while, and there is nothing port 8080 at all.
>
> This is on Windows XP.
>
> Setting checkevery does not help.
>
> The following netstats were done before, during (two) and after the
> waitfor.
>
> C:\Documents and Settings\aberglas>netstat -ao | findstr 8080
>
> C:\Documents and Settings\aberglas>netstat -ao | findstr 8080
>   TCP    aberglas-pc:2520       10.16.172.13:8080      SYN_SENT
> 2444
>
> C:\Documents and Settings\aberglas>netstat -ao | findstr 8080
>   TCP    aberglas-pc:2520       10.16.172.13:8080      SYN_SENT
> 2444
>
> C:\Documents and Settings\aberglas>netstat -ao | findstr 8080
>
> (If Tomcat had been run recently, there can be some TIME_WAITS as
well,
> but I think that that is quite irrelevant.  In any case the problem
is
> still there if there are no TIME_WAITS as demonstrated above.)
>
> Feels like this is a bug, in ant or windows.  I've needed to replace
> waitfor with a sleep, which is unfortunate.  Any help appreciated

It could be a quirk of networking -30s sounds like a timeout on the
lan,
and the SYN_SENT packet implies it isnt DNS that is causing the delay.

If your server has a firewall and is dropping all incoming packets,
then
the build wont know that the socket isnt there until it gives up.

1. test with a manual "telnet dbserver 8080" and see how long that
takes
to terminate. A quick rejection=good, 30s delay=bad

2. try opening the firewall on that port, so that the manual telnet
fails fast, instead of slow

3. maybe we could fiddle with socket.setSoTimeout in the condition,
but
this is only something that could be done in a future version of ant.
you are best off fixing your firewall.




> A related feature request, is that it would be good to be able to
wait
> for a file lock to be removed on windows.  Or to be able to put a
time
> out on delete.

well, if you can find a way to reliably implement it, I'm sure we
could
add a new condition.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to