cve-update-db-native: move -journal checking into do_fetch

It was always questionable to do this in an anonymous function, but now
with multiconfig it is a critical mistake and leads to more strange
"Exception: sqlite3.OperationalError: disk I/O error" errors.

(From OE-Core rev: 0e11c37e49272b967010df7dcebbe73a76f70edb)

Signed-off-by: Chris Laplante <chris.laplante@agilent.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit fcbc9d0e8421a3a559db05005ba042337cd5d864)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Chris Laplante
2020-09-14 11:33:19 -04:00
committed by Richard Purdie
parent b623ea2d29
commit 0ebe61887a

View File

@@ -15,12 +15,6 @@ deltask do_populate_sysroot
python () {
if not bb.data.inherits_class("cve-check", d):
raise bb.parse.SkipRecipe("Skip recipe when cve-check class is not loaded.")
if os.path.exists("%s-journal" % cve_check_db_file ):
os.remove("%s-journal" % cve_check_db_file)
if os.path.exists(cve_check_db_file):
os.remove(cve_check_db_file)
}
python do_populate_cve_db() {
@@ -41,6 +35,14 @@ python do_populate_cve_db() {
db_dir = os.path.dirname(db_file)
json_tmpfile = os.path.join(db_dir, 'nvd.json.gz')
if os.path.exists("{0}-journal".format(db_file)):
# If a journal is present the last update might have been interrupted. In that case,
# just wipe any leftovers and force the DB to be recreated.
os.remove("{0}-journal".format(db_file))
if os.path.exists(db_file):
os.remove(db_file)
# Don't refresh the database more than once an hour
try:
import time