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
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions