From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: Dongxiao Xu <dongxiao.xu@intel.com>
Cc: bitbake-devel@lists.openembedded.org
Subject: Re: [PATCH 2/6] data_smart: Improve the calculation of config hash
Date: Wed, 11 Apr 2012 00:00:17 +0100 [thread overview]
Message-ID: <1334098817.10826.89.camel@ted> (raw)
In-Reply-To: <ccb22c39f4aeb8e310f9a6f8e0f9c55c18ac6891.1333960654.git.dongxiao.xu@intel.com>
On Mon, 2012-04-09 at 16:41 +0800, Dongxiao Xu wrote:
> The order of keys are not sensitive for config hash, so we need to
> identify its order while calculating the md5 value.
>
> While for certain values, order is also not sensitive (for example,
> BBINCLUDED), we also need to identify its order while calculating md5
> value.
>
> This could fix the problem that Martin Jansa reported in the mailing
> list:
>
> http://lists.linuxtogo.org/pipermail/bitbake-devel/2012-March/002122.html
>
> Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
> ---
> lib/bb/data_smart.py | 10 +++++++---
> 1 files changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/lib/bb/data_smart.py b/lib/bb/data_smart.py
> index 2c200db..cc61a03 100644
> --- a/lib/bb/data_smart.py
> +++ b/lib/bb/data_smart.py
> @@ -462,13 +462,17 @@ class DataSmart(MutableMapping):
> self.delVar(var)
>
> def get_hash(self):
> - data = ""
> + data = {}
> config_whitelist = set((self.getVar("BB_HASHCONFIG_WHITELIST", True) or "").split())
> + config_sort = set((self.getVar("BB_HASHCONFIG_SORT", True) or "").split())
> keys = set(key for key in iter(self) if not key.startswith("__"))
> for key in keys:
> if key in config_whitelist:
> continue
> value = self.getVar(key, False) or ""
> - data = data + key + ': ' + str(value) + '\n'
> + if key in config_sort:
> + value = " ".join(sorted(value.split()))
> + data.update({key:value})
>
> - return hashlib.md5(data).hexdigest()
> + data_str = str([(k, data[k]) for k in sorted(data.keys())])
> + return hashlib.md5(data_str).hexdigest()
This and the corresponding change in bitbake.conf look rather worrying
to me. The order in BBINCLUDED is significant and if it changes we
should be reparsing.
Looking at the code, get_file_depends(d) is probably buggy due to the
use of set() which could reorder the data. We need to keep the data in
order there and this issue should then be resolved.
Lets fix the real bug.
Cheers,
Richard
next prev parent reply other threads:[~2012-04-10 23:09 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-09 8:41 [PATCH 0/6][PULL] Hob: Bug fixes Dongxiao Xu
2012-04-09 8:41 ` [PATCH 1/6] Hob: Change base image to "Create your own image" if customized Dongxiao Xu
2012-04-09 8:41 ` [PATCH 2/6] data_smart: Improve the calculation of config hash Dongxiao Xu
2012-04-10 23:00 ` Richard Purdie [this message]
2012-04-16 7:15 ` Xu, Dongxiao
2012-04-16 8:28 ` Richard Purdie
2012-04-16 8:41 ` Xu, Dongxiao
2012-04-16 9:00 ` Richard Purdie
2012-04-09 8:41 ` [PATCH 3/6] Hob: Fix the pattern patch for image name Dongxiao Xu
2012-04-09 8:42 ` [PATCH 4/6] Hob: Fix tooltips in image configuration page Dongxiao Xu
2012-04-09 8:42 ` [PATCH 5/6] Hob: Fix tooltips in Settings dialog Dongxiao Xu
2012-04-09 8:42 ` [PATCH 6/6] Hob: Add an extra 50M space if zypper is selected Dongxiao Xu
2012-04-10 22:46 ` [PATCH 0/6][PULL] Hob: Bug fixes Richard Purdie
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1334098817.10826.89.camel@ted \
--to=richard.purdie@linuxfoundation.org \
--cc=bitbake-devel@lists.openembedded.org \
--cc=dongxiao.xu@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.