You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by GitBox <gi...@apache.org> on 2021/11/17 22:42:54 UTC

[GitHub] [trafficserver] ywkaras opened a new issue #8527: Au test post-early-return fails sporadically for HTTP/2 client

ywkaras opened a new issue #8527:
URL: https://github.com/apache/trafficserver/issues/8527


   I change the test to enable debug output for tag http2_stream.   I ran the test 80 times, and it failed 5 times.  I removed the timestamp and event thread number from the output.  This is the output for (all) the failed runs:
   ```
   <Http2Stream.cc:376 (change_state)> (http2_stream) [4] [1] Http2StreamState::HTTP2_STREAM_STATE_OPEN
   <Http2Stream.cc:376 (change_state)> (http2_stream) [4] [1] Http2StreamState::HTTP2_STREAM_STATE_HALF_CLOSED_LOCAL
   <Http2Stream.cc:376 (change_state)> (http2_stream) [4] [1] Http2StreamState::HTTP2_STREAM_STATE_CLOSED
   <Http2Stream.cc:434 (do_io_close)> (http2_stream) [4] [1] do_io_close
   <Http2Stream.cc:68 (~Http2Stream)> (http2_stream) [4] [1] Destroy stream, sent 0 bytes
   ```
   The output for the successful runs was either:
   ```
   <Http2Stream.cc:376 (change_state)> (http2_stream) [4] [1] Http2StreamState::HTTP2_STREAM_STATE_OPEN
   <Http2Stream.cc:376 (change_state)> (http2_stream) [4] [1] Http2StreamState::HTTP2_STREAM_STATE_HALF_CLOSED_LOCAL
   <Http2Stream.cc:434 (do_io_close)> (http2_stream) [4] [1] do_io_close
   <Http2Stream.cc:68 (~Http2Stream)> (http2_stream) [4] [1] Destroy stream, sent 0 bytes
   <Http2Stream.cc:376 (change_state)> (http2_stream) [4] [1] Http2StreamState::HTTP2_STREAM_STATE_CLOSED
   ```
   or:
   ```
   <Http2Stream.cc:376 (change_state)> (http2_stream) [4] [1] Http2StreamState::HTTP2_STREAM_STATE_OPEN
   <Http2Stream.cc:376 (change_state)> (http2_stream) [4] [1] Http2StreamState::HTTP2_STREAM_STATE_HALF_CLOSED_REMOTE
   <Http2Stream.cc:376 (change_state)> (http2_stream) [4] [1] Http2StreamState::HTTP2_STREAM_STATE_CLOSED
   <Http2Stream.cc:434 (do_io_close)> (http2_stream) [4] [1] do_io_close
   <Http2Stream.cc:68 (~Http2Stream)> (http2_stream) [4] [1] Destroy stream, sent 0 bytes
   ```
   The commit (on master) I built to do this test:  4547ed75cb882f47f30c9370a685489c57ae773d
   
   config.nice:
   ```
   #! /bin/sh
   #
   # Created by configure
   
   CFLAGS=" "; export CFLAGS
   CXXFLAGS=" "; export CXXFLAGS
   LDFLAGS="-L/opt/oath/libssh2/1.8/lib -L/opt/oath/nghttp2/1.36/lib"; export LDFLAGS
   "./configure" \
   "--with-openssl=/opt/oath/openssl/1.1.1" \
   "--enable-experimental-plugins" \
   "--enable-example-plugins" \
   "--with-brotli=/opt/oath/brotli/1.0/include:/opt/oath/brotli/1.0/lib" \
   "--enable-ccache" \
   "--enable-werror" \
   "--prefix=/Users/wkaras/TSX/TS4" \
   "--exec-prefix=/Users/wkaras/TSX/TS4" \
   "PKG_CONFIG_PATH=/opt/rh/devtoolset-8/root/usr/lib64/pkgconfig:/opt/rh/httpd24/root/usr/lib64/pkgconfig:/opt/rh/rh-python36/root/usr/lib64/pkgconfig:/opt/rh/devtoolset-8/root/usr/lib64/pkgconfig:/opt/rh/httpd24/root/usr/lib64/pkgconfig:/opt/rh/devtoolset-8/root/usr/lib64/pkgconfig" \
   "CFLAGS=" \
   "LDFLAGS=-L/opt/oath/libssh2/1.8/lib -L/opt/oath/nghttp2/1.36/lib" \
   "CXXFLAGS=" \
   "$@"
   ```
   This was on RHEL7 (with mysterious Yahoo hacks) and devtoolset 8.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@trafficserver.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [trafficserver] ywkaras commented on issue #8527: Au test post-early-return fails sporadically for HTTP/2 client

