From 2884d9b819a584d6dcc91247a768bdc59185caf9 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Fri, 10 Jun 2022 13:02:33 -0400 Subject: [PATCH] Work around ChannelzServicerTest Python 3.11 regressions for now - Skips five failing tests. Closes RHBZ#2095027. --- ...zServicerTest-python3.11-regressions.patch | 55 +++++++++++++++++++ grpc.spec | 11 ++++ 2 files changed, 66 insertions(+) create mode 100644 grpc-1.46.3-ChannelzServicerTest-python3.11-regressions.patch diff --git a/grpc-1.46.3-ChannelzServicerTest-python3.11-regressions.patch b/grpc-1.46.3-ChannelzServicerTest-python3.11-regressions.patch new file mode 100644 index 0000000..ac345b3 --- /dev/null +++ b/grpc-1.46.3-ChannelzServicerTest-python3.11-regressions.patch @@ -0,0 +1,55 @@ +From 280cab57a6810d0b564540737d248b1fc7226b58 Mon Sep 17 00:00:00 2001 +From: "Benjamin A. Beasley" +Date: Wed, 8 Jun 2022 21:07:38 -0400 +Subject: [PATCH] Skip failing ChannelzServicerTest tests on Python 3.11 + +--- + .../grpcio_tests/tests/channelz/_channelz_servicer_test.py | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/src/python/grpcio_tests/tests/channelz/_channelz_servicer_test.py b/src/python/grpcio_tests/tests/channelz/_channelz_servicer_test.py +index 565a79814c..07ee2c3500 100644 +--- a/src/python/grpcio_tests/tests/channelz/_channelz_servicer_test.py ++++ b/src/python/grpcio_tests/tests/channelz/_channelz_servicer_test.py +@@ -274,12 +274,14 @@ class ChannelzServicerTest(unittest.TestCase): + self.assertEqual(gtc_resp.channel[i].data.calls_failed, + gsc_resp.subchannel.data.calls_failed) + ++ @unittest.skipIf(sys.version_info >= (3, 11), "Fails on 3.11") + def test_server_basic(self): + self._pairs = _generate_channel_server_pairs(1) + resp = self._channelz_stub.GetServers( + channelz_pb2.GetServersRequest(start_server_id=0)) + self.assertEqual(len(resp.server), 1) + ++ @unittest.skipIf(sys.version_info >= (3, 11), "Fails on 3.11") + def test_get_one_server(self): + self._pairs = _generate_channel_server_pairs(1) + gss_resp = self._channelz_stub.GetServers( +@@ -291,6 +293,7 @@ class ChannelzServicerTest(unittest.TestCase): + self.assertEqual(gss_resp.server[0].ref.server_id, + gs_resp.server.ref.server_id) + ++ @unittest.skipIf(sys.version_info >= (3, 11), "Fails on 3.11") + def test_server_call(self): + self._pairs = _generate_channel_server_pairs(1) + k_success = 23 +@@ -394,6 +397,7 @@ class ChannelzServicerTest(unittest.TestCase): + self.assertEqual(gs_resp.socket.data.messages_received, + test_constants.STREAM_LENGTH) + ++ @unittest.skipIf(sys.version_info >= (3, 11), "Fails on 3.11") + def test_server_sockets(self): + self._pairs = _generate_channel_server_pairs(1) + self._send_successful_unary_unary(0) +@@ -412,6 +416,7 @@ class ChannelzServicerTest(unittest.TestCase): + # If the RPC call failed, it will raise a grpc.RpcError + # So, if there is no exception raised, considered pass + ++ @unittest.skipIf(sys.version_info >= (3, 11), "Fails on 3.11") + def test_server_listen_sockets(self): + self._pairs = _generate_channel_server_pairs(1) + +-- +2.36.1 + diff --git a/grpc.spec b/grpc.spec index e1b1842..3e1c334 100644 --- a/grpc.spec +++ b/grpc.spec @@ -329,6 +329,17 @@ Patch: %{forgeurl}/pull/29826.patch # attribute 'getargspec' # https://bugzilla.redhat.com/show_bug.cgi?id=2095027 Patch: %{forgeurl}/pull/29963.patch +# Skip failing ChannelzServicerTest tests on Python 3.11 +# +# Partially works around: +# +# grpc fails to build with Python 3.11: AttributeError: module 'inspect' has no +# attribute 'getargspec' +# https://bugzilla.redhat.com/show_bug.cgi?id=2095027 +# +# TODO: Attempt to reproduce this outside the RPM build environment and submit +# a useful/actionable upstream bug report. +Patch: grpc-1.46.3-ChannelzServicerTest-python3.11-regressions.patch Requires: grpc-data = %{version}-%{release}