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