Posted by GitBox <gi...@apache.org>.
ywkaras commented on issue #8527:
URL: https://github.com/apache/trafficserver/issues/8527#issuecomment-972376697


   If anyone wants to try to reproduce this, the way I run the same test back to back, multiple times, is to first cd to the directory containing the test, and create aliases for it using symbolic links:
   ```
   for n in $( seq 1 100 ); do ln -s post-early-return.test.py xyz$n.test.py; done
   ```
   Then cd to the TS `tests` subdirectory, and run the test multiple times using the aliases:
   ```
   ./autest.sh --ats-bin ~/TSX/TS4/bin -f $( for n in $( seq 1 80 ) ; do echo xyz$n ; done )
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@trafficserver.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [trafficserver] ywkaras commented on issue #8527: Au test post-early-return fails sporadically for HTTP/2 client

Posted by GitBox <gi...@apache.org>.
ywkaras commented on issue #8527:
URL: https://github.com/apache/trafficserver/issues/8527#issuecomment-972258929


   This is the bash script I used to find the three unique cases:
   ```
   rm -rf /tmp/dir
   mkdir /tmp/dir
   mkdir /tmp/dir/link
   
   let N=0
   for I in $( seq 1 80 )
   do
     fgrep DEBUG: xyz$I/_output/*ts/*all* | sed 's/^.*DEBUG: //' >| /tmp/dir/tmp
     let F=0
     if (( N != 0 )) ; then
       for I2 in $( seq 1 $N )
       do
         cmp /tmp/dir/tmp /tmp/dir/out$I2
         if (( $? == 0 )) ; then
           ln -s /tmp/dir/out$I2 /tmp/dir/link/out$I
           let F=1
           break
         fi
       done
     fi
     if (( F == 0 )) ; then
       let N=N+1
       mv /tmp/dir/tmp /tmp/dir/out$N
       ln -s /tmp/dir/out$N /tmp/dir/link/out$I
     fi
   done
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@trafficserver.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [trafficserver] maskit commented on issue #8527: Au test post-early-return fails sporadically for HTTP/2 client

Posted by GitBox <gi...@apache.org>.
maskit commented on issue #8527:
URL: https://github.com/apache/trafficserver/issues/8527#issuecomment-972312753


   I suppose the INTERNAL_ERROR came from here:
   https://github.com/apache/trafficserver/blob/4547ed75cb882f47f30c9370a685489c57ae773d/proxy/http2/Http2ConnectionState.cc#L181-L184


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@trafficserver.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [trafficserver] ywkaras commented on issue #8527: Au test post-early-return fails sporadically for HTTP/2 client

Posted by GitBox <gi...@apache.org>.
ywkaras commented on issue #8527:
URL: https://github.com/apache/trafficserver/issues/8527#issuecomment-972242709


   The error output of the (verbose) failed curl command is:
   ```
   *   Trying 127.0.0.1:61311...
     % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                    Dload  Upload   Total   Spent    Left  Speed
     0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* Connected to 127.0.0.1 (127.0.0.1) port 61311 (#0)
   * ALPN, offering h2
   * ALPN, offering http/1.1
   * successfully set certificate verify locations:
   *  CAfile: /etc/pki/tls/certs/ca-bundle.crt
   *  CApath: none
   } [5 bytes data]
   * TLSv1.3 (OUT), TLS handshake, Client hello (1):
   } [512 bytes data]
   * TLSv1.3 (IN), TLS handshake, Server hello (2):
   { [122 bytes data]
   * TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
   { [15 bytes data]
   * TLSv1.3 (IN), TLS handshake, Certificate (11):
   { [873 bytes data]
   * TLSv1.3 (IN), TLS handshake, CERT verify (15):
   { [264 bytes data]
   * TLSv1.3 (IN), TLS handshake, Finished (20):
   { [52 bytes data]
   * TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
   } [1 bytes data]
   * TLSv1.3 (OUT), TLS handshake, Finished (20):
   } [52 bytes data]
   * SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
   * ALPN, server accepted to use h2
   * Server certificate:
   *  subject: C=IE; ST=Dublin; L=Dublin; O=example.com; OU=example.com; CN=example.com
   *  start date: Jan 26 14:56:08 2021 GMT
   *  expire date: Aug 21 14:56:08 2119 GMT
   *  issuer: C=IE; ST=Dublin; L=Dublin; O=example.com; OU=example.com; CN=example.com
   *  SSL certificate verify result: self signed certificate (18), continuing anyway.
   * Using HTTP2, server supports multiplexing
   * Connection state changed (HTTP/2 confirmed)
   * Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
   } [5 bytes data]
   * Using Stream ID: 1 (easy handle 0x1523ad0)
   } [5 bytes data]
   > POST /post-http2 HTTP/2
   > Host: 127.0.0.1:61311
   > user-agent: curl/7.79.0-DEV
   > accept: */*
   > content-length: 2310700
   > content-type: application/x-www-form-urlencoded
   > 
   { [5 bytes data]
   * TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
   { [265 bytes data]
   * TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
   { [265 bytes data]
   * old SSL session ID is stale, removing
   } [5 bytes data]
   < HTTP/2 420 
   < content-length: 0
   < date: Wed, 17 Nov 2021 20:19:03 GMT
   < age: 0
   < server: ATS/10.0.0
   * HTTP error before end of send, stop sending
   < 
   * HTTP/2 stream 0 was not closed cleanly: INTERNAL_ERROR (err 2)
   * stopped the pause stream!
    61 2256k    0     0   61 1391k      0  60.0M --:--:-- --:--:-- --:--:-- 61.7M
   * Connection #0 to host 127.0.0.1 left intact
   curl: (92) HTTP/2 stream 0 was not closed cleanly: INTERNAL_ERROR (err 2)
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@trafficserver.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org