Skip to content

Python PreCommit flaking in PipelineOptionsTest.test_display_data #21116

@damccorm

Description

@damccorm

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.


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

Imported from Jira BEAM-12515. Original Jira may contain additional context.
Reported by: bhulette.

Metadata

Metadata

Assignees

Labels

P2bugcoredone & doneIssue has been reviewed after it was closed for verification, followups, etc.flakepython

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions