Hi Abderrahim,

Thanks for kickstarting this conversation.


On Tue, 2024-12-10 at 10:14 +0100, Abderrahim Kitouni wrote:
> Hi all,

[...]

> .
> ### ActionCache
> 
> Action cache allows associating an arbitrary set of files (plus some
> metadata) with some arbitrary key. This is a powerful tool but one
> that can be misused by software running in the sandbox to hurt
> repeatability. For instance, some software might cache some output
> files but (inadvertently) base the key on a subset of the input files
> used.
> 
> We could try to intercept the requests and add a "salt" value based on
> the cache key of the element, but that would reduce the usefulness of
> the feature quite a lot.
> 
> I think the best course of action is to allow unlimited access to the
> ActionCache, and document this caveat.


I would like to hear a proposal of how a client can *reliably* use this
in some recommendable way at least before moving forward with this. 

This might require some other core BuildStream changes, for instance,
one idea is that an element using RECC could at the very least provide
the cache key of the build toolchain in order to ensure that RECC
compiled objects are unique for the sources *and* toolchain, only
requiring rebuilds when the toolchain or sources/headers have changed,
but not intermediate changes.

How would we achieve this "quasi safe" approach to using RECC to speed
up build performance without other BuildStream changes ?

If it requires BuildStream changes to use RECC in an at least "quasi
safe" way, what would those changes look like ?

Cheers,
    -Tristan 





Reply via email to