aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2018-12-17 14:18:59 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2019-01-08 11:15:58 +0000
commit4bed7a97198176503fe8c72d8dd7c36b28fc9dd1 (patch)
treef088edc55dbc3bc16b7dd4d389ea7481583c9f21
parentae79868861568d673a70472e85a4bde9e2d84a8f (diff)
downloadbitbake-contrib-4bed7a97198176503fe8c72d8dd7c36b28fc9dd1.tar.gz
codeparser: Switch to sha256 from md5
We've reports of hash collision with codeparser. Looking at the way collision problems occur with md5 and the way our function templating works, I can believe we may run into issues. This patch therefore switches to sha256. Performance wise, parse time could appear to rise by 4s in 374s Before: 384329 in 2.966s (md5) After: 349743 in 2.340s (sha256) 34723 in 1.245s (md5) since we still have md5 used elsewhere in the code, something we should look at next (using sha256 everywhere is around 5.3s in total) Unfortunately this does nearly double the size of the codeparser cache file due to the hash size change. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--lib/bb/codeparser.py4
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/bb/codeparser.py b/lib/bb/codeparser.py
index 3f8ac1d5f..ac995a6a1 100644
--- a/lib/bb/codeparser.py
+++ b/lib/bb/codeparser.py
@@ -33,7 +33,7 @@ from bb.cache import MultiProcessCache
logger = logging.getLogger('BitBake.CodeParser')
def bbhash(s):
- return hashlib.md5(s.encode("utf-8")).hexdigest()
+ return hashlib.sha256(s.encode("utf-8")).hexdigest()
def check_indent(codestr):
"""If the code is indented, add a top level piece of code to 'remove' the indentation"""
@@ -140,7 +140,7 @@ class CodeParserCache(MultiProcessCache):
# so that an existing cache gets invalidated. Additionally you'll need
# to increment __cache_version__ in cache.py in order to ensure that old
# recipe caches don't trigger "Taskhash mismatch" errors.
- CACHE_VERSION = 10
+ CACHE_VERSION = 11
def __init__(self):
MultiProcessCache.__init__(self)