scylladb / python-driver

ScyllaDB Python Driver, originally DataStax Python Driver for Apache Cassandra
https://python-driver.docs.scylladb.com
Apache License 2.0
75 stars 42 forks source link

test_libevreactor.py::LibevTimerTest::test_multi_timer_validation is failing on aarch64 #359

Open dkropachev opened 3 months ago

dkropachev commented 3 months ago
=================================== FAILURES ===================================
  __________________ LibevTimerTest.test_multi_timer_validation __________________

  self = <tests.unit.io.test_libevreactor.LibevTimerTest testMethod=test_multi_timer_validation>

      def test_multi_timer_validation(self):
          """
          Verify that timer timeouts are honored appropriately
          """
          # Tests timers submitted in order at various timeouts
  >       submit_and_wait_for_completion(self, self.create_timer, 0, 100, 1, 100)

  /project/tests/unit/io/utils.py:167: 
  _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
  /project/tests/unit/io/utils.py:134: in submit_and_wait_for_completion
      unit_test.assertAlmostEqual(callback.expected_wait, callback.get_wait_time(), delta=.15)
  E   AssertionError: 0.0 != 0.28005123138427734 within 0.15 delta (0.28005123138427734 difference)
  ------------------------------ Captured log call -------------------------------
  2024-08-05 16:55:46.618 DEBUG [libevreactor:266]: Connection 365473510496: '<MagicMock name='socket().getsockname()' id='365474419376'>' -> '('127.0.0.1', 9042)'
  2024-08-05 16:55:46.625 DEBUG [libevreactor:273]: Sending initial options message for new connection (365473510496) to 127.0.0.1:9042
  2024-08-05 16:55:46.626 DEBUG [libevreactor:86]: Starting libev event loop
  2024-08-05 16:55:48.109 DEBUG [libevreactor:286]: Closing connection (365473510496) to 127.0.0.1:9042
  2024-08-05 16:55:48.112 DEBUG [libevreactor:290]: Closed socket to 127.0.0.1:9042
  =============================== warnings summary ===============================
  ../venv/lib/python3.9/site-packages/twisted/internet/address.py:24
    /tmp/tmp.04enzn5DK1/venv/lib/python3.9/site-packages/twisted/internet/address.py:24: DeprecationWarning: The `hash` argument is deprecated in favor of `unsafe_hash` and will be removed in or after August 2025.
      @attr.s(hash=True, auto_attribs=True)

  ../venv/lib/python3.9/site-packages/twisted/internet/address.py:48
    /tmp/tmp.04enzn5DK1/venv/lib/python3.9/site-packages/twisted/internet/address.py:48: DeprecationWarning: The `hash` argument is deprecated in favor of `unsafe_hash` and will be removed in or after August 2025.
      @attr.s(hash=True, auto_attribs=True)

  ../venv/lib/python3.9/site-packages/twisted/internet/address.py:88
    /tmp/tmp.04enzn5DK1/venv/lib/python3.9/site-packages/twisted/internet/address.py:88: DeprecationWarning: The `hash` argument is deprecated in favor of `unsafe_hash` and will be removed in or after August 2025.
      @attr.s(hash=True, auto_attribs=True)

  ../venv/lib/python3.9/site-packages/twisted/internet/address.py:105
    /tmp/tmp.04enzn5DK1/venv/lib/python3.9/site-packages/twisted/internet/address.py:105: DeprecationWarning: The `hash` argument is deprecated in favor of `unsafe_hash` and will be removed in or after August 2025.
      @attr.s(hash=False, repr=False, eq=False, auto_attribs=True)

  ../venv/lib/python3.9/site-packages/eventlet/green/OpenSSL/crypto.py:1
    /tmp/tmp.04enzn5DK1/venv/lib/python3.9/site-packages/eventlet/green/OpenSSL/crypto.py:1: DeprecationWarning: X509Extension support in pyOpenSSL is deprecated. You should use the APIs in cryptography.
      from OpenSSL.crypto import *

  ../venv/lib/python3.9/site-packages/eventlet/green/OpenSSL/crypto.py:1
  ../venv/lib/python3.9/site-packages/eventlet/green/OpenSSL/crypto.py:1
  ../venv/lib/python3.9/site-packages/eventlet/green/OpenSSL/crypto.py:1
    /tmp/tmp.04enzn5DK1/venv/lib/python3.9/site-packages/eventlet/green/OpenSSL/crypto.py:1: DeprecationWarning: CSR support in pyOpenSSL is deprecated. You should use the APIs in cryptography.
      from OpenSSL.crypto import *

  ../venv/lib/python3.9/site-packages/eventlet/green/OpenSSL/crypto.py:1
  ../venv/lib/python3.9/site-packages/eventlet/green/OpenSSL/crypto.py:1
  ../venv/lib/python3.9/site-packages/eventlet/green/OpenSSL/crypto.py:1
  ../venv/lib/python3.9/site-packages/eventlet/green/OpenSSL/crypto.py:1
    /tmp/tmp.04enzn5DK1/venv/lib/python3.9/site-packages/eventlet/green/OpenSSL/crypto.py:1: DeprecationWarning: CRL support in pyOpenSSL is deprecated. You should use the APIs in cryptography.
      from OpenSSL.crypto import *

  ../venv/lib/python3.9/site-packages/eventlet/green/OpenSSL/crypto.py:1
    /tmp/tmp.04enzn5DK1/venv/lib/python3.9/site-packages/eventlet/green/OpenSSL/crypto.py:1: DeprecationWarning: sign() is deprecated. Use the equivalent APIs in cryptography.
      from OpenSSL.crypto import *

  ../venv/lib/python3.9/site-packages/eventlet/green/OpenSSL/crypto.py:1
    /tmp/tmp.04enzn5DK1/venv/lib/python3.9/site-packages/eventlet/green/OpenSSL/crypto.py:1: DeprecationWarning: verify() is deprecated. Use the equivalent APIs in cryptography.
      from OpenSSL.crypto import *

  ../venv/lib/python3.9/site-packages/Cython/Compiler/Main.py:381
    /tmp/tmp.04enzn5DK1/venv/lib/python3.9/site-packages/Cython/Compiler/Main.py:381: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: /project/tests/unit/cython/bytesio_testhelper.pyx
      tree = Parsing.p_module(s, pxd, full_module_name)

  ../venv/lib/python3.9/site-packages/Cython/Compiler/Main.py:381
    /tmp/tmp.04enzn5DK1/venv/lib/python3.9/site-packages/Cython/Compiler/Main.py:381: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: /project/tests/unit/cython/types_testhelper.pyx
      tree = Parsing.p_module(s, pxd, full_module_name)

  ../venv/lib/python3.9/site-packages/Cython/Compiler/Main.py:381
    /tmp/tmp.04enzn5DK1/venv/lib/python3.9/site-packages/Cython/Compiler/Main.py:381: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: /project/tests/unit/cython/utils_testhelper.pyx
      tree = Parsing.p_module(s, pxd, full_module_name)

  ../venv/lib/python3.9/site-packages/asynctest/mock.py:434
    /tmp/tmp.04enzn5DK1/venv/lib/python3.9/site-packages/asynctest/mock.py:434: DeprecationWarning: "@coroutine" decorator is deprecated since Python 3.8, use "async def" instead
      def wait(self, skip=0):

  ../venv/lib/python3.9/site-packages/asynctest/mock.py:448
    /tmp/tmp.04enzn5DK1/venv/lib/python3.9/site-packages/asynctest/mock.py:448: DeprecationWarning: "@coroutine" decorator is deprecated since Python 3.8, use "async def" instead
      def wait_next(self, skip=0):

  ../venv/lib/python3.9/site-packages/asynctest/mock.py:468
    /tmp/tmp.04enzn5DK1/venv/lib/python3.9/site-packages/asynctest/mock.py:468: DeprecationWarning: "@coroutine" decorator is deprecated since Python 3.8, use "async def" instead
      def wait_for(self, predicate):

  ../venv/lib/python3.9/site-packages/asynctest/mock.py:489
    /tmp/tmp.04enzn5DK1/venv/lib/python3.9/site-packages/asynctest/mock.py:489: DeprecationWarning: "@coroutine" decorator is deprecated since Python 3.8, use "async def" instead
      def _notify(self):

  ../venv/lib/python3.9/site-packages/asynctest/case.py:357
    /tmp/tmp.04enzn5DK1/venv/lib/python3.9/site-packages/asynctest/case.py:357: DeprecationWarning: "@coroutine" decorator is deprecated since Python 3.8, use "async def" instead
      def doCleanups(self):

  ../venv/lib/python3.9/site-packages/asynctest/case.py:381
    /tmp/tmp.04enzn5DK1/venv/lib/python3.9/site-packages/asynctest/case.py:381: DeprecationWarning: "@coroutine" decorator is deprecated since Python 3.8, use "async def" instead
      def assertAsyncRaises(self, exception, awaitable):

  ../venv/lib/python3.9/site-packages/asynctest/case.py:392
    /tmp/tmp.04enzn5DK1/venv/lib/python3.9/site-packages/asynctest/case.py:392: DeprecationWarning: "@coroutine" decorator is deprecated since Python 3.8, use "async def" instead
      def assertAsyncRaisesRegex(self, exception, regex, awaitable):

  ../venv/lib/python3.9/site-packages/asynctest/case.py:403
    /tmp/tmp.04enzn5DK1/venv/lib/python3.9/site-packages/asynctest/case.py:403: DeprecationWarning: "@coroutine" decorator is deprecated since Python 3.8, use "async def" instead
      def assertAsyncWarns(self, warning, awaitable):

  ../venv/lib/python3.9/site-packages/asynctest/case.py:414
    /tmp/tmp.04enzn5DK1/venv/lib/python3.9/site-packages/asynctest/case.py:414: DeprecationWarning: "@coroutine" decorator is deprecated since Python 3.8, use "async def" instead
      def assertAsyncWarnsRegex(self, warning, regex, awaitable):

  ../venv/lib/python3.9/site-packages/asynctest/case.py:445
    /tmp/tmp.04enzn5DK1/venv/lib/python3.9/site-packages/asynctest/case.py:445: DeprecationWarning: "@coroutine" decorator is deprecated since Python 3.8, use "async def" instead
      def advance(self, seconds):

  ../venv/lib/python3.9/site-packages/asynctest/case.py:487
    /tmp/tmp.04enzn5DK1/venv/lib/python3.9/site-packages/asynctest/case.py:487: DeprecationWarning: "@coroutine" decorator is deprecated since Python 3.8, use "async def" instead
      def _drain_loop(self):

  ../venv/lib/python3.9/site-packages/asynctest/helpers.py:13
    /tmp/tmp.04enzn5DK1/venv/lib/python3.9/site-packages/asynctest/helpers.py:13: DeprecationWarning: "@coroutine" decorator is deprecated since Python 3.8, use "async def" instead
      def exhaust_callbacks(loop):

  ../../../project/tests/unit/io/utils.py:125
    /project/tests/unit/io/utils.py:125: SyntaxWarning: "is not" with a literal. Did you mean "!="?
      while len(pending_callbacks) is not 0:

  ../../../project/tests/unit/test_exception.py:32
    /project/tests/unit/test_exception.py:32: DeprecationWarning: invalid escape sequence \s
      match = re.search("'consistency':\s+'([\w\s]+)'", msg)

  tests/unit/advanced/test_insights.py::TestConfigAsDict::test_graph_options
    /tmp/tmp.04enzn5DK1/venv/lib/python3.9/site-packages/cassandra/datastax/graph/query.py:80: UserWarning: Unknown keyword argument received for GraphOptions: graph_invalid_option
      warn("Unknown keyword argument received for GraphOptions: {0}".format(attr))

  tests/unit/advanced/test_policies.py::DSELoadBalancingPolicyTest::test_no_target
  tests/unit/advanced/test_policies.py::DSELoadBalancingPolicyTest::test_status_updates
  tests/unit/advanced/test_policies.py::DSELoadBalancingPolicyTest::test_target_host_down
  tests/unit/advanced/test_policies.py::DSELoadBalancingPolicyTest::test_target_host_nominal
  tests/unit/advanced/test_policies.py::DSELoadBalancingPolicyTest::test_target_no_host
    /tmp/tmp.04enzn5DK1/venv/lib/python3.9/site-packages/cassandra/policies.py:1377: DeprecationWarning: DSELoadBalancingPolicy will be removed in 4.0. Consider using DefaultLoadBalancingPolicy.
      warnings.warn("DSELoadBalancingPolicy will be removed in 4.0. Consider using "

  tests/unit/test_cluster.py::ExecutionProfileTest::test_default_legacy
  tests/unit/test_cluster.py::ExecutionProfileTest::test_no_profile_with_legacy
  tests/unit/test_cluster.py::ExecutionProfileTest::test_no_profile_with_legacy
  tests/unit/test_cluster.py::ExecutionProfileTest::test_statement_params_override_legacy
  tests/unit/test_cluster.py::ExecutionProfileTest::test_statement_params_override_legacy
  tests/unit/test_cluster.py::ExecutionProfileTest::test_statement_params_override_profile
  tests/unit/test_policies.py::DowngradingConsistencyRetryPolicyTest::test_read_timeout
  tests/unit/test_policies.py::DowngradingConsistencyRetryPolicyTest::test_unavailable
  tests/unit/test_policies.py::DowngradingConsistencyRetryPolicyTest::test_write_timeout
    /tmp/tmp.04enzn5DK1/venv/lib/python3.9/site-packages/cassandra/policies.py:1099: DeprecationWarning: DowngradingConsistencyRetryPolicy is deprecated and will be removed in the next major release.
      warnings.warn('DowngradingConsistencyRetryPolicy is deprecated '

  tests/unit/test_cluster.py::ExecutionProfileTest::test_default_legacy
    /project/tests/unit/test_cluster.py:278: DeprecationWarning: Legacy execution parameters will be removed in 4.0. Consider using execution profiles.
      cluster = Cluster(load_balancing_policy=RoundRobinPolicy(), default_retry_policy=DowngradingConsistencyRetryPolicy())

  tests/unit/test_cluster.py::ExecutionProfileTest::test_default_legacy
    /project/tests/unit/test_cluster.py:282: DeprecationWarning: Setting the consistency level at the session level will be removed in 4.0. Consider using execution profiles and setting the desired consistency level to the EXEC_PROFILE_DEFAULT profile.
      session.default_consistency_level = ConsistencyLevel.ALL

  tests/unit/test_cluster.py::ExecutionProfileTest::test_no_legacy_with_profile
  tests/unit/test_cluster.py::ExecutionProfileTest::test_no_legacy_with_profile
    /opt/python/cp39-cp39/lib/python3.9/unittest/case.py:201: DeprecationWarning: Setting the consistency level at the session level will be removed in 4.0. Consider using execution profiles and setting the desired consistency level to the EXEC_PROFILE_DEFAULT profile.
      callable_obj(*args, **kwargs)

  tests/unit/test_cluster.py::ExecutionProfileTest::test_no_profile_with_legacy
    /project/tests/unit/test_cluster.py:377: DeprecationWarning: Legacy execution parameters will be removed in 4.0. Consider using execution profiles.
      cluster = Cluster(load_balancing_policy=RoundRobinPolicy())

  tests/unit/test_cluster.py::ExecutionProfileTest::test_no_profile_with_legacy
    /project/tests/unit/test_cluster.py:388: DeprecationWarning: Setting the consistency level at the session level will be removed in 4.0. Consider using execution profiles and setting the desired consistency level to the EXEC_PROFILE_DEFAULT profile.
      setattr(session, attr, value)

  tests/unit/test_cluster.py::ExecutionProfileTest::test_no_warning_on_contact_points_with_lbp_legacy_mode
    /project/tests/unit/test_cluster.py:564: DeprecationWarning: Legacy execution parameters will be removed in 4.0. Consider using execution profiles.
      Cluster(**cluster_kwargs)

  tests/unit/test_cluster.py::ExecutionProfileTest::test_statement_params_override_legacy
    /project/tests/unit/test_cluster.py:325: DeprecationWarning: Legacy execution parameters will be removed in 4.0. Consider using execution profiles.
      cluster = Cluster(load_balancing_policy=RoundRobinPolicy(), default_retry_policy=DowngradingConsistencyRetryPolicy())

  tests/unit/test_metadata.py::MetadataHelpersTest::test_strip_frozen
  tests/unit/test_metadata.py::MetadataHelpersTest::test_strip_frozen
    <unknown>:1: DeprecationWarning: invalid escape sequence \

  tests/unit/test_response_future.py::ResponseFutureTests::test_add_callbacks
    /project/tests/unit/test_response_future.py:563: DeprecationWarning: ResultSet indexing support will be removed in 4.0. Consider using ResultSet.one() to get a single row.
      self.assertEqual(rf.result()[0], expected_result)

  tests/unit/test_response_future.py::ResponseFutureTests::test_callback
    /project/tests/unit/test_response_future.py:440: DeprecationWarning: ResultSet indexing support will be removed in 4.0. Consider using ResultSet.one() to get a single row.
      result = rf.result()[0]

  tests/unit/test_response_future.py::ResponseFutureTests::test_first_pool_shutdown
    /project/tests/unit/test_response_future.py:398: DeprecationWarning: ResultSet indexing support will be removed in 4.0. Consider using ResultSet.one() to get a single row.
      result = rf.result()[0]

  tests/unit/test_response_future.py::ResponseFutureTests::test_multiple_callbacks
    /project/tests/unit/test_response_future.py:490: DeprecationWarning: ResultSet indexing support will be removed in 4.0. Consider using ResultSet.one() to get a single row.
      result = rf.result()[0]

  tests/unit/test_response_future.py::ResponseFutureTests::test_other_result_message_kind
    /project/tests/unit/test_response_future.py:130: DeprecationWarning: ResultSet indexing support will be removed in 4.0. Consider using ResultSet.one() to get a single row.
      self.assertEqual(rf.result()[0], result)

  tests/unit/test_response_future.py::ResponseFutureTests::test_result_message
    /project/tests/unit/test_response_future.py:84: DeprecationWarning: ResultSet indexing support will be removed in 4.0. Consider using ResultSet.one() to get a single row.
      result = rf.result()[0]

  tests/unit/test_response_future.py::ResponseFutureTests::test_timeout_getting_connection_from_pool
    /project/tests/unit/test_response_future.py:422: DeprecationWarning: ResultSet indexing support will be removed in 4.0. Consider using ResultSet.one() to get a single row.
      self.assertEqual(rf.result()[0], expected_result)

  tests/unit/test_resultset.py::ResultSetTests::test_index_list_mode
    /project/tests/unit/test_resultset.py:122: DeprecationWarning: ResultSet indexing support will be removed in 4.0. Consider using ResultSet.one() to get a single row.
      self.assertEqual(rs[0], expected[0])

  tests/unit/test_resultset.py::ResultSetTests::test_index_list_mode
    /project/tests/unit/test_resultset.py:137: DeprecationWarning: ResultSet indexing support will be removed in 4.0. Consider using ResultSet.one() to get a single row.
      self.assertEqual(rs[0], expected[0])

  tests/unit/test_resultset.py::ResultSetTests::test_iterate_then_index
    /project/tests/unit/test_resultset.py:88: DeprecationWarning: ResultSet indexing support will be removed in 4.0. Consider using ResultSet.one() to get a single row.
      rs[0]

  tests/unit/test_resultset.py::ResultSetTests::test_iterate_then_index
    /project/tests/unit/test_resultset.py:92: DeprecationWarning: ResultSet indexing support will be removed in 4.0. Consider using ResultSet.one() to get a single row.
      rs[0]

  tests/unit/test_resultset.py::ResultSetTests::test_iterate_then_index
    /project/tests/unit/test_resultset.py:105: DeprecationWarning: ResultSet indexing support will be removed in 4.0. Consider using ResultSet.one() to get a single row.
      rs[0]

  tests/unit/test_resultset.py::ResultSetTests::test_iterate_then_index
  tests/unit/test_resultset.py::ResultSetTests::test_iterate_then_index
  tests/unit/test_resultset.py::ResultSetTests::test_iterate_then_index
  tests/unit/test_resultset.py::ResultSetTests::test_iterate_then_index
  tests/unit/test_resultset.py::ResultSetTests::test_iterate_then_index
    /project/tests/unit/test_resultset.py:109: DeprecationWarning: ResultSet indexing support will be removed in 4.0. Consider using ResultSet.one() to get a single row.
      rs[0]

  tests/unit/test_resultset.py::ResultSetTests::test_iterate_then_index
    /project/tests/unit/test_resultset.py:112: DeprecationWarning: ResultSet indexing support will be removed in 4.0. Consider using ResultSet.one() to get a single row.
      rs[0]

  tests/unit/test_resultset.py::ResultSetTests::test_list_non_paged
    /project/tests/unit/test_resultset.py:59: DeprecationWarning: ResultSet indexing support will be removed in 4.0. Consider using ResultSet.one() to get a single row.
      self.assertEqual(rs[i], expected[i])

  -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
  =========================== short test summary info ============================
  FAILED ../../../project/tests/unit/io/test_libevreactor.py::LibevTimerTest::test_multi_timer_validation
  = 1 failed, 617 passed, 15 skipped, 4 deselected, 75 warnings in 308.29s (0:05:08) =
Lorak-mmk commented 3 months ago

@fruch Is that because quemu stuff is too slow?

fruch commented 3 months ago

@fruch Is that because quemu stuff is too slow?

Could be, all of the unittest with timers, are problematic in other platforms, i.e. in windows as an example.