Hi Daniel,
Failed test cases with the threaded resolver:
532 536 573
No fails are reproduced on my hosts:
Did you use 'configure --enable-debug' before you ran the tests? With
your second patch, I got the threaded resolver version to fail on these:
I was using sequentially 3 different ways to start tests:
1) configure --enable-debug --enable-curldebug
--enable-threaded-resolver ... && make && make tests
2) the same configuration with hand-starting runtests.pl -n ... (disable
using valgrind)
3) configure --disable-debug --disable-curldebug
--enable-threaded-resolver ... && make && make tests
fails are not reproduced in all three cases on my host
On the FreeBSD host (2x4-core Intel processors, under high load - our
really working server) I was starting only case (3) - no fails are
reproduced.
I think the threaded resolver code should be manually reviewed
intentionally, and tests passed on your host, or where they are
reproduced less-or-more.
- waitperform(conn, timeout_ms);
+ Curl_is_resolved(conn,&temp_entry);
fixed, but I am not sure that this call is used somewhere in the test
suite ... on the other hand this call is used inside a library
itself, but in very special case.
Yes? Like in *every single request* when the easy interface is used
and libcurl is built to use c-ares. It wouldn't trigger a test failure
since we don't have any ways in the test suite to detect such errors.
The Curl_is_resolved code also makes a waitperform() call, but with a
timeout_ms=0. This causes poll() call anyway, but with a zero timeout,
so it would not load a system by busy state, especially on *nix hosts,
as I hope - I've seen such code in other places as a replacement for
sleep(0)/usleep(0) call especially to avoid system load. But anyway it
is fixed now ...
Amount of my time allocated for this job is almost exhausted. Hope,
the result is useful.
Thanks, I'll try to make something out of it.
That's great, hope to see our patches in the next curl release.
Regards,
Vsevolod
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette: http://curl.haxx.se/mail/etiquette.html