Bug 12066

Summary: Locked signature change triggers taskhash mismatch error
Product: [Build System, Metadata & Runtime] BitBake Reporter: Paul Eggleton <bluelightning>
Component: bitbakeAssignee: 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)

Description Paul Eggleton 2017-09-08 04:21:48 UTC
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).
Comment 1 Randy MacLeod 2023-10-24 14:24:19 UTC
Bulk move from 4.99 or 0.00 to 5.99
Comment 2 Randy MacLeod 2025-12-18 16:29:27 UTC
Sundeep, this is likely fixed. Please have someone check.
Comment 3 Randy MacLeod 2026-02-10 20:08:14 UTC
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