Skip to content

Au test post-early-return fails sporadically for HTTP/2 client #8527

@ywkaras

Description

@ywkaras

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 (16 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: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 (59 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_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: 4547ed7

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.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions