Hey guys,

I'm using func v0.26 with python 2.4.

When I use the --timeout=30 option and the host takes too long (I've 
artificially made it not respond by dropping all packets coming from the 
overlord) it will always timeout after 21.X seconds, no matter what the 
--timeout values is set to. This occurs both in the API and using the client.

Passing a timeout that's below 21 seconds works. If I do an strace I can see 
the following differences.  When <21 seconds, select() returns with a (Timeout):

connect(4, {sa_family=AF_INET, sin_port=htons(51234), sin_addr=inet_addr("X")}, 
16) = -1 EINPROGRESS (Operation now in progress)
select(5, NULL, [4], NULL, {10, 0}
)     = 0 (Timeout)
connect(4, {sa_family=AF_INET, sin_port=htons(51234), sin_addr=inet_addr("X")}, 
16) = -1 EALREADY (Operation already in progress)

When a timeout is above 21 seconds, select returns saying that there is DATA 
ready in the list of monitored write FDs. Select will naturally exit at this 
point, however, no data has been received by the remote connection.

connect(4, {sa_family=AF_INET, sin_port=htons(51234), sin_addr=inet_addr("X")}, 
16) = -1 EINPROGRESS (Operation now in progress)
select(5, NULL, [4], NULL, {22, 0}
)     = 1 (out [4], left {1, 0})
connect(4, {sa_family=AF_INET, sin_port=htons(51234), sin_addr=inet_addr("X")}, 
16) = -1 ETIMEDOUT (Connection timed out)

This issue is killing me, so any insight or obviousness I've missed out would 
be extremely appreciated! thanks!


Kris




_______________________________________________
Func-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/func-list

Reply via email to