Skip to content

PackedObjectReader does not implement readline - fails unpicking! #174

Open
@edan-bainglass

Description

@edan-bainglass

In a use case where an output of a calculation (a GeneralData type of an aiida-workgraph task) is automatically pickled and used as an input by a subsequent calculation, pickle fails to unpickle the pickled output due to a missing readline method on the file handler, which is of type disk-objectstore.utils.PackedObjectReader.

After chatting with @sphuber, it is understood that due to an optimization step by the disk-objectstore, the file handler changed from io.BufferedReader to disk_objectstore.utils.PackedObjectReader. Unfortunately, as I'm unclear as to when this optimization takes place, I am unable to reproduce the issue at the moment, .

In any case, though disk_objectstore.utils.PackedObjectReader implements read, it does not implement readline, both required by pickle for unpickling. As such, pickle fails to unpickle the output.

@sphuber recommends/suggests that disk_objectstore.utils.PackedObjectReader is revisited to ensure it can be treated on an equal footing as an io.BufferedReader.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions