apache / apache/beam

Beam transforms declared inside a method fail to pickle.

Open
#19,848 0 comments 0 reactions 0 assignees View on GitHub
bug core P3 python
Dominant language
Java
Stars
8.7k
Forks
4.7k
Avg merge
1d 20h
Merged PRs (30d)
196

Description

```

from apache_beam.internal import pickler






class Outter():

def method(self):
class InnerA(object):

def __init__(self):

pass



class InnerB(InnerA):

def __init__(self):
super(InnerB,
self).__init__()


o = InnerB()

pickler.loads(pickler.dumps(o))



c = Outter()
c.method()

```

fails with
```

RuntimeError: maximum recursion depth exceeded while getting the str of an object

```

Workaround: declare the transforms on the module level.

Imported from Jira [BEAM-8482](https://issues.apache.org/jira/browse/BEAM-8482). Original Jira may contain additional context.
Reported by: tvalentyn.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.