You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@beam.apache.org by "Kenneth Knowles (Jira)" <ji...@apache.org> on 2021/10/21 17:57:00 UTC
[jira] [Updated] (BEAM-12515) Python PreCommit flaking in
PipelineOptionsTest.test_display_data
[ https://issues.apache.org/jira/browse/BEAM-12515?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Kenneth Knowles updated BEAM-12515:
-----------------------------------
Labels: flake sdk-py-core sickbay (was: flake sdk-py-core)
> Python PreCommit flaking in PipelineOptionsTest.test_display_data
> -----------------------------------------------------------------
>
> Key: BEAM-12515
> URL: https://issues.apache.org/jira/browse/BEAM-12515
> Project: Beam
> Issue Type: Bug
> Components: sdk-py-core, test-failures
> Reporter: Brian Hulette
> Assignee: Irwin Alejandro Rodirguez Ramirez
> Priority: P1
> Labels: flake, sdk-py-core, sickbay
> Time Spent: 10h 10m
> Remaining Estimate: 0h
>
> Seeing this failure pretty frequently on PreCommit since yesterday (06/17).
> The first failure in precommit cron was here: https://ci-beam.apache.org/job/beam_PreCommit_Python_cron/4327/
> Seems related to BEAM-10006, but I'm not sure what changed to make this start flaking recently.
> {code}
> self = <apache_beam.options.pipeline_options_test.PipelineOptionsTest testMethod=test_display_data>
> def test_display_data(self):
> for case in PipelineOptionsTest.TEST_CASES:
> options = PipelineOptions(flags=case['flags'])
> dd = DisplayData.create_from(options)
> > hc.assert_that(dd.items, hc.contains_inanyorder(*case['display_data']))
> apache_beam/options/pipeline_options_test.py:222:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> target/.tox-py36-cloud/py36-cloud/lib/python3.6/site-packages/hamcrest/library/collection/issequence_containinginanyorder.py:68: in describe_mismatch
> self.matches(item, mismatch_description)
> target/.tox-py36-cloud/py36-cloud/lib/python3.6/site-packages/hamcrest/library/collection/issequence_containinginanyorder.py:64: in matches
> .describe_mismatch(sequence, mismatch_description)
> target/.tox-py36-cloud/py36-cloud/lib/python3.6/site-packages/hamcrest/core/base_matcher.py:34: in describe_mismatch
> mismatch_description.append_text('was ').append_description_of(item)
> target/.tox-py36-cloud/py36-cloud/lib/python3.6/site-packages/hamcrest/core/base_description.py:34: in append_description_of
> description = str(value)
> apache_beam/transforms/display.py:359: in __repr__
> return 'DisplayDataItem({})'.format(json.dumps(self._get_dict()))
> /usr/lib/python3.6/json/__init__.py:231: in dumps
> return _default_encoder.encode(obj)
> /usr/lib/python3.6/json/encoder.py:199: in encode
> chunks = self.iterencode(o, _one_shot=True)
> /usr/lib/python3.6/json/encoder.py:257: in iterencode
> return _iterencode(o, 0)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> self = <json.encoder.JSONEncoder object at 0x7fef54dd19b0>
> o = <apache_beam.options.value_provider.RuntimeValueProvider object at 0x7feeb2ed5c50>
> def default(self, o):
> """Implement this method in a subclass such that it returns
> a serializable object for ``o``, or calls the base implementation
> (to raise a ``TypeError``).
>
> For example, to support arbitrary iterators, you could
> implement default like this::
>
> def default(self, o):
> try:
> iterable = iter(o)
> except TypeError:
> pass
> else:
> return list(iterable)
> # Let the base class default method raise the TypeError
> return JSONEncoder.default(self, o)
>
> """
> raise TypeError("Object of type '%s' is not JSON serializable" %
> > o.__class__.__name__)
> E TypeError: Object of type 'RuntimeValueProvider' is not JSON serializable
> /usr/lib/python3.6/json/encoder.py:180: TypeError
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)