Public bug reported: I got an error in the test_distributed_port_binding_deleted_by_port_deletion test on my CI run [1]. Also I found the same failure in another CI run [2]
FAIL: neutron.tests.unit.plugins.ml2.test_db.Ml2DvrDBTestCase.test_distributed_port_binding_deleted_by_port_deletion tags: worker-0 ---------------------------------------------------------------------- stderr: {{{ /home/zuul/src/opendev.org/openstack/neutron/.tox/shared/lib/python3.10/site-packages/ovs/stream.py:794: DeprecationWarning: ssl.PROTOCOL_TLS is deprecated ctx = ssl.SSLContext(ssl.PROTOCOL_SSLv23) /home/zuul/src/opendev.org/openstack/neutron/.tox/shared/lib/python3.10/site-packages/ovs/stream.py:794: DeprecationWarning: ssl.PROTOCOL_TLS is deprecated ctx = ssl.SSLContext(ssl.PROTOCOL_SSLv23) }}} Traceback (most recent call last): File "/home/zuul/src/opendev.org/openstack/neutron/neutron/tests/base.py", line 182, in func return f(self, *args, **kwargs) File "/home/zuul/src/opendev.org/openstack/neutron/neutron/tests/unit/plugins/ml2/test_db.py", line 535, in test_distributed_port_binding_deleted_by_port_deletion self.assertEqual( File "/home/zuul/src/opendev.org/openstack/neutron/.tox/shared/lib/python3.10/site-packages/testtools/testcase.py", line 393, in assertEqual self.assertThat(observed, matcher, message) File "/home/zuul/src/opendev.org/openstack/neutron/.tox/shared/lib/python3.10/site-packages/testtools/testcase.py", line 480, in assertThat raise mismatch_error testtools.matchers._impl.MismatchError: [] != [<warnings.WarningMessage object at 0x7f65a6cdd3c0>]: Warnings: {message : DeprecationWarning('ssl.PROTOCOL_TLS is deprecated'), category : 'DeprecationWarning', filename : '/home/zuul/src/opendev.org/openstack/neutron/.tox/shared/lib/python3.10/site-packages/ovs/stream.py', lineno : 794, line : None} I have spent some time and seem to have found the reason for this behavior on python 3.10. First of all, since python3.10 we get a warning when using ssl.PROTOCOL_TLS [3]: [root@node0 neutron]# python Python 3.10.8+ (heads/3.10-dirty:ca3c480, Nov 30 2022, 12:16:40) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import ssl >>> ssl.SSLContext(ssl.PROTOCOL_SSLv23) <stdin>:1: DeprecationWarning: ssl.PROTOCOL_TLS is deprecated <ssl.SSLContext object at 0x7f98620223c0> >>> I also found that the `test_ssl_connection` test case affects catching warnings in the test_distributed_port_binding_deleted_by_port_deletion test case. I was then able to reproduce the issue like this: [root@node0 neutron]# cat run_list.txt neutron.tests.unit.agent.ovsdb.native.test_connection.ConfigureSslConnTestCase.test_ssl_connection neutron.tests.unit.plugins.ml2.test_db.Ml2DvrDBTestCase.test_distributed_port_binding_deleted_by_port_deletion [root@node0 neutron]# git diff diff --git a/neutron/tests/unit/plugins/ml2/test_db.py b/neutron/tests/unit/plugins/ml2/test_db.py index 578a01a..d837871 100644 --- a/neutron/tests/unit/plugins/ml2/test_db.py +++ b/neutron/tests/unit/plugins/ml2/test_db.py @@ -531,6 +531,8 @@ class Ml2DvrDBTestCase(testlib_api.SqlTestCase): router_id='router_id', status=constants.PORT_STATUS_DOWN).create() with warnings.catch_warnings(record=True) as warning_list: + import time + time.sleep(0.1) port.delete() self.assertEqual( [], warning_list, [root@node0 neutron]# source .tox/shared/bin/activate (shared) [root@node0 neutron]# stestr run --concurrency=1 --load-list ./run_list.txt ... neutron.tests.unit.plugins.ml2.test_db.Ml2DvrDBTestCase.test_distributed_port_binding_deleted_by_port_deletion -------------------------------------------------------------------------------------------------------------- Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "/root/github/neutron/neutron/tests/base.py", line 182, in func return f(self, *args, **kwargs) File "/root/github/neutron/neutron/tests/unit/plugins/ml2/test_db.py", line 537, in test_distributed_port_binding_deleted_by_port_deletion self.assertEqual( File "/root/github/neutron/.tox/shared/lib/python3.10/site-packages/testtools/testcase.py", line 393, in assertEqual self.assertThat(observed, matcher, message) File "/root/github/neutron/.tox/shared/lib/python3.10/site-packages/testtools/testcase.py", line 480, in assertThat raise mismatch_error testtools.matchers._impl.MismatchError: [] != [<warnings.WarningMessage object at 0x7f701cb5f640>]: Warnings: {message : DeprecationWarning('ssl.PROTOCOL_TLS is deprecated'), category : 'DeprecationWarning', filename : '/root/github/neutron/.tox/shared/lib/python3.10/site-packages/ovs/stream.py', lineno : 794, line : None} ====== Totals ====== Ran: 2 tests in 1.3571 sec. - Passed: 1 - Skipped: 0 - Expected Fail: 0 - Unexpected Success: 0 - Failed: 1 Sum of execute time for each test: 1.3053 sec. [1] https://zuul.opendev.org/t/openstack/build/8e0dd6e817394911aa0baffe07798b13 [2] https://zuul.opendev.org/t/openstack/build/9f7881818f7842b38d31ed44ffa8a4f3 [3] https://github.com/python/cpython/blob/3.10/Modules/_ssl.c#L3038 ** Affects: neutron Importance: Undecided Status: New -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to neutron. https://bugs.launchpad.net/bugs/1998343 Title: Unittest test_distributed_port_binding_deleted_by_port_deletion fails: DeprecationWarning('ssl.PROTOCOL_TLS is deprecated') Status in neutron: New Bug description: I got an error in the test_distributed_port_binding_deleted_by_port_deletion test on my CI run [1]. Also I found the same failure in another CI run [2] FAIL: neutron.tests.unit.plugins.ml2.test_db.Ml2DvrDBTestCase.test_distributed_port_binding_deleted_by_port_deletion tags: worker-0 ---------------------------------------------------------------------- stderr: {{{ /home/zuul/src/opendev.org/openstack/neutron/.tox/shared/lib/python3.10/site-packages/ovs/stream.py:794: DeprecationWarning: ssl.PROTOCOL_TLS is deprecated ctx = ssl.SSLContext(ssl.PROTOCOL_SSLv23) /home/zuul/src/opendev.org/openstack/neutron/.tox/shared/lib/python3.10/site-packages/ovs/stream.py:794: DeprecationWarning: ssl.PROTOCOL_TLS is deprecated ctx = ssl.SSLContext(ssl.PROTOCOL_SSLv23) }}} Traceback (most recent call last): File "/home/zuul/src/opendev.org/openstack/neutron/neutron/tests/base.py", line 182, in func return f(self, *args, **kwargs) File "/home/zuul/src/opendev.org/openstack/neutron/neutron/tests/unit/plugins/ml2/test_db.py", line 535, in test_distributed_port_binding_deleted_by_port_deletion self.assertEqual( File "/home/zuul/src/opendev.org/openstack/neutron/.tox/shared/lib/python3.10/site-packages/testtools/testcase.py", line 393, in assertEqual self.assertThat(observed, matcher, message) File "/home/zuul/src/opendev.org/openstack/neutron/.tox/shared/lib/python3.10/site-packages/testtools/testcase.py", line 480, in assertThat raise mismatch_error testtools.matchers._impl.MismatchError: [] != [<warnings.WarningMessage object at 0x7f65a6cdd3c0>]: Warnings: {message : DeprecationWarning('ssl.PROTOCOL_TLS is deprecated'), category : 'DeprecationWarning', filename : '/home/zuul/src/opendev.org/openstack/neutron/.tox/shared/lib/python3.10/site-packages/ovs/stream.py', lineno : 794, line : None} I have spent some time and seem to have found the reason for this behavior on python 3.10. First of all, since python3.10 we get a warning when using ssl.PROTOCOL_TLS [3]: [root@node0 neutron]# python Python 3.10.8+ (heads/3.10-dirty:ca3c480, Nov 30 2022, 12:16:40) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import ssl >>> ssl.SSLContext(ssl.PROTOCOL_SSLv23) <stdin>:1: DeprecationWarning: ssl.PROTOCOL_TLS is deprecated <ssl.SSLContext object at 0x7f98620223c0> >>> I also found that the `test_ssl_connection` test case affects catching warnings in the test_distributed_port_binding_deleted_by_port_deletion test case. I was then able to reproduce the issue like this: [root@node0 neutron]# cat run_list.txt neutron.tests.unit.agent.ovsdb.native.test_connection.ConfigureSslConnTestCase.test_ssl_connection neutron.tests.unit.plugins.ml2.test_db.Ml2DvrDBTestCase.test_distributed_port_binding_deleted_by_port_deletion [root@node0 neutron]# git diff diff --git a/neutron/tests/unit/plugins/ml2/test_db.py b/neutron/tests/unit/plugins/ml2/test_db.py index 578a01a..d837871 100644 --- a/neutron/tests/unit/plugins/ml2/test_db.py +++ b/neutron/tests/unit/plugins/ml2/test_db.py @@ -531,6 +531,8 @@ class Ml2DvrDBTestCase(testlib_api.SqlTestCase): router_id='router_id', status=constants.PORT_STATUS_DOWN).create() with warnings.catch_warnings(record=True) as warning_list: + import time + time.sleep(0.1) port.delete() self.assertEqual( [], warning_list, [root@node0 neutron]# source .tox/shared/bin/activate (shared) [root@node0 neutron]# stestr run --concurrency=1 --load-list ./run_list.txt ... neutron.tests.unit.plugins.ml2.test_db.Ml2DvrDBTestCase.test_distributed_port_binding_deleted_by_port_deletion -------------------------------------------------------------------------------------------------------------- Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "/root/github/neutron/neutron/tests/base.py", line 182, in func return f(self, *args, **kwargs) File "/root/github/neutron/neutron/tests/unit/plugins/ml2/test_db.py", line 537, in test_distributed_port_binding_deleted_by_port_deletion self.assertEqual( File "/root/github/neutron/.tox/shared/lib/python3.10/site-packages/testtools/testcase.py", line 393, in assertEqual self.assertThat(observed, matcher, message) File "/root/github/neutron/.tox/shared/lib/python3.10/site-packages/testtools/testcase.py", line 480, in assertThat raise mismatch_error testtools.matchers._impl.MismatchError: [] != [<warnings.WarningMessage object at 0x7f701cb5f640>]: Warnings: {message : DeprecationWarning('ssl.PROTOCOL_TLS is deprecated'), category : 'DeprecationWarning', filename : '/root/github/neutron/.tox/shared/lib/python3.10/site-packages/ovs/stream.py', lineno : 794, line : None} ====== Totals ====== Ran: 2 tests in 1.3571 sec. - Passed: 1 - Skipped: 0 - Expected Fail: 0 - Unexpected Success: 0 - Failed: 1 Sum of execute time for each test: 1.3053 sec. [1] https://zuul.opendev.org/t/openstack/build/8e0dd6e817394911aa0baffe07798b13 [2] https://zuul.opendev.org/t/openstack/build/9f7881818f7842b38d31ed44ffa8a4f3 [3] https://github.com/python/cpython/blob/3.10/Modules/_ssl.c#L3038 To manage notifications about this bug go to: https://bugs.launchpad.net/neutron/+bug/1998343/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp