| |
@@ -2,11 +2,19 @@
|
| |
# errors.
|
| |
%global cpp_std 17
|
| |
|
| |
+ # Bootstrapping breaks the circular dependency on python3dist(xds-protos),
|
| |
+ # which is packaged separately but ultimately generated from grpc sources using
|
| |
+ # the proto compilers in this package; the consequence is that we cannot build
|
| |
+ # the python3-grpcio-admin or python3-grpcio-csds, or the Python documentation,
|
| |
+ # until after bootstrapping.
|
| |
+ %bcond_with bootstrap
|
| |
+
|
| |
# However, gtest in Fedora uses the C++11 ABI, so we get linker errors building
|
| |
# the tests if we use C++17. We must therefore bundle a copy of gtest in the
|
| |
# source RPM rather than using the system copy. This is to be discouraged, but
|
| |
# there is no alternative in this case. It is not treated as a bundled library
|
| |
- # because it is used only at build time, and is not installed.
|
| |
+ # because it is used only at build time, and contributes nothing to the
|
| |
+ # installed files.
|
| |
%global gtest_version 1.11.0
|
| |
%bcond_with system_gtest
|
| |
|
| |
@@ -28,16 +36,16 @@
|
| |
%bcond_with python_gevent_tests
|
| |
|
| |
Name: grpc
|
| |
- Version: 1.37.1
|
| |
+ Version: 1.39.0
|
| |
Release: %autorelease
|
| |
Summary: RPC library and framework
|
| |
|
| |
# CMakeLists.txt: gRPC_CORE_SOVERSION
|
| |
- %global c_so_version 15
|
| |
+ %global c_so_version 18
|
| |
# CMakeLists.txt: gRPC_CPP_SOVERSION
|
| |
- %global cpp_so_version 1.37
|
| |
+ %global cpp_so_version 1.39
|
| |
# CMakeLists.txt: gRPC_CSHARP_SOVERSION
|
| |
- %global csharp_so_version 2.37
|
| |
+ %global csharp_so_version 2.39
|
| |
# See https://github.com/abseil/abseil-cpp/issues/950#issuecomment-843169602
|
| |
# regarding unusual SOVERSION style (not a single number).
|
| |
|
| |
@@ -157,6 +165,7 @@
|
| |
# grpcio_tests (src/python/grpcio_tests/setup.py) install_requires:
|
| |
# enum34>=1.0.4; python_version<'3.4'
|
| |
|
| |
+ # grpcio_csds (src/python/grpcio_csds/setup.py) install_requires:
|
| |
# grpcio_channelz (src/python/grpcio_channelz/setup.py) install_requires:
|
| |
# grpcio_health_checking (src/python/grpcio_health_checking/setup.py)
|
| |
# install_requires:
|
| |
@@ -174,9 +183,16 @@
|
| |
# grpcio_status (src/python/grpcio_status/setup.py) install_requires:
|
| |
BuildRequires: python3dist(googleapis-common-protos) >= 1.5.5
|
| |
|
| |
+ %if %{without bootstrap}
|
| |
+ # grpcio_csds (src/python/grpcio_csds/setup.py) install_requires
|
| |
+ BuildRequires: python3dist(xds-protos) >= 0.0.7
|
| |
+ %endif
|
| |
+
|
| |
# Several packages have dependencies on grpcio or grpcio_tools—and grpcio-tests
|
| |
# depends on all of the other Python packages—which are satisfied within this
|
| |
# package.
|
| |
+ #
|
| |
+ # Similarly, grpcio_admin depends on grpcio_channelz and grpcio_csds.
|
| |
|
| |
# grpcio_tests (src/python/grpcio_tests/setup.py) install_requires:
|
| |
BuildRequires: python3dist(coverage) >= 4.0
|
| |
@@ -213,11 +229,13 @@
|
| |
# Apply Fedora system crypto policies. Since this is Fedora-specific, the patch
|
| |
# is not suitable for upstream.
|
| |
# https://docs.fedoraproject.org/en-US/packaging-guidelines/CryptoPolicies/#_cc_applications
|
| |
- Patch0: %{name}-0001-enforce-system-crypto-policies.patch
|
| |
+ #
|
| |
+ # In fact, this may not be needed, since only testing code is patched.
|
| |
+ Patch0: %{name}-1.39.0-system-crypto-policies.patch
|
| |
# Build python3-grpcio_tools against system protobuf packages instead of
|
| |
# expecting a git submodule. Must also add requisite linker flags using
|
| |
# GRPC_PYTHON_LDFLAGS.
|
| |
- Patch1: %{name}-1.37.0-python-grpcio_tools-use-system-protobuf.patch
|
| |
+ Patch1: %{name}-1.39.0-python-grpcio_tools-use-system-protobuf.patch
|
| |
# Add an option GRPC_PYTHON_BUILD_SYSTEM_ABSL to go with the gRPC_ABSL_PROVIDER
|
| |
# option already provided upstream. See
|
| |
# https://github.com/grpc/grpc/issues/25559.
|
| |
@@ -239,9 +257,12 @@
|
| |
# Remove it. We still have to build the core tests and link a test library
|
| |
# (libgrpc++_test_config.so…)
|
| |
Patch6: %{name}-1.37.0-grpc_cli-do-not-link-gtest-gmock.patch
|
| |
- # In Python 3.10, “import importlib” does not implicitly import importlib.abc.
|
| |
- # See https://github.com/grpc/grpc/issues/26062.
|
| |
- Patch7: %{name}-1.37.0-importlib-abc-python3.10.patch
|
| |
+ # Fix confusion about path to python_wrapper.sh in httpcli/httpscli tests. I
|
| |
+ # suppose that the unpatched code must be correct for how upstream runs the
|
| |
+ # tests, somehow.
|
| |
+ Patch7: %{name}-1.39.0-python_wrapper-path.patch
|
| |
+ # Port Python 2 scripts used in core tests to Python 3
|
| |
+ Patch8: %{name}-1.39.0-python2-test-scripts.patch
|
| |
|
| |
Requires: %{name}-data = %{version}-%{release}
|
| |
|
| |
@@ -310,11 +331,15 @@
|
| |
|
| |
Obsoletes: python-grpcio-doc < 1.26.0-13
|
| |
Provides: python-grpcio-doc = %{version}-%{release}
|
| |
+ %if %{without bootstrap}
|
| |
+ Provides: python-grpcio-admin-doc = %{version}-%{release}
|
| |
+ Provides: python-grpcio-csds-doc = %{version}-%{release}
|
| |
Provides: python-grpcio-channelz-doc = %{version}-%{release}
|
| |
Provides: python-grpcio-health-checking-doc = %{version}-%{release}
|
| |
Provides: python-grpcio-reflection-doc = %{version}-%{release}
|
| |
Provides: python-grpcio-status-doc = %{version}-%{release}
|
| |
Provides: python-grpcio-testing-doc = %{version}-%{release}
|
| |
+ %endif
|
| |
|
| |
%description doc
|
| |
Documentation and examples for gRPC, including documentation for the following:
|
| |
@@ -330,6 +355,8 @@
|
| |
○ Internals
|
| |
• Python
|
| |
○ grpcio
|
| |
+ ○ grpcio_admin
|
| |
+ ○ grpcio_csds
|
| |
○ grpcio_channelz
|
| |
○ grpcio_health_checking
|
| |
○ grpcio_reflection
|
| |
@@ -424,12 +451,69 @@
|
| |
Package for gRPC Python tools.
|
| |
|
| |
|
| |
+ %if %{without bootstrap}
|
| |
+ %package -n python3-grpcio-admin
|
| |
+ Summary: A collection of admin services
|
| |
+ License: ASL 2.0
|
| |
+ BuildArch: noarch
|
| |
+
|
| |
+ %description -n python3-grpcio-admin
|
| |
+ gRPC Python Admin Interface Package
|
| |
+ ===================================
|
| |
+
|
| |
+ Debugging gRPC library can be a complex task. There are many configurations and
|
| |
+ internal states, which will affect the behavior of the library. This Python
|
| |
+ package will be the collection of admin services that are exposing debug
|
| |
+ information. Currently, it includes:
|
| |
+
|
| |
+ * Channel tracing metrics (grpcio-channelz)
|
| |
+ * Client Status Discovery Service (grpcio-csds)
|
| |
+
|
| |
+ Here is a snippet to create an admin server on "localhost:50051":
|
| |
+
|
| |
+ server = grpc.server(ThreadPoolExecutor())
|
| |
+ port = server.add_insecure_port('localhost:50051')
|
| |
+ grpc_admin.add_admin_servicers(self._server)
|
| |
+ server.start()
|
| |
+
|
| |
+ Welcome to explore the admin services with CLI tool "grpcdebug":
|
| |
+ https://github.com/grpc-ecosystem/grpcdebug.
|
| |
+
|
| |
+ For any issues or suggestions, please send to
|
| |
+ https://github.com/grpc/grpc/issues.
|
| |
+ %endif
|
| |
+
|
| |
+
|
| |
+ %if %{without bootstrap}
|
| |
+ %package -n python3-grpcio-csds
|
| |
+ Summary: xDS configuration dump library
|
| |
+ License: ASL 2.0
|
| |
+ BuildArch: noarch
|
| |
+
|
| |
+ %description -n python3-grpcio-csds
|
| |
+ gRPC Python Client Status Discovery Service package
|
| |
+ ===================================================
|
| |
+
|
| |
+ CSDS is part of the Envoy xDS protocol:
|
| |
+ https://www.envoyproxy.io/docs/envoy/latest/api-v3/service/status/v3/csds.proto.
|
| |
+ It allows the gRPC application to programmatically expose the received traffic
|
| |
+ configuration (xDS resources). Welcome to explore with CLI tool "grpcdebug":
|
| |
+ https://github.com/grpc-ecosystem/grpcdebug.
|
| |
+
|
| |
+ For any issues or suggestions, please send to
|
| |
+ https://github.com/grpc/grpc/issues.
|
| |
+ %endif
|
| |
+
|
| |
+
|
| |
%package -n python3-grpcio-channelz
|
| |
Summary: Channel Level Live Debug Information Service for gRPC
|
| |
License: ASL 2.0
|
| |
BuildArch: noarch
|
| |
|
| |
%description -n python3-grpcio-channelz
|
| |
+ gRPC Python Channelz package
|
| |
+ ============================
|
| |
+
|
| |
Channelz is a live debug tool in gRPC Python.
|
| |
|
| |
|
| |
@@ -439,6 +523,9 @@
|
| |
BuildArch: noarch
|
| |
|
| |
%description -n python3-grpcio-health-checking
|
| |
+ gRPC Python Health Checking
|
| |
+ ===========================
|
| |
+
|
| |
Reference package for GRPC Python health checking.
|
| |
|
| |
|
| |
@@ -448,6 +535,9 @@
|
| |
BuildArch: noarch
|
| |
|
| |
%description -n python3-grpcio-reflection
|
| |
+ gRPC Python Reflection package
|
| |
+ ==============================
|
| |
+
|
| |
Reference package for reflection in GRPC Python.
|
| |
|
| |
|
| |
@@ -457,6 +547,9 @@
|
| |
BuildArch: noarch
|
| |
|
| |
%description -n python3-grpcio-status
|
| |
+ gRPC Python Status Proto
|
| |
+ ===========================
|
| |
+
|
| |
Reference package for GRPC Python status proto mapping.
|
| |
|
| |
|
| |
@@ -466,12 +559,16 @@
|
| |
BuildArch: noarch
|
| |
|
| |
%description -n python3-grpcio-testing
|
| |
+ gRPC Python Testing Package
|
| |
+ ===========================
|
| |
+
|
| |
Testing utilities for gRPC Python.
|
| |
|
| |
|
| |
%prep
|
| |
%autosetup -p1
|
| |
|
| |
+ echo '===== Preparing gtest/gmock =====' 2>&1
|
| |
%if %{without system_gtest}
|
| |
# Copy in the needed gtest/gmock implementations.
|
| |
%setup -q -T -D -b 1
|
| |
@@ -499,12 +596,14 @@
|
| |
'\1\2\n\1gtest\n\1gmock/' CMakeLists.txt
|
| |
%endif
|
| |
|
| |
+ echo '===== Removing bundled wyhash =====' 2>&1
|
| |
# Remove bundled wyhash (via upb); to avoid patching the build system, simply
|
| |
# use a symlink to find the system copy. This is sufficient since it is a
|
| |
# header-only library.
|
| |
rm -rvf third_party/upb/third_party/wyhash
|
| |
ln -s %{_includedir}/wyhash_final1/ third_party/upb/third_party/wyhash
|
| |
|
| |
+ echo '===== Removing bundled xxhash =====' 2>&1
|
| |
# Remove bundled xxhash
|
| |
rm -rvf third_party/xxhash
|
| |
# Since grpc sets XXH_INCLUDE_ALL wherever it uses xxhash, it is using xxhash
|
| |
@@ -513,14 +612,17 @@
|
| |
# found instead, and there are no linker flags to add. See also
|
| |
# https://github.com/grpc/grpc/issues/25945.
|
| |
|
| |
+ echo '===== Fixing permissions =====' 2>&1
|
| |
# Fix some of the weirdest accidentally-executable files
|
| |
find . -type f -name '*.md' -perm /0111 -execdir chmod -v a-x '{}' '+'
|
| |
|
| |
+ echo '===== Loosening version specifications =====' 2>&1
|
| |
# Allow building Python documentation with a newer Sphinx; the upstream version
|
| |
# requirement is needlessly strict. (It is fine for upstream’s own purposes, as
|
| |
# they are happy to build documentation with a pinned old version.)
|
| |
sed -r -i "s/('Sphinx)~=.*'/\1'/" setup.py
|
| |
|
| |
+ echo '===== Removing selected unused sources =====' 2>&1
|
| |
# Remove unused sources that have licenses not in the License field, to ensure
|
| |
# they are not accidentally used in the build. See the comment above the base
|
| |
# package License field for more details.
|
| |
@@ -549,6 +651,7 @@
|
| |
# to do that.
|
| |
find . -type f -name .gitignore -print -delete
|
| |
|
| |
+ echo '===== Fixing shebangs =====' 2>&1
|
| |
# Find executables with /usr/bin/env shebangs in the examples, and fix them.
|
| |
find examples -type f -perm /0111 |
|
| |
while read -r fn
|
| |
@@ -560,12 +663,14 @@
|
| |
fi
|
| |
done
|
| |
|
| |
+ echo '===== Fixing line endings =====' 2>&1
|
| |
# Fix some CRNL line endings:
|
| |
dos2unix \
|
| |
examples/cpp/helloworld/CMakeLists.txt \
|
| |
examples/cpp/helloworld/cmake_externalproject/CMakeLists.txt
|
| |
# We leave those under examples/csharp alone.
|
| |
|
| |
+ echo '===== Fixing hard-coded C++ standard =====' 2>&1
|
| |
# We need to adjust the C++ standard to avoid abseil-related linker errors. For
|
| |
# the main C++ build, we can use CMAKE_CXX_STANDARD. For extensions, examples,
|
| |
# etc., we must patch.
|
| |
@@ -576,23 +681,27 @@
|
| |
tools/run_tests/artifacts/artifact_targets.py \
|
| |
tools/distrib/python/grpcio_tools/setup.py
|
| |
|
| |
+ echo '===== Fixing .pc install path =====' 2>&1
|
| |
# Fix the install path for .pc files
|
| |
# https://github.com/grpc/grpc/issues/25635
|
| |
sed -r -i 's|lib(/pkgconfig)|\${gRPC_INSTALL_LIBDIR}\1|' CMakeLists.txt
|
| |
|
| |
+ echo '===== Patching to skip certain broken tests =====' 2>&1
|
| |
%if %{without unexplained_failing_python_lite_tests}
|
| |
+ # Confirmed in 1.39.0 2021-07-29
|
| |
# TODO figure out how to report this upstream in a useful/actionable way
|
| |
- sed -r -i "s/^([[:blank:]]*)(def \
|
| |
- test_immediately_connectable_channel_connectivity)\\b/\
|
| |
+ sed -r -i "s/^([[:blank:]]*)(def test_deallocated_server_stops)\\b/\
|
| |
\\1@unittest.skip('May hang unexplainedly')\\n\\1\\2/" \
|
| |
- 'src/python/grpcio_tests/tests/unit/_channel_connectivity_test.py'
|
| |
+ 'src/python/grpcio_tests/tests/unit/_server_shutdown_test.py'
|
| |
|
| |
%ifarch %{ix86} %{arm32}
|
| |
+ # Confirmed in 1.39.0 2021-07-29
|
| |
# TODO figure out how to report this upstream in a useful/actionable way
|
| |
sed -r -i "s/^([[:blank:]]*)(def test_concurrent_stream_stream)\\b/\
|
| |
\\1@unittest.skip('May hang unexplainedly')\\n\\1\\2/" \
|
| |
'src/python/grpcio_tests/tests/testing/_client_test.py'
|
| |
|
| |
+ # Confirmed in 1.39.0 2021-07-29
|
| |
# These tests fail with:
|
| |
# OverflowError: Python int too large to convert to C ssize_t
|
| |
# TODO figure out how to report this upstream in a useful/actionable way
|
| |
@@ -603,39 +712,13 @@
|
| |
'src/python/grpcio_tests/tests/unit/_session_cache_test.py'
|
| |
%endif
|
| |
|
| |
- %ifarch s390x
|
| |
- # Unexplained segmentation fault
|
| |
- # TODO figure out how to report this upstream in a useful/actionable way
|
| |
- sed -r -i "s/^([[:blank:]]*)(def test_start_xds_server)\\b/\
|
| |
- \\1@unittest.skip('Unexplained segmentation fault')\\n\\1\\2/" \
|
| |
- 'src/python/grpcio_tests/tests/unit/_xds_credentials_test.py'
|
| |
- %endif
|
| |
-
|
| |
- %if 0%{?fedora} > 34 || 0%{?rhel} > 8
|
| |
- # Python 3.10 failures:
|
| |
-
|
| |
- # AssertionError: 'StatusCode.NOT_FOUND' not found in '<_InactiveRpcError of
|
| |
- # RPC that terminated with:\n\tstatus = NOT_FOUND\n\tdetails = "Failed to get
|
| |
- # the channel, please ensure your channel_id==10000 is
|
| |
- # valid"\n\tdebug_error_string =
|
| |
- # "{"created":"@1619130545.513500675","description":"Error received from peer
|
| |
- # ipv6:[::1]:35867","file":"src/core/lib/surface/call.cc","file_line":1067,"grpc_message":"Failed
|
| |
- # to get the channel, please ensure your channel_id==10000 is
|
| |
- # valid","grpc_status":5}"\n>'
|
| |
- #
|
| |
- # AttributeError: 'NoneType' object has no attribute 'IsInitialized'
|
| |
- sed -r -i "s/^([[:blank:]]*)(def test_invalid_query_get_\
|
| |
- (channel|server(_sockets)?|socket|subchannel))\\b/\
|
| |
- \\1@unittest.skip('Unexplained failure')\\n\\1\\2/" \
|
| |
- 'src/python/grpcio_tests/tests/channelz/_channelz_servicer_test.py'
|
| |
- %endif
|
| |
-
|
| |
%endif
|
| |
|
| |
|
| |
%build
|
| |
# ~~~~ C (core) and C++ (cpp) ~~~~
|
| |
|
| |
+ echo '===== Building C (core) and C++ components =====' 2>&1
|
| |
# We could use either make or ninja as the backend; ninja is faster and has no
|
| |
# disadvantages (except a small additional BR, given we already need Python)
|
| |
#
|
| |
@@ -672,8 +755,13 @@
|
| |
-GNinja
|
| |
%cmake_build
|
| |
|
| |
+ echo '===== Building C (core) and C++ documentation =====' 2>&1
|
| |
+ # Doxygen (reference: C/core, C++, objc)
|
| |
+ ./tools/doxygen/run_doxygen.sh
|
| |
+
|
| |
# ~~~~ Python ~~~~
|
| |
|
| |
+ echo '===== Building Python grpcio package =====' 2>&1
|
| |
# Since we will need all of the Python packages for the documentation build,
|
| |
# and there are some other interdependencies (e.g., many have setup_requires:
|
| |
# grpcio-tools), we do a temporary install of the built packages into a local
|
| |
@@ -711,6 +799,7 @@
|
| |
-O1 --skip-build --root "${PYROOT}"
|
| |
|
| |
# ~~ grpcio-tools ~~
|
| |
+ echo '===== Building Python grpcio_tools package =====' 2>&1
|
| |
pushd "tools/distrib/python/grpcio_tools/" >/dev/null
|
| |
# When copying more things in here, make sure the subpackage License field
|
| |
# stays correct. We need copies, not symlinks, so that the “graft” in
|
| |
@@ -734,13 +823,17 @@
|
| |
-O1 --skip-build --root "${PYROOT}"
|
| |
popd >/dev/null
|
| |
|
| |
- # ~~ pure-python modules grpcio-* ~~
|
| |
- for suffix in channelz health_checking reflection status testing tests
|
| |
+ echo '===== Building pure-Python packages =====' 1>&2
|
| |
+ for suffix in channelz %{?!with_bootstrap:csds admin} health_checking \
|
| |
+ reflection status testing tests
|
| |
do
|
| |
echo "----> grpcio_${suffix} <----" 1>&2
|
| |
pushd "src/python/grpcio_${suffix}/" >/dev/null
|
| |
- %{__python3} %{py_setup} %{?py_setup_args} preprocess
|
| |
- if [ "${suffix}" != 'testing' ]
|
| |
+ if ! echo "${suffix}" | grep -E "^(admin|csds)$" >/dev/null
|
| |
+ then
|
| |
+ %{__python3} %{py_setup} %{?py_setup_args} preprocess
|
| |
+ fi
|
| |
+ if ! echo "${suffix}" | grep -E "^(admin|csds|testing)$" >/dev/null
|
| |
then
|
| |
%{__python3} %{py_setup} %{?py_setup_args} build_package_protos
|
| |
fi
|
| |
@@ -750,12 +843,12 @@
|
| |
popd >/dev/null
|
| |
done
|
| |
|
| |
- # ~~ documentation ~~
|
| |
- # Doxygen (reference: C/core, C++, objc)
|
| |
- ./tools/doxygen/run_doxygen.sh
|
| |
+ echo '===== Building pure-Python documentation =====' 1>&2
|
| |
+ %if %{without bootstrap}
|
| |
# Sphinx (Python)
|
| |
%{__python3} %{py_setup} %{?py_setup_args} doc
|
| |
rm -vrf doc/build/.buildinfo doc/build/.doctrees
|
| |
+ %endif
|
| |
|
| |
|
| |
%install
|
| |
@@ -808,7 +901,8 @@
|
| |
popd >/dev/null
|
| |
|
| |
# ~~ pure-python modules grpcio-* ~~
|
| |
- for suffix in channelz health_checking reflection status testing
|
| |
+ for suffix in channelz %{?!with_bootstrap:csds admin} health_checking \
|
| |
+ reflection status testing
|
| |
do
|
| |
pushd "src/python/grpcio_${suffix}/" >/dev/null
|
| |
%py3_install
|
| |
@@ -842,8 +936,10 @@
|
| |
|
| |
install -D -t '%{buildroot}%{_pkgdocdir}' -m 0644 -p AUTHORS *.md
|
| |
cp -rp doc/ref examples '%{buildroot}%{_pkgdocdir}'
|
| |
+ %if %{without bootstrap}
|
| |
install -d '%{buildroot}%{_pkgdocdir}/python'
|
| |
cp -rp doc/build '%{buildroot}%{_pkgdocdir}/python/html'
|
| |
+ %endif
|
| |
|
| |
|
| |
%check
|
| |
@@ -878,11 +974,24 @@
|
| |
|
| |
# Bad assumption about which directory the tests are running in:
|
| |
#
|
| |
- # E0413 22:43:56.610039235 19861 subprocess_posix.cc:61]
|
| |
- # execv 'x86_64-redhat-linux-gnu/../../test/core/http/python_wrapper.sh'
|
| |
+ # E0802 01:16:33.084040928 3911182 subprocess_posix.cc:61]
|
| |
+ # execv 'redhat-linux-build/../../test/core/http/python_wrapper.sh'
|
| |
# failed: No such file or directory
|
| |
- # E0413 22:44:02.613251909 19856 httpscli_test.cc:55]
|
| |
+ # E0802 01:16:39.086691950 3911178 httpcli_test.cc:52]
|
| |
# assertion failed: response->status == 200
|
| |
+ # *** SIGABRT received at time=16278 66999 on cpu 1 ***
|
| |
+
|
| |
+ # While we have fixed a couple of problems with these tests, including porting
|
| |
+ # the test server to Python 3, success still eludes us.
|
| |
+ #
|
| |
+ # 127.0.0.1 - - [02/Aug/2021 20:34:47] "GET /get HTTP/1.0" 200 -
|
| |
+ # E0802 20:34:48.343858742 1765052 httpcli_test.cc:52]
|
| |
+ # assertion failed: response->status == 200
|
| |
+ # *** SIGABRT received at time=1627936488 on cpu 2 ***
|
| |
+ # PC: @ 0x7fe44b4f2783 (unknown) pthread_kill@@GLIBC_2.34
|
| |
+ # @ ... and at least 1 more frames
|
| |
+ #
|
| |
+ # Confirmed in 1.39.0 2021-08-02
|
| |
httpcli
|
| |
httpscli
|
| |
|
| |
@@ -907,6 +1016,8 @@
|
| |
# This server is not currently running.
|
| |
#
|
| |
# To start it, run tools/run_tests/start_port_server.py
|
| |
+ #
|
| |
+ # CHECKME
|
| |
admin_services_end2end
|
| |
alts_concurrent_connectivity
|
| |
async_end2end
|
| |
@@ -943,6 +1054,8 @@
|
| |
# *** SIGSEGV received at time=1618368497 ***
|
| |
# PC: @ 0x7fc56bfc1d3a (unknown) __strlen_sse2
|
| |
# @ ... and at least 1 more frames
|
| |
+ #
|
| |
+ # CHECKME
|
| |
evaluate_args
|
| |
# Unexplained:
|
| |
#
|
| |
@@ -951,6 +1064,8 @@
|
| |
# Value of: stack_trace->find("GetCurrentStackTrace") != std::string::npos
|
| |
# Actual: false
|
| |
# Expected: true
|
| |
+ #
|
| |
+ # CHECKME
|
| |
examine_stack
|
| |
# Unexplained:
|
| |
#
|
| |
@@ -960,6 +1075,8 @@
|
| |
# Actual: false
|
| |
# Expected: true
|
| |
# [ FAILED ] StackTracerTest.Basic (3 ms)
|
| |
+ #
|
| |
+ # CHECKME
|
| |
stack_tracer
|
| |
# Unexplained:
|
| |
#
|
| |
@@ -968,6 +1085,8 @@
|
| |
# [{"access_token":"ya29.AHES6ZRN3-HlhAPya30GnW_bHSb_", "expires_in":3599,
|
| |
# "token_type":"Bearer"}].
|
| |
# *** SIGSEGV received at time=1618368426 ***
|
| |
+ #
|
| |
+ # CHECKME
|
| |
test_core_security_credentials
|
| |
|
| |
%ifarch s390x
|
| |
@@ -985,6 +1104,8 @@
|
| |
# Which is: "::"
|
| |
# "::1"
|
| |
# [ FAILED ] AddressSortingTest.TestSorterKnowsIpv6LoopbackIsAvailable (0 ms)
|
| |
+ #
|
| |
+ # CHECKME
|
| |
address_sorting
|
| |
|
| |
# Unexplained:
|
| |
@@ -1004,16 +1125,22 @@
|
| |
# @ 0x2aa3ed8155e (unknown) main
|
| |
# @ 0x3ff8372bdf4 (unknown) __libc_start_main
|
| |
# @ 0x2aa3ed82724 (unknown) (unknown)
|
| |
+ #
|
| |
+ # CHECKME
|
| |
alts_crypt
|
| |
|
| |
# Unexplained:
|
| |
#
|
| |
# (aborted without output)
|
| |
+ #
|
| |
+ # CHECKME
|
| |
alts_crypter
|
| |
|
| |
# Unexplained:
|
| |
#
|
| |
# (aborted without output)
|
| |
+ #
|
| |
+ # CHECKME
|
| |
alts_frame_protector
|
| |
|
| |
# Unexplained:
|
| |
@@ -1035,6 +1162,8 @@
|
| |
# @ 0x2aa11481b08 (unknown) main
|
| |
# @ 0x3ff939abdf4 (unknown) __libc_start_main
|
| |
# @ 0x2aa11481bc4 (unknown) (unknown)
|
| |
+ #
|
| |
+ # CHECKME
|
| |
alts_grpc_record_protocol
|
| |
|
| |
# Unexplained:
|
| |
@@ -1067,11 +1196,15 @@
|
| |
# @ 0x2aa3760281e (unknown) main
|
| |
# @ 0x3ff98aabdf4 (unknown) __libc_start_main
|
| |
# @ 0x2aa376028b4 (unknown) (unknown)
|
| |
+ #
|
| |
+ # CHECKME
|
| |
alts_handshaker_client
|
| |
|
| |
# Unexplained:
|
| |
#
|
| |
# (aborted without output)
|
| |
+ #
|
| |
+ # CHECKME
|
| |
alts_iovec_record_protocol
|
| |
|
| |
# Unexplained:
|
| |
@@ -1105,6 +1238,8 @@
|
| |
# fails to parse ALTS context.
|
| |
# E0506 13:27:12.407261763 2895549 alts_util.cc:43]
|
| |
# contains zero or more than one ALTS context.
|
| |
+ #
|
| |
+ # CHECKME
|
| |
alts_util
|
| |
|
| |
# Unexplained:
|
| |
@@ -1128,6 +1263,8 @@
|
| |
# @ 0x2aa112019d6 (unknown) main
|
| |
# @ 0x3ffae52bdf4 (unknown) __libc_start_main
|
| |
# @ 0x2aa11201a84 (unknown) (unknown)
|
| |
+ #
|
| |
+ # CHECKME
|
| |
alts_zero_copy_grpc_protector
|
| |
|
| |
# Unexplained:
|
| |
@@ -1148,6 +1285,8 @@
|
| |
# @ 0x2aa1e9833ce (unknown) main
|
| |
# @ 0x3ffa05abdf4 (unknown) __libc_start_main
|
| |
# @ 0x2aa1e983ac4 (unknown) (unknown)
|
| |
+ #
|
| |
+ # CHECKME
|
| |
goaway_server
|
| |
|
| |
# Unexplained:
|
| |
@@ -1163,6 +1302,8 @@
|
| |
# @ 0x2aa27600a24 (unknown) main
|
| |
# @ 0x3ffa332bdf4 (unknown) __libc_start_main
|
| |
# @ 0x2aa27600aa4 (unknown) (unknown)
|
| |
+ #
|
| |
+ # CHECKME
|
| |
murmur_hash
|
| |
|
| |
# Unexplained:
|
| |
@@ -1186,9 +1327,38 @@
|
| |
# @ 0x40000028c8 (unknown) main
|
| |
# @ 0x4001f3edf4 (unknown) __libc_start_main
|
| |
# @ 0x40000029f4 (unknown) (unknown)
|
| |
+ #
|
| |
+ # CHECKME
|
| |
tcp_posix
|
| |
%endif
|
| |
|
| |
+ %ifarch x86_64 %{ix86} %{arm64}
|
| |
+ # Unexplained hang.
|
| |
+ #
|
| |
+ # This may be flaky and sometimes succeed; this is known to be the case on
|
| |
+ # x86_64.
|
| |
+ #
|
| |
+ # mutex: 256 512 1024 2048 4096 8192 16384 32768 65536 131072 262144 done 1.372237159 s
|
| |
+ # mutex try: 256 512 1024 2048 4096 8192 16384 32768 65536 131072 done 1.285748396 s
|
| |
+ # cv: 256 512 1024 2048 done 1.134636147 s
|
| |
+ # timedcv: 256 512 1024 done 1.925035489 s
|
| |
+ # queue: 256timeout: sending signal TERM to command 'redhat-linux-build/sync_test'
|
| |
+ # *** SIGTERM received at time=1627413101 on cpu 0 ***
|
| |
+ # PC: @ 0xffff8299f8a8 (unknown) syscall
|
| |
+ # @ 0xffff82896850 1732032480 (unknown)
|
| |
+ # @ 0xffff82d7b7bc 112 (unknown)
|
| |
+ # @ 0xffff8237ac44 48 AbslInternalPerThreadSemWait_lts_20210324
|
| |
+ # @ 0xffff8237e5c8 144 absl::lts_20210324::CondVar::WaitCommon()
|
| |
+ # @ 0xffff82ce82c4 64 gpr_cv_wait
|
| |
+ # @ 0xaaaae0ae2118 288 test()
|
| |
+ # @ 0xaaaae0ae1560 64 main
|
| |
+ # @ 0xffff828e10c4 272 __libc_start_call_main
|
| |
+ # @ 0xffff828e1198 (unknown) __libc_start_main@GLIBC_2.17
|
| |
+ #
|
| |
+ # Confirmed in 1.39.0 2021-08-01
|
| |
+ sync
|
| |
+ %endif
|
| |
+
|
| |
%ifarch %{ix86}
|
| |
# Unexplained:
|
| |
#
|
| |
@@ -1200,6 +1370,8 @@
|
| |
# expected
|
| |
# Which is: 4
|
| |
# [ FAILED ] ChannelTracerTest.TestMultipleEviction (2 ms)
|
| |
+ #
|
| |
+ # CHECKME
|
| |
channel_trace
|
| |
%endif
|
| |
|
| |
@@ -1211,6 +1383,8 @@
|
| |
# *** SIGABRT received at time=1619103150 ***
|
| |
# PC: @ 0xf7fa3559 (unknown) __kernel_vsyscall
|
| |
# @ ... and at least 1 more frames
|
| |
+ #
|
| |
+ # CHECKME
|
| |
certificate_provider_store
|
| |
|
| |
# Unexplained:
|
| |
@@ -1222,6 +1396,8 @@
|
| |
# @ 0xb67e817c (unknown) (unknown)
|
| |
# @ 0xb682d6b0 (unknown) (unknown)
|
| |
# @ 0xb682c114 (unknown) raise
|
| |
+ #
|
| |
+ # CHECKME
|
| |
grpc_tls_certificate_distributor
|
| |
|
| |
# Unexplained:
|
| |
@@ -1231,6 +1407,8 @@
|
| |
# Expected: (busy) <= (total), actual: 9025859384538762329 vs
|
| |
# 3751280126112716351
|
| |
# [ FAILED ] GetCpuStatsTest.BusyNoLargerThanTotal (0 ms)
|
| |
+ #
|
| |
+ # CHECKME
|
| |
lb_get_cpu_stats
|
| |
%endif
|
| |
|
| |
@@ -1259,13 +1437,16 @@
|
| |
%{?with_python_gevent_tests:test_gevent} \
|
| |
test_py3_only
|
| |
do
|
| |
+ echo "==== $(date -u --iso-8601=ns): Python ${suite} ===="
|
| |
# See the implementation of the %%pytest macro, upon which our environment
|
| |
- # setup is based:
|
| |
+ # setup is based. We add a timeout that is rather long, as it must apply to
|
| |
+ # the entire test suite. (Patching in a per-test timeout would be harder.)
|
| |
env CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" \
|
| |
LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}" \
|
| |
PATH="%{buildroot}%{_bindir}:$PATH" \
|
| |
PYTHONPATH="${PYTHONPATH:-%{buildroot}%{python3_sitearch}:%{buildroot}%{python3_sitelib}}" \
|
| |
PYTHONDONTWRITEBYTECODE=1 \
|
| |
+ timeout -k 31m -v 30m \
|
| |
%{__python3} %{py_setup} %{?py_setup_args} "${suite}"
|
| |
done
|
| |
popd
|
| |
@@ -1368,11 +1549,25 @@
|
| |
%{python3_sitearch}/grpcio_tools-%{version}-py%{python3_version}.egg-info
|
| |
|
| |
|
| |
+ %if %{without bootstrap}
|
| |
+ %files -n python3-grpcio-admin
|
| |
+ %{python3_sitelib}/grpc_admin
|
| |
+ %{python3_sitelib}/grpcio_admin-%{version}-py%{python3_version}.egg-info
|
| |
+ %endif
|
| |
+
|
| |
+
|
| |
%files -n python3-grpcio-channelz
|
| |
%{python3_sitelib}/grpc_channelz
|
| |
%{python3_sitelib}/grpcio_channelz-%{version}-py%{python3_version}.egg-info
|
| |
|
| |
|
| |
+ %if %{without bootstrap}
|
| |
+ %files -n python3-grpcio-csds
|
| |
+ %{python3_sitelib}/grpc_csds
|
| |
+ %{python3_sitelib}/grpcio_csds-%{version}-py%{python3_version}.egg-info
|
| |
+ %endif
|
| |
+
|
| |
+
|
| |
%files -n python3-grpcio-health-checking
|
| |
%{python3_sitelib}/grpc_health
|
| |
%{python3_sitelib}/grpcio_health_checking-%{version}-py%{python3_version}.egg-info
|
| |
Branch for the 1.39.0 update. (Originally 1.38.0.)