You are viewing a plain text version of this content. The canonical link for it is here.
Posted to github@beam.apache.org by GitBox <gi...@apache.org> on 2022/06/03 23:36:43 UTC

[GitHub] [beam] kennknowles opened a new issue, #19288: Sources using Metrics.counter fail with 'Can't pickle ... DelegatingCounter'

kennknowles opened a new issue, #19288:
URL: https://github.com/apache/beam/issues/19288

   This fails under Python 2.7 but works fine under Python 3 – looks like an easy fix.
   
   I am reading from a beam.io.utils.CountingSource:
   
   `beam.io.Read(beam_io_utils.CountingSource(NUM_ROWS))`
   
   This fails under python 2.7 with:
   
   Python exception: Can't pickle <class 'apache_beam.metrics.metric.DelegatingCounter'\>: attribute lookup apache_beam.metrics.metric.DelegatingCounter failed
   
   Looks like this is because DelegatingCounter is actually an inner class defined inside apache_beam.metrics.metric.Metric. Under Python 3 pickling can resolve it under its qualified name apache_beam.metrics.metric.Metric.DelegatingCounter, but not in Python 2. A fix would be to move it to a top-level class in that module.
   
   This also applies to other sources which use Metrics.counter.
   
   Imported from Jira [BEAM-6389](https://issues.apache.org/jira/browse/BEAM-6389). Original Jira may contain additional context.
   Reported by: matthjw.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org