| Summary: | Locked signature change triggers taskhash mismatch error | ||
|---|---|---|---|
| Product: | [Build System, Metadata & Runtime] BitBake | Reporter: | Paul Eggleton <bluelightning> |
| Component: | bitbake | Assignee: | Randy MacLeod <randy.macleod> |
| Status: | RESOLVED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | Medium+ | CC: | poky.bs.watcher, poky.watcher, randy.macleod |
| Version: | 2.4 | ||
| Target Milestone: | 6.0 M2 | ||
| Hardware: | x86 | ||
| OS: | Multiple | ||
| Whiteboard: | RETEST | ||
| OS type for building Yocto: | --- | Type of Regression: | --- |
| Verified: | Documentation change: | No (bug/feature does not impact docs) | |
Bulk move from 4.99 or 0.00 to 5.99 Sundeep, this is likely fixed. Please have someone check. Resolved as per notes below.
It's not clear to me which commit fixed the issue and
it's not worth digging/bisecting since this isn't a commonly used feature, IMO.
If you want a backport, please ask or better still do the bisect to find the fix commit.
The bug:
you always get a taskhash mismatch *error* even
if it's set to warn (or ignore) on mismatch.
Test:
❯ cd .../oe-core.git
❯ git log --oneline -1
6ce19709f7 (HEAD -> master, origin/master, origin/HEAD) oe/utils: filter license packages
In a build directory, we can now use bblock:
❯ bblock -t do_fetch lighttpd
# edit the file to change the hash to 0xdeadbeef...beef
❯ cat conf/bblock.conf
# Generated by bblock
SIGGEN_LOCKEDSIGS_TASKSIG_CHECK = "warn"
SIGGEN_LOCKEDSIGS_TYPES += "${PACKAGE_ARCHS}"
SIGGEN_LOCKEDSIGS_x86-64-v3 += "lighttpd:do_fetch:deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef"
--
❯ bitbake lighttpd
Loading cache: 100% |##########################################################################################################################################################| Time: 0:00:00
Loaded 1958 entries from dependency cache.
NOTE: Resolving any missing task queue dependencies
Build Configuration:
BB_VERSION = "2.16.0"
BUILD_SYS = "x86_64-linux"
NATIVELSBSTRING = "ubuntu-22.04"
TARGET_SYS = "x86_64-oe-linux"
MACHINE = "qemux86-64"
DISTRO = "nodistro"
DISTRO_VERSION = "nodistro.0"
TUNE_FEATURES = "m64 x86-64-v3"
TARGET_FPU = ""
meta = "master:6ce19709f7835ee5cd7915e181f89397975236c8"
Sstate summary: Wanted 10 Local 0 Mirrors 0 Missed 10 Current 395 (0% match, 97% complete)##################################################################### | ETA: 0:00:00
WARNING: The lighttpd:do_fetch sig is computed to be b9b9a88a9b40b5deee0b2c7120f2487c315f3a4cbd4a476188fcdf21e712542e, but the sig is locked to deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadb3
Initialising tasks: 100% |#####################################################################################################################################################| Time: 0:00:01
NOTE: Executing Tasks
NOTE: Tasks Summary: Attempted 1176 tasks of which 1156 didn't need to be rerun and all succeeded.
Summary: There was 1 WARNING message.
rmacleod in 🌐 ala-lpggp3 in yocto/b/rust-sdk-target took 22s
❯ echo $?
0
-------------------------------------------------------------------------
bonus points, check that error works:
# edit file then:
❯ grep error conf/bblock.conf
SIGGEN_LOCKEDSIGS_TASKSIG_CHECK = "error"
❯ bitbake -c cleansstate lighttpd
❯ bitbake lighttpd
Loading cache: 100% |##########################################################################################################################################################| Time: 0:00:00
Loaded 1958 entries from dependency cache.
NOTE: Resolving any missing task queue dependencies
Build Configuration:
BB_VERSION = "2.16.0"
BUILD_SYS = "x86_64-linux"
NATIVELSBSTRING = "ubuntu-22.04"
TARGET_SYS = "x86_64-oe-linux"
MACHINE = "qemux86-64"
DISTRO = "nodistro"
DISTRO_VERSION = "nodistro.0"
TUNE_FEATURES = "m64 x86-64-v3"
TARGET_FPU = ""
meta = "master:6ce19709f7835ee5cd7915e181f89397975236c8"
Sstate summary: Wanted 10 Local 0 Mirrors 0 Missed 10 Current 395 (0% match, 97% complete)##################################################################### | ETA: 0:00:00
ERROR: The lighttpd:do_fetch sig is computed to be b9b9a88a9b40b5deee0b2c7120f2487c315f3a4cbd4a476188fcdf21e712542e, but the sig is locked to deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbee3
Summary: There was 1 ERROR message, returning a non-zero exit code.
rmacleod in 🌐 ala-lpggp3 in yocto/b/rust-sdk-target took 4s
❯ echo $?
1
|
If you enable locked signatures and a signature differs, you always get a taskhash mismatch error even if it's set to warn (or ignore) on mismatch. A quick example (I picked lighttpd for no particular reason other than it doesn't have too many dependencies): --------- snip --------- SIGGEN_LOCKEDSIGS_TASKSIG_CHECK = "warn" SIGGEN_LOCKEDSIGS_t-core2-64 = "\ lighttpd:do_fetch:deadbeefdeadbeefdeadbeefdeadbeef \ " SIGGEN_LOCKEDSIGS_TYPES_qemux86-64 = "t-core2-64" --------- snip --------- If you run bitbake lighttpd, this generates the expected warning: WARNING: The lighttpd:do_fetch sig is computed to be 06afc9089e48717a68a2f911c49fa035, but the sig is locked to deadbeefdeadbeefdeadbeefdeadbeef in SIGGEN_LOCKEDSIGS_t-core2-64 However you also get: ERROR: lighttpd-1.4.45-r0 do_fetch: Taskhash mismatch 06afc9089e48717a68a2f911c49fa035 versus deadbeefdeadbeefdeadbeefdeadbeef for /home/paul/poky/poky/meta/recipes-extended/lighttpd/lighttpd_1.4.45.bb.do_fetch ERROR: Taskhash mismatch 06afc9089e48717a68a2f911c49fa035 versus deadbeefdeadbeefdeadbeefdeadbeef for /home/paul/poky/poky/meta/recipes-extended/lighttpd/lighttpd_1.4.45.bb.do_fetch We don't need to see the latter error - in fact it looks as if we're getting it twice - perhaps once from cooker and then again from the worker, I'm not sure. (This is the underlying cause of bug 11883, but we want the signatures to be unlocked in that case so that can be fixed independently of this).