diff mbox series

[v2] overview: Add note about non-reproducibility side effects

Message ID 20230928182616.17453-1-JPEWhacker@gmail.com
State New
Headers show
Series [v2] overview: Add note about non-reproducibility side effects | expand

Commit Message

Joshua Watt Sept. 28, 2023, 6:26 p.m. UTC
Adds an additional note about some of the side effects that can occur if
recipes are not reproducible and hash equivalence is enabled.

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
---
 documentation/overview-manual/concepts.rst | 9 +++++++++
 1 file changed, 9 insertions(+)

Comments

Michael Opdenacker Oct. 5, 2023, 8:52 a.m. UTC | #1
Hi Joshua

Many thanks for the update.
Roland, Ulrich, thanks for the reviews too!

On 28.09.23 at 20:26, Joshua Watt wrote:
> Adds an additional note about some of the side effects that can occur if
> recipes are not reproducible and hash equivalence is enabled.
>
> Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
> ---
>   documentation/overview-manual/concepts.rst | 9 +++++++++
>   1 file changed, 9 insertions(+)
>
> diff --git a/documentation/overview-manual/concepts.rst b/documentation/overview-manual/concepts.rst
> index af825a98c..4e3f6425a 100644
> --- a/documentation/overview-manual/concepts.rst
> +++ b/documentation/overview-manual/concepts.rst
> @@ -1963,6 +1963,15 @@ task output from the Shared State cache.
>      the stability of the task's output hash. Therefore, the effectiveness
>      of Hash Equivalence strongly depends on it.
>   
> +   Recipes that are not reproducible may have undesired behavior if hash
> +   equivalence is enabled, since the non-reproducible diverging output maybe be
> +   remapped to an older sstate object in the cache by the server.

Wouldn't it be very unlikely to have the same output hash anyway?

>   If a recipe
> +   is non-reproducible in trivial ways, such as different timestamps, this is
> +   likely not a problem. However recipes that have more dramatic changes (such
> +   as completely different file names) will likely outright fail since the
> +   downstream sstate objects are not actually equivalent to what was just
> +   built.
> +

Anyway
Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
and merged into master-next.

Thanks again
Michael.
diff mbox series

Patch

diff --git a/documentation/overview-manual/concepts.rst b/documentation/overview-manual/concepts.rst
index af825a98c..4e3f6425a 100644
--- a/documentation/overview-manual/concepts.rst
+++ b/documentation/overview-manual/concepts.rst
@@ -1963,6 +1963,15 @@  task output from the Shared State cache.
    the stability of the task's output hash. Therefore, the effectiveness
    of Hash Equivalence strongly depends on it.
 
+   Recipes that are not reproducible may have undesired behavior if hash
+   equivalence is enabled, since the non-reproducible diverging output maybe be
+   remapped to an older sstate object in the cache by the server. If a recipe
+   is non-reproducible in trivial ways, such as different timestamps, this is
+   likely not a problem. However recipes that have more dramatic changes (such
+   as completely different file names) will likely outright fail since the
+   downstream sstate objects are not actually equivalent to what was just
+   built.
+
 This applies to multiple scenarios:
 
 -  A "trivial" change to a recipe that doesn't impact its generated output,