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

apache_beam.transforms.external_test.ExternalTransformTest.test_nested flaky

Details

    • Test
    • Status: Resolved
    • P2
    • Resolution: Fixed
    • None
    • 2.22.0
    • sdk-py-core
    • None

    Description

      Example test failures:

      https://builds.apache.org/job/beam_PreCommit_Python_Commit/12682/
      https://builds.apache.org/job/beam_PreCommit_Python_Commit/12684/

      A stacktrace

      apache_beam.transforms.external_test.ExternalTransformTest.test_nested (from py37-cloud)
      
      Failing for the past 1 build (Since Failed#12682 )
      Took 54 ms.
      Error Message
      google.protobuf.json_format.ParseError: Unexpected type for Value message.
      Stacktrace
      self = <apache_beam.transforms.external_test.ExternalTransformTest testMethod=test_nested>
      
          def test_nested(self):
            with beam.Pipeline() as p:
      >       assert_that(p | FibTransform(6), equal_to([8]))
      
      apache_beam/transforms/external_test.py:250: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      apache_beam/transforms/ptransform.py:562: in __ror__
          result = p.apply(self, pvalueish, label)
      apache_beam/pipeline.py:651: in apply
          pvalueish_result = self.runner.apply(transform, pvalueish, self._options)
      apache_beam/runners/runner.py:198: in apply
          return m(transform, input, options)
      apache_beam/runners/runner.py:228: in apply_PTransform
          return transform.expand(input)
      apache_beam/runners/portability/expansion_service_test.py:257: in expand
          expansion_service.ExpansionServiceServicer())
      apache_beam/pvalue.py:140: in __or__
          return self.pipeline.apply(ptransform, self)
      apache_beam/pipeline.py:598: in apply
          transform.transform, pvalueish, label or transform.label)
      apache_beam/pipeline.py:608: in apply
          return self.apply(transform, pvalueish)
      apache_beam/pipeline.py:651: in apply
          pvalueish_result = self.runner.apply(transform, pvalueish, self._options)
      apache_beam/runners/runner.py:198: in apply
          return m(transform, input, options)
      apache_beam/runners/runner.py:228: in apply_PTransform
          return transform.expand(input)
      apache_beam/transforms/external.py:322: in expand
          pipeline_options=job_utils.pipeline_options_dict_to_struct(options))
      apache_beam/runners/job/utils.py:38: in pipeline_options_dict_to_struct
          v in options.items() if v is not None
      apache_beam/runners/job/utils.py:44: in dict_to_struct
          return json_format.ParseDict(dict_obj, struct_pb2.Struct())
      target/.tox-py37-cloud/py37-cloud/lib/python3.7/site-packages/google/protobuf/json_format.py:450: in ParseDict
          parser.ConvertMessage(js_dict, message)
      target/.tox-py37-cloud/py37-cloud/lib/python3.7/site-packages/google/protobuf/json_format.py:479: in ConvertMessage
          methodcaller(_WKTJSONMETHODS[full_name][1], value, message)(self)
      target/.tox-py37-cloud/py37-cloud/lib/python3.7/site-packages/google/protobuf/json_format.py:667: in _ConvertStructMessage
          self._ConvertValueMessage(value[key], message.fields[key])
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      self = <google.protobuf.json_format._Parser object at 0x7f35a4c62e48>
      value = <apache_beam.options.value_provider.RuntimeValueProvider object at 0x7f35a4c00390>
      message = 
      
          def _ConvertValueMessage(self, value, message):
            """Convert a JSON representation into Value message."""
            if isinstance(value, dict):
              self._ConvertStructMessage(value, message.struct_value)
            elif isinstance(value, list):
              self. _ConvertListValueMessage(value, message.list_value)
            elif value is None:
              message.null_value = 0
            elif isinstance(value, bool):
              message.bool_value = value
            elif isinstance(value, six.string_types):
              message.string_value = value
            elif isinstance(value, _INT_OR_FLOAT):
              message.number_value = value
            else:
      >       raise ParseError('Unexpected type for Value message.')
      E       google.protobuf.json_format.ParseError: Unexpected type for Value message.
      
      target/.tox-py37-cloud/py37-cloud/lib/python3.7/site-packages/google/protobuf/json_format.py:647: ParseError
      

      Attachments

        Issue Links

          Activity

            People

              bhulette Brian Hulette
              ningk Ning
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

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