[ 
https://issues.apache.org/jira/browse/ARROW-11371?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17271325#comment-17271325
 ] 

Joris Van den Bossche commented on ARROW-11371:
-----------------------------------------------

Note that the pyarrow.serialize functionality is deprecated: see 
https://arrow.apache.org/docs/python/ipc.html#arbitrary-object-serialization

> [Python] Serializing deeply nested structures raises recursion error
> --------------------------------------------------------------------
>
>                 Key: ARROW-11371
>                 URL: https://issues.apache.org/jira/browse/ARROW-11371
>             Project: Apache Arrow
>          Issue Type: Bug
>          Components: Python
>    Affects Versions: 1.0.1
>         Environment: $ python --version
> Python 3.6.12
> $ pip list | grep pyarrow
> pyarrow                 1.0.1
>            Reporter: Alexander Dmitriev
>            Priority: Minor
>              Labels: pyarrow-serialization
>         Attachments: pyarrow_recursion.py
>
>
> When serializing deeply nested python structures such as:
> {code:java}
> data = 
> [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[None]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]{code}
> orĀ 
> {code:java}
> data = OrderedDict([('a', OrderedDict([('a', OrderedDict([('a', 
> OrderedDict([('a', OrderedDict([('a', OrderedDict([('a', OrderedDict([('a', 
> OrderedDict([('a', OrderedDict([('a', None)]))]))]))]))]))]))]))]))]){code}
> pyarrow raises the following exception:
> {code:java}
> >>> buffer = pyarrow.serialize(data).to_buffer()
> Traceback (most recent call last):
>   File "pyarrow_recursion.py", line 11, in try_recursion
>     buffer = pyarrow.serialize(data).to_buffer()
>   File "pyarrow/serialization.pxi", line 285, in 
> pyarrow.lib.SerializedPyObject.to_buffer
>   File "pyarrow/serialization.pxi", line 248, in 
> pyarrow.lib.SerializedPyObject.total_bytes.__get__
>   File "pyarrow/error.pxi", line 84, in pyarrow.lib.check_status
> pyarrow.lib.ArrowInvalid: Max recursion depth reached
> {code}
> While this not the prime use case of pyarrow.serialize, it would be nice to 
> have a much larger recursion limit here, to not run into this issue with 
> auto-generated structures quite so often.
> An example script for reproducing the error can be found in the attachments.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to