# Fix pickling of String Fields

XMLWordPrintable

#### Details

• Type: Bug
• Status: Done
• Resolution: Done
• Fix Version/s: None
• Component/s:
• Labels:
• Story Points:
2
• Sprint:
AP S19-6
• Team:

#### Description

While finishing DM-19616, I noticed a problem with the multiprocessing Pool and a schema that contained a String Field. I added a test to afw that reproduces this error, and I will fix it on this ticket.

 E lsst.pex.exceptions.wrappers.LengthError:  E File "src/table/FieldBase.cc", line 72, in lsst::afw::table::FieldBase >::FieldBase(int) E Size must be provided when constructing a string field. {0} E lsst::pex::exceptions::LengthError: 'Size must be provided when constructing a string field.' 

My guess is that I need to tweak the pybind11 py::pickle code in schema.cc, possibly special-casing the String FieldBase type.

#### Activity

Hide
John Parejko added a comment -

Krzysztof Findeisen: do you mind taking on this small-ish review (~100 lines)? If you can suggest a better solution to the Field/Key specializations here, I'd be interested to see it. Jim Bosch suggested this approach.

Show
John Parejko added a comment - Krzysztof Findeisen : do you mind taking on this small-ish review (~100 lines)? If you can suggest a better solution to the Field/Key specializations here, I'd be interested to see it. Jim Bosch suggested this approach.
Hide
John Parejko added a comment -
Show
John Parejko added a comment - Jenkins run: https://ci.lsst.codes/blue/organizations/jenkins/stack-os-matrix/detail/stack-os-matrix/29934/pipeline
Hide
Krzysztof Findeisen added a comment -

Sorry, I can't think of anything better; the Key and Field definitions are just too special-casey.

Show
Krzysztof Findeisen added a comment - Sorry, I can't think of anything better; the Key and Field definitions are just too special-casey.
Hide
John Parejko added a comment -

Thanks for the quick review. I cleaned up following your suggestions.

Merged and done.

Show
John Parejko added a comment - Thanks for the quick review. I cleaned up following your suggestions. Merged and done.

#### People

Assignee:
John Parejko
Reporter:
John Parejko
Reviewers:
Krzysztof Findeisen
Watchers:
Jim Bosch, John Parejko, John Swinbank, Krzysztof Findeisen