| Summary: | AB-INT: cve_check.CVECheck.test_image_json: sqlite3.DatabaseError: database disk image is malformed | ||
|---|---|---|---|
| Product: | [QA/Testing] Functional (self) Testing | Reporter: | Mathieu Dubois-Briand <mathieu.dubois-briand> |
| Component: | oe-selftest | Assignee: | Paul Barker <paul> |
| Status: | RESOLVED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | High | CC: | mhalstead, randy.macleod, yoann.congal |
| Version: | unspecified | ||
| Target Milestone: | 6.0 M1 | ||
| Hardware: | x86 | ||
| OS: | Multiple | ||
| Whiteboard: | AB-INT | ||
| OS type for building Yocto: | --- | Type of Regression: | --- |
| Verified: | Documentation change: | No (bug/feature does not impact docs) | |
oe-selftest-debian ubuntu2404-vk-3 master completed at 2025-11-28 17:43:36+00:00 https://autobuilder.yoctoproject.org/valkyrie/#/builders/35/builds/2773/steps/15/logs/stdio We seen this issue before. Michaael Halstead added a hack to touch the file periodically which may have help but also caused problems. We've also tried having a local copy and then pushing the result to NFS. That was causing other problems that others can describe. In this case, we seem to be over-writing the file so it's probably worth making a change to make a new file and then move it into place. metrics rocky9-vk-3 walnascar completed at 2025-12-14 07:04:42+00:00 https://autobuilder.yoctoproject.org/valkyrie/#/builders/103/builds/2408/steps/16/logs/stdio We're attempting to solve this by ensuring that each new version of the CVE database file has a new inode number, so that the NFS clients (i.e. autobuilder workers) can't read stale data out of any local cache. Patch sent to the list: https://lore.kernel.org/openembedded-core/20251217-cvedb-v1-1-d97a49b9c8de@pbarker.dev/T/#u Local testing confirms that the patch forces the inode number to change each time the CVE database is updated. Testing on the autobuilder is needed to confirm that we don't see further database corruption. Patch was applied, hopefully this resolves the issue: https://git.openembedded.org/openembedded-core/commit/?id=f63622bbec1cfaca6d0b3e05e11466e4c10fa86e |
Probably AB-INT, but given the state of master right now, its a bit tough to be sure. 2025-11-28 15:54:51,597 - oe-selftest - INFO - ... FAIL ... AssertionError: Command 'bitbake core-image-minimal-initramfs' returned non-zero exit status 1: ... ERROR: dbus-native-1.16.2-r0 do_cve_check: Error executing a python function in exec_func_python() autogenerated: The stack trace of python calls that resulted in this exception/failure was: File: 'exec_func_python() autogenerated', lineno: 2, function: <module> 0001: *** 0002:do_cve_check(d) 0003: File: '/srv/pokybuild/yocto-worker/oe-selftest-debian/build/layers/openembedded-core/meta/classes/cve-check.bbclass', lineno: 172, function: do_cve_check 0168: try: 0169: patched_cves = get_patched_cves(d) 0170: except FileNotFoundError: 0171: bb.fatal("Failure in searching patches") *** 0172: cve_data, status = check_cves(d, patched_cves) 0173: if len(cve_data) or (d.getVar("CVE_CHECK_COVERAGE") == "1" and status): 0174: get_cve_info(d, cve_data) 0175: cve_write_data(d, cve_data, status) 0176: else: File: '/srv/pokybuild/yocto-worker/oe-selftest-debian/build/layers/openembedded-core/meta/classes/cve-check.bbclass', lineno: 342, function: check_cves 0338: vendor = "%" 0339: 0340: # Find all relevant CVE IDs. 0341: cve_cursor = conn.execute("SELECT DISTINCT ID FROM PRODUCTS WHERE PRODUCT IS ? AND VENDOR LIKE ?", (product, vendor)) *** 0342: for cverow in cve_cursor: 0343: cve = cverow[0] 0344: 0345: # Write status once only for each product 0346: if not cves_in_product: Exception: sqlite3.DatabaseError: database disk image is malformed