From 8111a4bb9d7a308338e29e861e4c2c5ec6335f90 Mon Sep 17 00:00:00 2001
From: scheibelp <scheibel1@llnl.gov>
Date: Tue, 18 Oct 2016 22:34:46 -0700
Subject: [PATCH] Don't cache truncated dag hash for spec (#2048)

If Spec.dag_hash was called for the first time with a 'length'
specified, the cached hash was truncated. This ensures that the
full hash is cached.
---
 lib/spack/spack/spec.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/spack/spack/spec.py b/lib/spack/spack/spec.py
index 37a3cf4d7e..6950025502 100644
--- a/lib/spack/spack/spec.py
+++ b/lib/spack/spack/spec.py
@@ -974,10 +974,10 @@ def dag_hash(self, length=None):
             yaml_text = syaml.dump(
                 self.to_node_dict(), default_flow_style=True, width=maxint)
             sha = hashlib.sha1(yaml_text)
-            b32_hash = base64.b32encode(sha.digest()).lower()[:length]
+            b32_hash = base64.b32encode(sha.digest()).lower()
             if self.concrete:
                 self._hash = b32_hash
-            return b32_hash
+            return b32_hash[:length]
 
     def dag_hash_bit_prefix(self, bits):
         """Get the first <bits> bits of the DAG hash as an integer type."""
-- 
GitLab