错误处理逻辑中的错误在Google.cloud.ml.dataflow.batch_prediction.predict



我正在寻找最新版本(obtained from gs://cloud-ml/sdk/cloudml-0.1.9-alpha.dataflow.tar.gz

google/cloud/ml/dataflow/batch_prediction.py的第153-159行上,我们有以下代码:

except Exception as e:  # pylint: disable=broad-except
  logging.error("Got an unknown exception: [%s].", traceback.format_exc())
  if self._cloud_logger:
    self._cloud_logger.write_error_message(
        str(e), self._create_snippet(context.element))
  yield beam.pvalue.SideOutputValue("errors",
                                    (e.error_message, context.element))

但是,异常对象e可能没有属性error_message。这偶尔会给我带来以下错误的错误:

  • AttributeError: 'exceptions.RuntimeError' object has no attribute 'error_message' [while running 'Evaluate/ParDo(PredictionDoFn)']
  • AttributeError: 'exceptions.KeyError' object has no attribute 'error_message' [while running 'Evaluate/ParDo(PredictionDoFn)']
  • etc

我认为这些错误不应提出,因为除块外的全部点是捕获这些错误并将其作为侧输出传递出来。

感谢您的报告!我们已经修复了它,并且很快就应该在下一个版本中提供一个好的版本。

相关内容

最新更新