[
https://issues.apache.org/jira/browse/BEAM-7127?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16822730#comment-16822730
]
Thomas Weise commented on BEAM-7127:
{code:java}
File
"/Users/tweise/src/beam/sdks/python/apache_beam/examples/flink/flink_state.py",
line 78, in run
| 'statefulCount' >> beam.ParDo(StateTimerFn())
File "apache_beam/transforms/core.py", line 979, in __init__
super(ParDo, self).__init__(fn, *args, **kwargs)
File "apache_beam/transforms/ptransform.py", line 689, in __init__
self.fn = pickler.loads(pickler.dumps(self.fn))
File "apache_beam/internal/pickler.py", line 230, in dumps
s = dill.dumps(o)
File
"/Users/tweise/python-ve/beam/lib/python2.7/site-packages/dill/_dill.py", line
294, in dumps
dump(obj, file, protocol, byref, fmode, recurse)#, strictio)
File
"/Users/tweise/python-ve/beam/lib/python2.7/site-packages/dill/_dill.py", line
287, in dump
pik.dump(obj)
File
"/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py",
line 224, in dump
self.save(obj)
File
"/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py",
line 331, in save
self.save_reduce(obj=obj, *rv)
File
"/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py",
line 396, in save_reduce
save(cls)
File
"/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py",
line 286, in save
f(self, obj) # Call unbound method with explicit self
File "apache_beam/internal/pickler.py", line 107, in wrapper
return fun(pickler, obj)
File
"/Users/tweise/python-ve/beam/lib/python2.7/site-packages/dill/_dill.py", line
1315, in save_type
obj.__bases__, _dict), obj=obj)
File
"/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py",
line 401, in save_reduce
save(args)
File
"/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py",
line 286, in save
f(self, obj) # Call unbound method with explicit self
File
"/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py",
line 562, in save_tuple
save(element)
File
"/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py",
line 286, in save
f(self, obj) # Call unbound method with explicit self
File "apache_beam/internal/pickler.py", line 198, in new_save_module_dict
return old_save_module_dict(pickler, obj)
File
"/Users/tweise/python-ve/beam/lib/python2.7/site-packages/dill/_dill.py", line
902, in save_module_dict
StockPickler.save_dict(pickler, obj)
File
"/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py",
line 649, in save_dict
self._batch_setitems(obj.iteritems())
File
"/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py",
line 681, in _batch_setitems
save(v)
File
"/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py",
line 286, in save
f(self, obj) # Call unbound method with explicit self
File
"/Users/tweise/python-ve/beam/lib/python2.7/site-packages/dill/_dill.py", line
1394, in save_function
obj.__dict__), obj=obj)
File
"/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py",
line 405, in save_reduce
self.memoize(obj)
File
"/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py",
line 244, in memoize
assert id(obj) not in self.memo
AssertionError{code}
> Timer parameter not supported in timer callback
> ---
>
> Key: BEAM-7127
> URL: https://issues.apache.org/jira/browse/BEAM-7127
> Project: Beam
> Issue Type: Bug
> Components: sdk-py-harness
>Affects Versions: 2.12.0
>Reporter: Thomas Weise
>Priority: Major
> Labels: portability
>
> Referencing the timer in its on_timer callback produces a recursive pickle
> error.
> {code:java}
> @userstate.on_timer(timer_spec)
> def process_timer(self, timer_1=beam.DoFn.TimerParam(timer_spec)):
> {code}
> Unit test:
> [https://github.com/apache/beam/blob/cbe4dfbdbe5d0da5152568853ee5e17334dd1b54/sdks/python/apache_beam/transforms/userstate_test.py#L67]
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)