Skip to contentSkip to conversation

sstate-cache contains many seemingly useless siginfo files

DISCUSSION Mike Crowe 2 participants 3 messages Feb 1, 2016 – Feb 2, 2016

lore
Share & tools
lore

Mike Crowe

author
#0 lore raw

Our sstate-cache cleanup script was written long before 80b3974081c4a8c604e23982a6db8fb32c616058, so it only pruned siginfo files if the corresponding tgz file had not been accessed recently.

This worked well until siginfo files started being written for every task - even those that didn't also generate a tgz file such as unpack, configure and compile.

I've just cleared up over two million siginfo files from our sstate-cache!

This exercise has left me wondering why these siginfo files are being written to the sstate-cache in the first place. 80b3974081c4a8c604e23982a6db8fb32c616058 suggests that they aren't being used by anyone.

If writing the files is necessary, is there any reason not to just delete these files periodically or could that confuse a build that is in progress?

Thanks.

Mike.

#1 lore raw
Quoted 11 lines · Mike Crowe

Our sstate-cache cleanup script was written long before 80b3974081c4a8c604e23982a6db8fb32c616058, so it only pruned siginfo files
if the corresponding tgz file had not been accessed recently.

This worked well until siginfo files started being written for every task -
even those that didn't also generate a tgz file such as unpack, configure
and compile.

Quoted 8 lines

I've just cleared up over two million siginfo files from our sstate -cache!

This exercise has left me wondering why these siginfo files are being written to the sstate-cache in the first place. 80b3974081c4a8c604e23982a6db8fb32c616058 suggests that they aren't being
used by anyone.

These are used by things like "bitbake -S printdiff" in order to debug why things are being rebuilt. Without them, there are gaps in the dependency chains and the tools can't figure out how things changed.

So they're not used by main builds but are useful for debug.

Quoted 4 lines

If writing the files is necessary, is there any reason not to just delete
these files periodically or could that confuse a build that is in progress?

I doubt it would cause a problem, other than meaning printdiff wouldn't work well. Not that it works brilliantly right now, but I do hope to fix that at some point.

Cheers,

Richard

author
#2 lore raw
Quoted 21 lines · Richard Purdie
Quoted 11 lines · Mike Crowe

Our sstate-cache cleanup script was written long before 80b3974081c4a8c604e23982a6db8fb32c616058, so it only pruned siginfo files
if the corresponding tgz file had not been accessed recently.

This worked well until siginfo files started being written for every task -
even those that didn't also generate a tgz file such as unpack, configure
and compile.

Quoted 8 lines

I've just cleared up over two million siginfo files from our sstate -cache!

This exercise has left me wondering why these siginfo files are being written to the sstate-cache in the first place. 80b3974081c4a8c604e23982a6db8fb32c616058 suggests that they aren't being
used by anyone.

Quoted 5 lines

These are used by things like "bitbake -S printdiff" in order to debug why things are being rebuilt. Without them, there are gaps in the dependency chains and the tools can't figure out how things changed.

So they're not used by main builds but are useful for debug.

It sounds like keeping them around would be useful, but since they aren't touched during a normal build they would be expired from the sstate-cache while they are still current.

But, perhaps running "bitbake -S printdiff" periodically would be sufficient to ensure that they are accessed and won't expire early. I'll try doing that.

Thanks.

Mike.