Merge ~mdeslaur/ubuntu-cve-tracker:perf-part5 into ubuntu-cve-tracker:master

Proposed by Marc Deslauriers
Status: Merged
Merge reported by: Marc Deslauriers
Merged at revision: 76ecba2f928f6757122b4a5d78b3380af47a0b79
Proposed branch: ~mdeslaur/ubuntu-cve-tracker:perf-part5
Merge into: ubuntu-cve-tracker:master
Diff against target: 47 lines (+5/-6)
2 files modified
scripts/check-syntax (+4/-5)
scripts/cve_lib.py (+1/-1)
Reviewer Review Type Date Requested Status
Alex Murray Approve
Review via email: mp+461984@code.launchpad.net

Commit message

commit 76ecba2f928f6757122b4a5d78b3380af47a0b79
Author: Marc Deslauriers <email address hidden>
Date: Thu Mar 7 10:44:11 2024 -0500

    cve_lib.py: add caching to product_series() as it is used often

commit edb4ba8712239aa6705bf6c93bc1891c4d1fe774
Author: Marc Deslauriers <email address hidden>
Date: Thu Mar 7 10:43:36 2024 -0500

    check-syntax: don't call pkg_ever_existed() for every release

commit 7145416e263bbebf36207a9358a4e536d03c239d
Author: Marc Deslauriers <email address hidden>
Date: Thu Mar 7 10:35:01 2024 -0500

    check-syntax: improve ever_existed() performance

    We don't need to parse through lists of releases and eol releases,
    we just need to see if the package exists in the source map.

Description of the change

more performance changes.

BEFORE:
$ time ./scripts/check-syntax -j8

real 0m50.450s
user 6m15.385s
sys 0m7.404s

AFTER:
$ time ./scripts/check-syntax -j8

real 0m38.672s
user 4m50.809s
sys 0m6.109s

To post a comment you must log in.
Revision history for this message
Alex Murray (alexmurray) wrote :

LGTM!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/scripts/check-syntax b/scripts/check-syntax
index 78640b3..d4e4aaf 100755
--- a/scripts/check-syntax
+++ b/scripts/check-syntax
@@ -95,10 +95,8 @@ def CVEs_from_CNA():
9595
9696
97def ever_existed(pkg):97def ever_existed(pkg):
98 for rel in cve_lib.all_releases:98 for rel in source:
99 if rel in cve_lib.eol_releases:99 if pkg in source[rel]:
100 continue
101 if rel in source and pkg in source[rel]:
102 return True100 return True
103 return False101 return False
104102
@@ -599,6 +597,7 @@ def check_cve(cve):
599597
600 supported = []598 supported = []
601 for pkg in sorted(data["pkgs"].keys()):599 for pkg in sorted(data["pkgs"].keys()):
600 pkg_ever_existed = ever_existed(pkg)
602 # Verify have required releases for each package601 # Verify have required releases for each package
603 listed_releases = set(sorted(data["pkgs"][pkg].keys()))602 listed_releases = set(sorted(data["pkgs"][pkg].keys()))
604 all_required_releases = (set(cve_lib.all_releases + ["devel"]) - set([cve_lib.devel_release])) - set(cve_lib.eol_releases)603 all_required_releases = (set(cve_lib.all_releases + ["devel"]) - set([cve_lib.devel_release])) - set(cve_lib.eol_releases)
@@ -806,7 +805,7 @@ def check_cve(cve):
806 cve_okay = False805 cve_okay = False
807806
808 # Check that package exists in a given release807 # Check that package exists in a given release
809 if not ever_existed(pkg):808 if not pkg_ever_existed:
810 if is_active(cvepath) and not cve_lib.is_active_esm_release(release):809 if is_active(cvepath) and not cve_lib.is_active_esm_release(release):
811 # forcibly skip linux-lts-backport packages and #810 # forcibly skip linux-lts-backport packages and #
812 # other derived kernels since want to track them811 # other derived kernels since want to track them
diff --git a/scripts/cve_lib.py b/scripts/cve_lib.py
index 07fc8e1..a3104fa 100755
--- a/scripts/cve_lib.py
+++ b/scripts/cve_lib.py
@@ -720,7 +720,7 @@ subprojects = {
720 }720 }
721}721}
722722
723723@lru_cache(maxsize=None)
724def product_series(rel):724def product_series(rel):
725 """Return the product,series tuple for rel."""725 """Return the product,series tuple for rel."""
726 if rel in external_releases:726 if rel in external_releases:

Subscribers

People subscribed via source and target branches