[OE-core] [PATCH] sstate: Reduce race windows
Khem Raj
raj.khem at gmail.com
Sat Aug 3 15:12:18 UTC 2019
On Sat, Aug 3, 2019 at 6:35 AM Richard Purdie
<richard.purdie at linuxfoundation.org> wrote:
>
> When we write to the sstate directory we try to do so atomically so
> consumers either see one version or another but never an imcomplete file.
^^^^
typo .
> Unfortunately this is reliant on filesystem support and with some NFS
> configurations a replaced file would be lost from memory even if users held
> open descriptors.
>
> It makes sense to try and avoid replacing existing files where we can.
>
yes this is helpful. Change looks good.
> Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
> ---
> meta/classes/sstate.bbclass | 12 +++++++++++-
> 1 file changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass
> index aa5841446c9..11222223a9b 100644
> --- a/meta/classes/sstate.bbclass
> +++ b/meta/classes/sstate.bbclass
> @@ -755,6 +755,11 @@ sstate_task_postfunc[dirs] = "${WORKDIR}"
> sstate_create_package () {
> TFILE=`mktemp ${SSTATE_PKG}.XXXXXXXX`
>
> + # Exit earlu if it already exists
^^^
typo
> + if [ -e ${SSTATE_PKG} ]; then
> + return
> + fi
> +
> # Use pigz if available
> OPT="-czS"
> if [ -x "$(command -v pigz)" ]; then
> @@ -774,7 +779,12 @@ sstate_create_package () {
> tar $OPT --file=$TFILE --files-from=/dev/null
> fi
> chmod 0664 $TFILE
> - mv -f $TFILE ${SSTATE_PKG}
> + # Skip if it was already created by some other process
> + if [ ! -e ${SSTATE_PKG} ]; then
> + mv -f $TFILE ${SSTATE_PKG}
> + else
> + rm $TFILE
> + fi
> }
>
> python sstate_sign_package () {
> --
> 2.20.1
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
More information about the Openembedded-core
mailing list