Re: Sharing sstate cache across build nodes


Richard Purdie
 

On Fri, 2021-09-10 at 11:16 -0600, Rusty Howell wrote:
We are having a problem with the PR server resetting the PR number it is
returning for a given package/arch/checksum.  Our setup is as follows:  We
have multiple linux servers being used as build nodes. Each node can build any
one of four MACHINE types that we have defined in our distro. These builds
actually happen inside a docker container on the build nodes.  We have a
global PR server running on a separate server.

Each node has it's own SSTATE_DIR, DL_DIR, and all bitbake builds on a node
will use the same SSTATE_DIR, DL_DIR. Those directories are shared with the
docker containers.

Our distro has many recipes that have a git SRC_URI with a branch name as the
rev. So they need to use AUTOINC.
What we are noticing is that once in a while, the revs being served out by the
PR server will be reset back to 0, and thus break upgrade-ability with the
debian packages.

I have been unable to find much information about how to properly configure
multiple build nodes so that they all have consistent PR values from the PR
server.

I know there are several directories that might be necessary to achieve my
goal.
PERSISTENT_DIR, SSTATE_DIR, BUILDHISTORY_DIR, DL_DIR

Can someone help explain which dirs should/must be shared via NFS/smb across
all build nodes? Which directories are node-specific and only need to be
cached locally (but not NFS) and used for all local build jobs? Does changing
the MACHINE type on the build affect how/if these directories can be shared?
In general you need the sstate and the PR server to match. Using multiple
different pools of sstate with the same PR server will probably not work so
well.

It won't matter about DL_DIR or PERSISTENT_DIR.

Cheers,

Richard

Join yocto@lists.yoctoproject.org to automatically receive all group messages.