In order to duplicate with the attached tarball, set up CMake >=3.12, the desired C++17-compliant compiler, and the desired version of root, and execute the testit script.
The attached code is known to work with 6.12/06 (+patches), and is known to fail with 6.16/00, 6.18/00 (+patches to v6-18-00-patches@b81396c4037e76d614bbf7ffa913ed1ce28813a8), and master@04e30d72f4.
The persisted data object at issue is a (optionally wrapped) collection of objects where a sub-object triggers an I/O rule. In the failing cases, the I/O rules appear not to be executed as the pos and cov data members of each Vertex object in the collection are 0, even though the id data member (not subject to an I/O rule) is correct. All data are correct when the current and on-disk versions of Vertex match. Additionally, the data are correct when the tree's split attribute is set to 1.
This is preventing DUNE reading Monte Carlo Challenge data with their current code: assistance would be appreciated.