Cache not storing objects, but storing refs

Summary

My local CAS cache has been not storing objects to go with the ref, as far as I know only with this specific object, but it could be more. When trying to checkout an object using this tool, I was getting an error for the object not existing, despite buildstream telling me it was cached. Investigating further I found that the object indeed did not exist, but the entry in cas/refs/heads did.

That is:

thomascoldrick ~ $: ls ~/.cache/buildstream/artifacts/cas/refs/heads/freedesktop-sdk/bootstrap-import
6a1b1d3443d29c04b79bc240a68a0197e538475388fbf7388709a76e590b2343
97f1957a0e3843372fb336494e1d4b192fb880a0054588ae2981f9c68a9ca08a
thomascoldrick ~ $: ls ~/.cache/buildstream/artifacts/cas/objects/6a | grep 1b1d3443d29c04b79bc240a68a0197e538475388fbf7388709a76e590b2343
thomascoldrick ~ $

Running bst checkout managed to check the artifact out correctly, presumably by weak key?

Attempting to delete the ref and rebuild or re-pull the element resulted in the same issue - no object.

It may also be relevant that bootstrap-import.bst is a stack element used to get a dependency from a junction, I don't know if any other objects have this issue at present.

Steps to reproduce

  1. Clone freedesktop-sdk
  2. bst pull --deps all all.bst
  3. Run the commands described above.

What is the current bug behavior?

No object for a ref in the cache.

What is the expected correct behavior?

The object, existing.

Other relevant information

  • BuildStream version affected: 1.1.6