mirror of
https://github.com/narrrl/proton-sdk-rs.git
synced 2026-11-03 16:41:26 +01:00
enumerate_nodes and enumerate_nodes_light cached parent keys per batch by the link's parent id. Every parentless link in a volume landed on None, so when several share roots were enumerated together, the first root's share key was used for the rest and they were dropped with "missing key". Name a parent key by where it comes from: Parent(folder) for a link with a parent, Root(link) for a parentless one. The batch cache and the parent-key single-flight now both use that identity. The single-flight previously keyed a root and its children on the same link id, although a root resolves to its share key and its children to its node key, so two concurrent cold loads could hand one of them the wrong key. Fixes #2