Fabian Keil via curl-library <curl-library@cool.haxx.se> wrote on 2021-01-08:

> using a curl binary built from git master 060658f634, test 1061
> works reliably for me when valgrind is being used but is flaky
> without it:
> 
>     fk@t520 ~/git/curl/tests $./runtests.pl -n 1061 1061 1061 1061 1061 1061 
> 1061 1061 1061 1061
>     ********* System characteristics ******** 
>     * curl 7.75.0-DEV (amd64-unknown-freebsd11.4) 
>     * libcurl/7.75.0-DEV OpenSSL/1.1.1i zlib/1.2.11 brotli/1.0.9 zstd/1.4.5 
> libidn2/2.3.0 libpsl/0.21.1 (+libidn2/2.3.0) nghttp2/1.42.0
>     * Features: alt-svc AsynchDNS brotli Debug HTTP2 HTTPS-proxy IDN IPv6 
> Largefile libz NTLM NTLM_WB PSL SSL TLS-SRP TrackMemory UnixSockets zstd
>     * Disabled: 
>     * Host: t520.local
>     * System: ElectroBSD t520.local 11.4-STABLE ElectroBSD 11.4-STABLE #2 
> r368530+b956f65cb108(electrobsd): Sat Dec 12 08:37:23 UTC 2020     
> fk@t520.local:/usr/obj/usr/src/sys/ELECTRO_BEER  amd64
>     * OS: freebsd
>     *
>     *** DISABLES memory tracking when using threaded resolver
>     *
>     * Servers: HTTP-IPv6 HTTP-unix FTP-IPv6 
>     * Env: 
>     * Seed: 265959
>     ***************************************** 
>     test 1061...[HTTP proxy CONNECT auth Digest, large headers and chunked 
> data]
>     --pd---e--- OK (1   out of 10 , remaining: 00:13, took 1.471s, duration: 
> 00:01)
>     test 1061...[HTTP proxy CONNECT auth Digest, large headers and chunked 
> data]
>     --pd---e--- OK (2   out of 10 , remaining: 00:06, took 0.229s, duration: 
> 00:01)
>     test 1061...[HTTP proxy CONNECT auth Digest, large headers and chunked 
> data]
>     --pd---e--- OK (3   out of 10 , remaining: 00:04, took 0.193s, duration: 
> 00:01)
>     test 1061...[HTTP proxy CONNECT auth Digest, large headers and chunked 
> data]
>     --pd---e--- OK (4   out of 10 , remaining: 00:03, took 0.192s, duration: 
> 00:02)
>     test 1061...[HTTP proxy CONNECT auth Digest, large headers and chunked 
> data]
> 
>      1061: protocol FAILED:
>     --- log/check-expected    2021-01-08 20:25:33.229181000 +0100
>     +++ log/check-generated   2021-01-08 20:25:33.229096000 +0100
>     @@ -3,12 +3,6 @@
>      User-Agent: curl/7.75.0-DEV[CR][LF]
>      Proxy-Connection: Keep-Alive[CR][LF]
>      [CR][LF]
>     -CONNECT test.remote.haxx.se.1061:8990 HTTP/1.1[CR][LF]
>     -Host: test.remote.haxx.se.1061:8990[CR][LF]
>     -Proxy-Authorization: Digest username="silly", realm="weirdorealm", 
> nonce="12345", uri="test.remote.haxx.se.1061:8990", 
> response="4e23449fa93224834299e7282a70472c"[CR][LF]
>     -User-Agent: curl/7.75.0-DEV[CR][LF]
>     -Proxy-Connection: Keep-Alive[CR][LF]
>     -[CR][LF]
>      GET /path/10610002 HTTP/1.1[CR][LF]
>      Host: test.remote.haxx.se.1061:8990[CR][LF]
>      User-Agent: curl/7.75.0-DEV[CR][LF]
> 
>      - abort tests
>     TESTDONE: 4 tests out of 5 reported OK: 80%
> 
>     TESTFAIL: These test cases failed: 1061 
> 
>     TESTDONE: 5 tests were considered during 2 seconds.
> 
> When it fails, it's always because of the missing CONNECT request.

The problem seems to be that curl is ignoring the authentication
request.

With valgrind the trace contains:

    3e40: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    3e80: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    3ec0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    13:49:27.034809 <= Recv header, 2 bytes (0x2)
    0000: 
    13:49:27.035505 == Info: Ignore chunked response-body
    13:49:28.941985 == Info: chunk reading DONE
    13:49:28.945615 == Info: Establish HTTP proxy tunnel to 
test.remote.haxx.se.1061:8990
    13:49:28.973582 == Info: Proxy auth using Digest with user 'silly'
    13:49:28.974488 => Send header, 310 bytes (0x136)
    0000: CONNECT test.remote.haxx.se.1061:8990 HTTP/1.1
    0030: Host: test.remote.haxx.se.1061:8990
    0055: Proxy-Authorization: Digest username="silly", realm="weirdorealm
    0095: ", nonce="12345", uri="test.remote.haxx.se.1061:8990", response=
    00d5: "4e23449fa93224834299e7282a70472c"
    00f9: User-Agent: curl/7.75.0-DEV
    0116: Proxy-Connection: Keep-Alive
    0134: 

Without valgrind I get no "chunk reading DONE" message:

    3e40: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    3e80: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    3ec0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    13:55:12.014360 <= Recv header, 2 bytes (0x2)
    0000: 
    13:55:12.014374 == Info: Ignore chunked response-body
    13:55:12.047597 == Info: CONNECT phase completed!
    13:55:12.047607 == Info: STATE: WAITPROXYCONNECT => SENDPROTOCONNECT handle 
0x8030d3c08; line 1819 (connection #0)
    13:55:12.047613 == Info: CONNECT phase completed!
    13:55:12.047617 == Info: CONNECT phase completed!
    13:55:12.047621 == Info: STATE: SENDPROTOCONNECT => DO handle 0x8030d3c08; 
line 1869 (connection #0)
    13:55:12.047668 => Send header, 110 bytes (0x6e)
    0000: GET /path/10610002 HTTP/1.1
    001d: Host: test.remote.haxx.se.1061:8990
    0042: User-Agent: curl/7.75.0-DEV
    005f: Accept: */*
    006c: 

> I haven't executed the tests in a while so I'm not sure
> if this is a new issue.

This does not appear to be a new issue. I tried a couple of
past releases stopping in 2019 and the problem was present
there as well. Finally with curl-7_65_0 the test hangs instead
of failing.
 
Fabian

Attachment: pgpUJNSKXh1GB.pgp
Description: OpenPGP digital signature

-------------------------------------------------------------------
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.se/mail/etiquette.html

Reply via email to