Hello,


I try to use the yocto SSTATE_MIRROR with RDKV 2022q1-dunfell and enabled yocto multilib support. The sstate directory is created by my build server and then published with nginx to the developer machines.

However, when a developer configures the sstate mirror in his local.conf:

        SSTATE_MIRRORS ?= " file://.* http://<build server>/sstate-cache/PATH;downloadfilename=PATH "

the build gets stuck on various _setscene tasks and does not continue. I did some debugging and the issue is the file name length of the sstate files. One of the problematic files is:

        sstate:lib32-dibbler:cortexa53t2hf-neon-fp-armv8-rdkmllib32-linux-gnueabi:1.0.1+1.0.2RC1+gitc4b0ed52e751da7823dd9a36e91f93a6310e5525:r0:cortexa53t2hf-neon-fp-armv8:3:169be56e277b6922d1cca3f23f6d56033812941a438f09a477cd96999d7d0801_package_qa.tgz.siginfo

When the developer machine tries to download this file, the bitbake fetcher wants to create a local lock file with the name:

      sstate:lib32-dibbler:cortexa53t2hf-neon-fp-armv8-rdkmllib32-linux-gnueabi:1.0.1+1.0.2RC1+gitc4b0ed52e751da7823dd9a36e91f93a6310e5525:r0:cortexa53t2hf-neon-fp-armv8:3:169be56e277b6922d1cca3f23f6d56033812941a438f09a477cd96999d7d0801_package_qa.tgz.siginfo.lock

This lock file cannot be created on a ext<2|3|4> file system, due the file name length. This causes the build task to get stuck. It seems like most Linux file systems only support file names up to 255 bytes.


Is anybody aware of a way to configure or limit the  file name size of the sstate cache files? Or on a way to avoid the issue with the .lock file?


Thanks

Markus

  • No labels