Uploaded image for project: 'Beam'
  1. Beam
  2. BEAM-12515

Python PreCommit flaking in PipelineOptionsTest.test_display_data

Details

    Description

      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
      

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              bhulette Brian Hulette
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 10h 10m
                  10h 10m