Valentyn Tymofieiev created BEAM-9119:
-----------------------------------------
Summary:
apache_beam.runners.portability.fn_api_runner_test.FnApiRunnerTest[...].test_large_elements
is flaky
Key: BEAM-9119
URL: https://issues.apache.org/jira/browse/BEAM-9119
Project: Beam
Issue Type: Improvement
Components: sdk-py-core
Reporter: Valentyn Tymofieiev
Saw 3 errors today, all manifest with:
IndexError: index out of range in apache_beam/coders/slow_stream.py", line 169,
in read_byte_py3.
https://builds.apache.org/job/beam_PreCommit_Python_Phrase/1369
https://builds.apache.org/job/beam_PreCommit_Python_Phrase/1365
https://builds.apache.org/job/beam_PreCommit_Python_Phrase/1370
Sample logs:
{noformat}
12:10:27 =================================== FAILURES
===================================
12:10:27 ____________ FnApiRunnerTestWithDisabledCaching.test_large_elements
____________
12:10:27 [gw0] linux -- Python 3.6.8
/home/jenkins/jenkins-slave/workspace/beam_PreCommit_Python_Phrase/src/sdks/python/test-suites/tox/py36/build/srcs/sdks/python/target/.tox-py36-gcp-pytest/py36-gcp-pytest/bin/python
12:10:27
12:10:27 self =
<apache_beam.runners.portability.fn_api_runner_test.FnApiRunnerTestWithDisabledCaching
testMethod=test_large_elements>
12:10:27
12:10:27 def test_large_elements(self):
12:10:27 with self.create_pipeline() as p:
12:10:27 big = (p
12:10:27 | beam.Create(['a', 'a', 'b'])
12:10:27 | beam.Map(lambda x: (
12:10:27 x, x * data_plane._DEFAULT_SIZE_FLUSH_THRESHOLD)))
12:10:27
12:10:27 side_input_res = (
12:10:27 big
12:10:27 | beam.Map(lambda x, side: (x[0], side.count(x[0])),
12:10:27 beam.pvalue.AsList(big | beam.Map(lambda x:
x[0]))))
12:10:27 assert_that(side_input_res,
12:10:27 equal_to([('a', 2), ('a', 2), ('b', 1)]),
label='side')
12:10:27
12:10:27 gbk_res = (
12:10:27 big
12:10:27 | beam.GroupByKey()
12:10:27 | beam.Map(lambda x: x[0]))
12:10:27 > assert_that(gbk_res, equal_to(['a', 'b']), label='gbk')
12:10:27
12:10:27 apache_beam/runners/portability/fn_api_runner_test.py:617:
12:10:27 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _
12:10:27 apache_beam/pipeline.py:479: in __exit__
12:10:27 self.run().wait_until_finish()
12:10:27 apache_beam/pipeline.py:459: in run
12:10:27 self._options).run(False)
12:10:27 apache_beam/pipeline.py:472: in run
12:10:27 return self.runner.run_pipeline(self, self._options)
12:10:27 apache_beam/runners/portability/fn_api_runner.py:472: in run_pipeline
12:10:27 default_environment=self._default_environment))
12:10:27 apache_beam/runners/portability/fn_api_runner.py:480: in
run_via_runner_api
12:10:27 return self.run_stages(stage_context, stages)
12:10:27 apache_beam/runners/portability/fn_api_runner.py:569: in run_stages
12:10:27 stage_context.safe_coders)
12:10:27 apache_beam/runners/portability/fn_api_runner.py:889: in _run_stage
12:10:27 result, splits = bundle_manager.process_bundle(data_input,
data_output)
12:10:27 apache_beam/runners/portability/fn_api_runner.py:2076: in
process_bundle
12:10:27 part, expected_outputs), part_inputs):
12:10:27 /usr/lib/python3.6/concurrent/futures/_base.py:586: in result_iterator
12:10:27 yield fs.pop().result()
12:10:27 /usr/lib/python3.6/concurrent/futures/_base.py:432: in result
12:10:27 return self.__get_result()
12:10:27 /usr/lib/python3.6/concurrent/futures/_base.py:384: in __get_result
12:10:27 raise self._exception
12:10:27 apache_beam/utils/thread_pool_executor.py:44: in run
12:10:27 self._future.set_result(self._fn(*self._fn_args,
**self._fn_kwargs))
12:10:27 apache_beam/runners/portability/fn_api_runner.py:2076: in <lambda>
12:10:27 part, expected_outputs), part_inputs):
12:10:27 apache_beam/runners/portability/fn_api_runner.py:2020: in
process_bundle
12:10:27 expected_outputs[output.transform_id]).append(output.data)
12:10:27 apache_beam/runners/portability/fn_api_runner.py:285: in append
12:10:27 windowed_key_value = coder_impl.decode_from_stream(input_stream,
True)
12:10:27 apache_beam/coders/coder_impl.py:1153: in decode_from_stream
12:10:27 value = self._value_coder.decode_from_stream(in_stream, nested)
12:10:27 apache_beam/coders/coder_impl.py:749: in decode_from_stream
12:10:27 for i, c in enumerate(self._coder_impls)])
12:10:27 apache_beam/coders/coder_impl.py:749: in <listcomp>
12:10:27 for i, c in enumerate(self._coder_impls)])
12:10:27 apache_beam/coders/coder_impl.py:493: in decode_from_stream
12:10:27 return in_stream.read_all(nested)
12:10:27 apache_beam/coders/slow_stream.py:158: in read_all
12:10:27 return self.read(self.read_var_int64() if nested else self.size())
12:10:27 apache_beam/coders/slow_stream.py:175: in read_var_int64
12:10:27 byte = self.read_byte()
12:10:27 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _
12:10:27
12:10:27 self = <apache_beam.coders.slow_stream.InputStream object at
0x7f2390d80c88>
12:10:27
12:10:27 def read_byte_py3(self):
12:10:27 # type: () -> int
12:10:27 self.pos += 1
12:10:27 > return self.data[self.pos - 1]
12:10:27 E IndexError: index out of range
12:10:27
12:10:27 apache_beam/coders/slow_stream.py:169: IndexError
{noformat}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)