tvalentyn commented on PR #40960:
URL: https://github.com/apache/beam/pull/40960#issuecomment-6635140407

   Attempting a rerun of Py314 precommit suite that failed with:
   
   ```
   2026-11-04T02:45:41.1805010Z =================================== FAILURES 
===================================
   2026-11-04T02:45:41.1806134Z _ 
PipelineBasedStreamingInsertTest.test_failure_in_some_rows_does_not_duplicate_1 
_
   2026-11-04T02:45:41.1807842Z [gw5] linux -- Python 3.14.10 
/runner/_work/beam/beam/sdks/python/test-suites/tox/py314/build/srcs/sdks/python/target/.tox-py314-cloud/py314-cloud/bin/python
   2026-11-04T02:45:41.1809373Z 
   2026-11-04T02:45:41.1809692Z >   return 
self.do_fn_invoker.invoke_process(windowed_value)
   2026-11-04T02:45:41.1810322Z 
   2026-11-04T02:45:41.1810665Z apache_beam/runners/common.py:1516: 
   2026-11-04T02:45:41.1811512Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
   2026-11-04T02:45:41.1812689Z apache_beam/runners/common.py:918: in 
apache_beam.runners.common.PerWindowInvoker.invoke_process
   2026-11-04T02:45:41.1813648Z     self._invoke_process_per_window(
   2026-11-04T02:45:41.1814783Z apache_beam/runners/common.py:1063: in 
apache_beam.runners.common.PerWindowInvoker._invoke_process_per_window
   2026-11-04T02:45:41.1815953Z     self.process_method(*args_for_process, 
**kwargs_for_process),
   2026-11-04T02:45:41.1816824Z 
target/.tox-py314-cloud/py314-cloud/lib/python3.14/site-packages/apache_beam/transforms/core.py:2128:
 in <lambda>
   2026-11-04T02:45:41.1817895Z     wrapper = lambda x, *args, **kwargs: [fn(x, 
*args, **kwargs)]
   2026-11-04T02:45:41.1818946Z                                           
^^^^^^^^^^^^^^^^^^^^^^
   2026-11-04T02:45:41.1819930Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
   2026-11-04T02:45:41.1820458Z 
   2026-11-04T02:45:41.1820684Z actual = ['value1', 'value3']
   2026-11-04T02:45:41.1821392Z equals_fn = <function row_namedtuple_equals_fn 
at 0x7cbbf3dc6a30>
   2026-11-04T02:45:41.1821929Z 
   2026-11-04T02:45:41.1822262Z     def _equal(actual, equals_fn=equals_fn):
   2026-11-04T02:45:41.1822847Z       expected_list = list(expected)
   2026-11-04T02:45:41.1823327Z     
   2026-11-04T02:45:41.1823869Z       # Try to compare actual and expected by 
sorting. This fails with a
   2026-11-04T02:45:41.1824732Z       # TypeError in Python 3 if different 
types are present in the same
   2026-11-04T02:45:41.1825612Z       # collection. It can also raise false 
negatives for types that don't have
   2026-11-04T02:45:41.1826498Z       # a deterministic sort order, like 
pyarrow Tables as of 0.14.1
   2026-11-04T02:45:41.1827220Z       if not equals_fn:
   2026-11-04T02:45:41.1827554Z         equals_fn = row_namedtuple_equals_fn
   2026-11-04T02:45:41.1828091Z         try:
   2026-11-04T02:45:41.1828429Z           sorted_expected = sorted(expected)
   2026-11-04T02:45:41.1829345Z           sorted_actual = sorted(actual)
   2026-11-04T02:45:41.1829754Z           if sorted_expected == sorted_actual:
   2026-11-04T02:45:41.1830101Z             return
   2026-11-04T02:45:41.1830388Z         except TypeError:
   2026-11-04T02:45:41.1830679Z           pass
   2026-11-04T02:45:41.1830976Z       # Slower method, used in two cases:
   2026-11-04T02:45:41.1831475Z       # 1) If sorted expected != actual, use 
this method to verify the inequality.
   2026-11-04T02:45:41.1832149Z       #    This ensures we don't raise any 
false negatives for types that don't
   2026-11-04T02:45:41.1832642Z       #    have a deterministic sort order.
   2026-11-04T02:45:41.1833109Z       # 2) As a fallback if we encounter a 
TypeError in python 3. this method
   2026-11-04T02:45:41.1833624Z       #    works on collections that have 
different types.
   2026-11-04T02:45:41.1834026Z       unexpected = []
   2026-11-04T02:45:41.1834474Z       for element in actual:
   2026-11-04T02:45:41.1836081Z         found = False
   2026-11-04T02:45:41.1836641Z         for i, v in enumerate(expected_list):
   2026-11-04T02:45:41.1837283Z           if equals_fn(v, element):
   2026-11-04T02:45:41.1837856Z             found = True
   2026-11-04T02:45:41.1838362Z             expected_list.pop(i)
   2026-11-04T02:45:41.1839088Z             break
   2026-11-04T02:45:41.1839545Z         if not found:
   2026-11-04T02:45:41.1840054Z           unexpected.append(element)
   2026-11-04T02:45:41.1840652Z       if unexpected or expected_list:
   2026-11-04T02:45:41.1841346Z         msg = 'Failed assert: %r == %r' % 
(expected, actual)
   2026-11-04T02:45:41.1842016Z         if unexpected:
   2026-11-04T02:45:41.1842691Z           msg = msg + ', unexpected elements 
%r' % unexpected
   2026-11-04T02:45:41.1843352Z         if expected_list:
   2026-11-04T02:45:41.1843936Z           msg = msg + ', missing elements %r' % 
expected_list
   2026-11-04T02:45:41.1844654Z >       raise BeamAssertException(msg)
   2026-11-04T02:45:41.1867721Z E       
apache_beam.testing.util.BeamAssertException: Failed assert: ['value5', 
'value1'] == ['value1', 'value3'], unexpected elements ['value3'], missing 
elements ['value5']
   2026-11-04T02:45:41.1869197Z 
   2026-11-04T02:45:41.1869957Z 
target/.tox-py314-cloud/py314-cloud/lib/python3.14/site-packages/apache_beam/testing/util.py:205:
 BeamAssertException
   2026-11-04T02:45:41.1870722Z 
   2026-11-04T02:45:41.1871076Z During handling of the above exception, another 
exception occurred:
   2026-11-04T02:45:41.1871653Z 
   2026-11-04T02:45:41.1872592Z a = 
(<apache_beam.io.gcp.bigquery_test.PipelineBasedStreamingInsertTest 
testMethod=test_failure_in_some_rows_does_not_duplicate_1>,)
   2026-11-04T02:45:41.1873451Z kw = {}
   2026-11-04T02:45:41.1873609Z 
   2026-11-04T02:45:41.1873754Z     @wraps(func)
   2026-11-04T02:45:41.1874073Z     def standalone_func(*a, **kw):
   2026-11-04T02:45:41.1874504Z >       return func(*(a + p.args), **p.kwargs, 
**kw)
   2026-11-04T02:45:41.1874911Z                
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   2026-11-04T02:45:41.1875179Z 
   2026-11-04T02:45:41.1875565Z 
target/.tox-py314-cloud/py314-cloud/lib/python3.14/site-packages/parameterized/parameterized.py:620:
 
   2026-11-04T02:45:41.1876257Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
   2026-11-04T02:45:41.1877128Z 
target/.tox-py314-cloud/py314-cloud/lib/python3.14/site-packages/apache_beam/io/gcp/bigquery_test.py:3062:
 in test_failure_in_some_rows_does_not_duplicate
   2026-11-04T02:45:41.1878006Z     with 
beam.Pipeline(runner='BundleBasedDirectRunner') as p:
   2026-11-04T02:45:41.1878712Z          
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   2026-11-04T02:45:41.1879575Z 
target/.tox-py314-cloud/py314-cloud/lib/python3.14/site-packages/apache_beam/pipeline.py:656:
 in __exit__
   2026-11-04T02:45:41.1880534Z     self.result.wait_until_finish()
   2026-11-04T02:45:41.1881570Z 
target/.tox-py314-cloud/py314-cloud/lib/python3.14/site-packages/apache_beam/runners/direct/direct_runner.py:652:
 in wait_until_finish
   2026-11-04T02:45:41.1882814Z     self._executor.await_completion()
   2026-11-04T02:45:41.1883900Z 
target/.tox-py314-cloud/py314-cloud/lib/python3.14/site-packages/apache_beam/runners/direct/executor.py:415:
 in await_completion
   2026-11-04T02:45:41.1884994Z     self._executor.await_completion()
   2026-11-04T02:45:41.1886075Z 
target/.tox-py314-cloud/py314-cloud/lib/python3.14/site-packages/apache_beam/runners/direct/executor.py:462:
 in await_completion
   2026-11-04T02:45:41.1887168Z     raise update.exception
   2026-11-04T02:45:41.1888158Z 
target/.tox-py314-cloud/py314-cloud/lib/python3.14/site-packages/apache_beam/runners/direct/executor.py:353:
 in call
   2026-11-04T02:45:41.1889529Z     self.attempt_call(
   2026-11-04T02:45:41.1890780Z 
target/.tox-py314-cloud/py314-cloud/lib/python3.14/site-packages/apache_beam/runners/direct/executor.py:396:
 in attempt_call
   2026-11-04T02:45:41.1892006Z     evaluator.process_element(value)
   2026-11-04T02:45:41.1893911Z 
target/.tox-py314-cloud/py314-cloud/lib/python3.14/site-packages/apache_beam/runners/direct/transform_evaluator.py:933:
 in process_element
   2026-11-04T02:45:41.1895522Z     self.runner.process(element)
   2026-11-04T02:45:41.1896437Z apache_beam/runners/common.py:1513: in 
apache_beam.runners.common.DoFnRunner.process
   2026-11-04T02:45:41.1897410Z     def process(self, windowed_value):
   2026-11-04T02:45:41.1898345Z apache_beam/runners/common.py:1518: in 
apache_beam.runners.common.DoFnRunner.process
   2026-11-04T02:45:41.1899576Z     self._reraise_augmented(exn, windowed_value)
   2026-11-04T02:45:41.1900588Z apache_beam/runners/common.py:1629: in 
apache_beam.runners.common.DoFnRunner._reraise_augmented
   2026-11-04T02:45:41.1901316Z     raise new_exn
   2026-11-04T02:45:41.1901771Z apache_beam/runners/common.py:1516: in 
apache_beam.runners.common.DoFnRunner.process
   2026-11-04T02:45:41.1902494Z     return 
self.do_fn_invoker.invoke_process(windowed_value)
   2026-11-04T02:45:41.1903121Z apache_beam/runners/common.py:918: in 
apache_beam.runners.common.PerWindowInvoker.invoke_process
   2026-11-04T02:45:41.1903703Z     self._invoke_process_per_window(
   2026-11-04T02:45:41.1904498Z apache_beam/runners/common.py:1063: in 
apache_beam.runners.common.PerWindowInvoker._invoke_process_per_window
   2026-11-04T02:45:41.1905186Z     self.process_method(*args_for_process, 
**kwargs_for_process),
   2026-11-04T02:45:41.1905895Z 
target/.tox-py314-cloud/py314-cloud/lib/python3.14/site-packages/apache_beam/transforms/core.py:2128:
 in <lambda>
   2026-11-04T02:45:41.1906609Z     wrapper = lambda x, *args, **kwargs: [fn(x, 
*args, **kwargs)]
   2026-11-04T02:45:41.1907052Z                                           
^^^^^^^^^^^^^^^^^^^^^^
   2026-11-04T02:45:41.1907524Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
   2026-11-04T02:45:41.1907817Z 
   2026-11-04T02:45:41.1907948Z actual = ['value1', 'value3']
   2026-11-04T02:45:41.1908363Z equals_fn = <function row_namedtuple_equals_fn 
at 0x7cbbf3dc6a30>
   2026-11-04T02:45:41.1909015Z 
   2026-11-04T02:45:41.1909184Z     def _equal(actual, equals_fn=equals_fn):
   2026-11-04T02:45:41.1909546Z       expected_list = list(expected)
   2026-11-04T02:45:41.1909879Z     
   2026-11-04T02:45:41.1910231Z       # Try to compare actual and expected by 
sorting. This fails with a
   2026-11-04T02:45:41.1910754Z       # TypeError in Python 3 if different 
types are present in the same
   2026-11-04T02:45:41.1911304Z       # collection. It can also raise false 
negatives for types that don't have
   2026-11-04T02:45:41.1911838Z       # a deterministic sort order, like 
pyarrow Tables as of 0.14.1
   2026-11-04T02:45:41.1912329Z       if not equals_fn:
   2026-11-04T02:45:41.1912640Z         equals_fn = row_namedtuple_equals_fn
   2026-11-04T02:45:41.1912972Z         try:
   2026-11-04T02:45:41.1913245Z           sorted_expected = sorted(expected)
   2026-11-04T02:45:41.1913593Z           sorted_actual = sorted(actual)
   2026-11-04T02:45:41.1914190Z           if sorted_expected == sorted_actual:
   2026-11-04T02:45:41.1914717Z             return
   2026-11-04T02:45:41.1915050Z         except TypeError:
   2026-11-04T02:45:41.1915350Z           pass
   2026-11-04T02:45:41.1915646Z       # Slower method, used in two cases:
   2026-11-04T02:45:41.1916262Z       # 1) If sorted expected != actual, use 
this method to verify the inequality.
   2026-11-04T02:45:41.1916995Z       #    This ensures we don't raise any 
false negatives for types that don't
   2026-11-04T02:45:41.1917488Z       #    have a deterministic sort order.
   2026-11-04T02:45:41.1917946Z       # 2) As a fallback if we encounter a 
TypeError in python 3. this method
   2026-11-04T02:45:41.1918654Z       #    works on collections that have 
different types.
   2026-11-04T02:45:41.1919103Z       unexpected = []
   2026-11-04T02:45:41.1919407Z       for element in actual:
   2026-11-04T02:45:41.1919719Z         found = False
   2026-11-04T02:45:41.1920036Z         for i, v in enumerate(expected_list):
   2026-11-04T02:45:41.1920397Z           if equals_fn(v, element):
   2026-11-04T02:45:41.1920729Z             found = True
   2026-11-04T02:45:41.1921036Z             expected_list.pop(i)
   2026-11-04T02:45:41.1921338Z             break
   2026-11-04T02:45:41.1921965Z         if not found:
   2026-11-04T02:45:41.1922583Z           unexpected.append(element)
   2026-11-04T02:45:41.1922960Z       if unexpected or expected_list:
   2026-11-04T02:45:41.1923356Z         msg = 'Failed assert: %r == %r' % 
(expected, actual)
   2026-11-04T02:45:41.1923742Z         if unexpected:
   2026-11-04T02:45:41.1924084Z           msg = msg + ', unexpected elements 
%r' % unexpected
   2026-11-04T02:45:41.1924465Z         if expected_list:
   2026-11-04T02:45:41.1924807Z           msg = msg + ', missing elements %r' % 
expected_list
   2026-11-04T02:45:41.1925196Z >       raise BeamAssertException(msg)
   2026-11-04T02:45:41.1926119Z E       
apache_beam.testing.util.BeamAssertException: Failed assert: ['value5', 
'value1'] == ['value1', 'value3'], unexpected elements ['value3'], missing 
elements ['value5'] [while running 'assert_that/Match']
   2026-11-04T02:45:41.1926909Z 
   2026-11-04T02:45:41.1927363Z 
target/.tox-py314-cloud/py314-cloud/lib/python3.14/site-packages/apache_beam/testing/util.py:205:
 BeamAssertException
   2026-11-04T02:45:41.1928126Z ------------------------------ Captured log 
call -------------------------------
   
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to