Bug 1074 - sstate siginfo files should store information about dependant tasks
Summary: sstate siginfo files should store information about dependant tasks
Status: RESOLVED FIXED
Alias: None
Product: Meta-yocto
Classification: Build System, Metadata & Runtime
Component: meta-yocto (show other bugs)
Version: unspecified
Hardware: x86 Multiple
: Medium normal
Target Milestone: 1.1 M2
Assignee: Richard Purdie
QA Contact:
URL:
Whiteboard:
Depends on:
Blocks:
 
Reported: 2011-05-17 00:45 UTC by Martin Jansa
Modified: 2011-05-25 15:44 UTC (History)
3 users (show)

See Also:
OS type for building Yocto: ---
Type of Regression: ---
Verified:
Documentation change: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Jansa 2011-05-17 00:45:28 UTC
If "bitbake-diffsigs sstate-cache/sstate-foo-all-linux-gnueabi-1.0-r1-all-2-*populate-sysroot*siginfo" shows something like this:

Hash for dependent task /OE/foo-1.0.bb.do_install changed from 8a0de44f3f238f645eab9509172c2d8b to 9d6bf027c5f435498017a652088d7327

It's hard to find what was changed in run.do_install.

Because do_install itself is not sstate enabled task, you cannot check something like "bitbake-diffsigs sstate-cache/sstate-foo-all-linux-gnueabi-1.0-r1-all-2-*install*siginfo" (there are no *install*siginfo files).

You need to find right ${WORKDIR} for that version, and there in temp
directory right combination of run.do_install._pid_ scripts, but you
don't know which _pid_ belongs to which sstate checksum and I guess pid
cannot be stored in .siginfo because it would be always different.

It's true that even with rm_work you can keep ${WORKDIR}/temp as long as you want, but you can have many run.do_install script versions there and also it's not best place to have them (someone can have WORKDIR on tmpfs or just delete it completely sometimes ie because rm_work cannot help with packages which are failing to build and then PV/PR is changed so different WORKDIR is used).
Comment 1 Martin Jansa 2011-05-17 12:48:28 UTC
Today I noticed another rebuild of many packages including toolchain

$ bitbake-diffsigs sstate-cache/sstate-git-native-x86_64-linux-1.7.4.3-r2-x86_64-2-*siginfo
Hash for dependent task virtual:native:/OE/shr-core/openembedded-core/meta/recipes-devtools/git/git_1.7.4.3.bb.do_install changed from 23661914e12adee837b4423b5d941ca1 to 0292d237519c0cc22aaa5ab539ebe8c9

$ ls -lah sstate-cache/sstate-git-native-x86_64-linux-1.7.4.3-r2-x86_64-2-*siginfo
-rw-r--r-- 1 bitbake bitbake 12259 May 16 10:26 sstate-cache/sstate-git-native-x86_64-linux-1.7.4.3-r2-x86_64-2-c5fd462964f4fade93fe246250191ced_populate-sysroot.tgz.siginfo
-rw-r--r-- 1 bitbake bitbake 12259 May 17 21:35 sstate-cache/sstate-git-native-x86_64-linux-1.7.4.3-r2-x86_64-2-f206d6a24d2c623740e7a31ebb35ff21_populate-sysroot.tgz.siginfo

$ ls -lah tmp/work/x86_64-linux/git-native-1.7.4.3-r2/temp/run.do_install.*
-rwxrwxr-x 1 bitbake bitbake 5.0K May 17 21:35 tmp/work/x86_64-linux/git-native-1.7.4.3-r2/temp/run.do_install.27710
-rwxrwxr-x 1 bitbake bitbake 5.0K May 16 10:26 tmp/work/x86_64-linux/git-native-1.7.4.3-r2/temp/run.do_install.9596

based on time when those files were created I assume I have right files and those 2 are the same
$ diff -N tmp/work/x86_64-linux/git-native-1.7.4.3-r2/temp/run.do_install.*
$ echo $?
0

No idea how to continue from here, I guess it can be caused that some variable was newly included or excluded from do_install checksum, but oe-core commits between May 16 and May 17 don't look like touching sstate vars.
Comment 2 Richard Purdie 2011-05-25 15:44:48 UTC
This should be fixed by the change committed in http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=fe5f742865c6578b99396ddda282c71c0a4dc557 (and also applied to bitbake master)