Skip to content

Hashes of nodes change with a variant of the root node for exactly the same DAG #1457

@davydden

Description

@davydden

If one diffs the concretized specs of spack spec dealii@develop and spack spec dealii@develop~python+mpi ^boost+python there is a zero difference apart from the python variant of the root node (dealii) -- this is expected and a desired behaviour. In other words dags should be identical and so their hashes.

However after successfully installing

$ spack install dealii@develop
==> dealii is already installed in /Users/davydden/spack/opt/spack/darwin-elcapitan-x86_64/clang-7.3.0-apple/dealii-develop-if6ztag7fopoe7vcppk2sidqe44j7u7b

the second build actually starts with re-installing hwloc and then, supposedly, openmpi and the rest:

$ spack install dealii@develop~python+mpi ^boost+python
==> Installing dealii
==> metis is already installed in /Users/davydden/spack/opt/spack/darwin-elcapitan-x86_64/clang-7.3.0-apple/metis-5.1.0-sawhq7id7lig7enw7qhexuj423xk6eq7
==> Installing trilinos
==> Installing superlu-dist
==> Installing openmpi
==> Installing hwloc
==> libpciaccess is already installed in /Users/davydden/spack/opt/spack/darwin-elcapitan-x86_64/clang-7.3.0-apple/libpciaccess-0.13.4-plgdrjeje7tk63kv65wuhptmi5rhbugr
==> Can not find version 1.11.3 in url_list
==> Already downloaded /Users/davydden/spack/var/spack/stage/hwloc-1.11.3-jtkwa4li2oxkedg6j4fc2p2in2tlf3hb/hwloc-1.11.3.tar.gz
==> Already staged hwloc-1.11.3-jtkwa4li2oxkedg6j4fc2p2in2tlf3hb in /Users/davydden/spack/var/spack/stage/hwloc-1.11.3-jtkwa4li2oxkedg6j4fc2p2in2tlf3hb
==> No patches needed for hwloc
==> Building hwloc

Something is certainly wrong here.

Could it be that hashes are dependent on normalized specs, which are different here:

Input spec
------------------------------
  dealii@develop+mpi~python
      ^boost+python

Normalized
------------------------------
  dealii@develop+mpi~python
      ^astyle@2.04
      ^blas
      ^boost@1.59.0:+iostreams+mpi+python+serialization+system+thread
          ^bzip2
          ^mpi
          ^python
              ^ncurses
              ^openssl
                  ^zlib
              ^readline
              ^sqlite
      ^cmake
      ^lapack
      ^muparser
      ^numdiff
          ^gettext
      ^suite-sparse
      ^tbb

vs

Input spec
------------------------------
  dealii@develop

Normalized
------------------------------
  dealii@develop
      ^astyle@2.04
      ^blas
      ^bzip2
      ^cmake
      ^lapack
      ^muparser
      ^numdiff
          ^gettext
      ^suite-sparse
      ^tbb
      ^zlib

Below is the Conretized specs (again, the only difference between the two is ~python vs +python of the root node):

Concretized
------------------------------
  dealii@develop%clang@7.3.0-apple+arpack~doc+gsl+hdf5+metis+mpi+netcdf+oce+p4est+petsc~python+slepc+trilinos arch=darwin-elcapitan-x86_64
      ^arpack-ng@3.4.0%clang@7.3.0-apple+mpi+shared arch=darwin-elcapitan-x86_64
          ^cmake@3.6.0%clang@7.3.0-apple~doc+ncurses+openssl~qt arch=darwin-elcapitan-x86_64
              ^ncurses@6.0%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
              ^openssl@1.0.2h%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
                  ^zlib@1.2.8%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
          ^openblas@0.2.18%clang@7.3.0-apple+fpic~openmp+shared arch=darwin-elcapitan-x86_64
          ^openmpi@2.0.0%clang@7.3.0-apple~mxm~pmi~psm~psm2~slurm~sqlite3~thread_multiple~tm~verbs+vt arch=darwin-elcapitan-x86_64
              ^hwloc@1.11.3%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
                  ^libpciaccess@0.13.4%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
                      ^libtool@2.4.6%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
                          ^m4@1.4.17%clang@7.3.0-apple+sigsegv arch=darwin-elcapitan-x86_64
                              ^libsigsegv@2.10%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
      ^astyle@2.04%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
      ^boost@1.61.0%clang@7.3.0-apple+atomic+chrono+date_time~debug+filesystem~graph~icu_support+iostreams+locale+log+math+mpi+multithreaded+program_options+python+random+regex+serialization+shared+signals+singlethreaded+system+test+thread+timer+wave arch=darwin-elcapitan-x86_64
          ^bzip2@1.0.6%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
          ^python@2.7.12%clang@7.3.0-apple~tk~ucs4 arch=darwin-elcapitan-x86_64
              ^readline@6.3%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
              ^sqlite@3.8.5%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
      ^gsl@2.1%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
      ^hdf5@1.10.0-patch1%clang@7.3.0-apple+cxx~debug+fortran+mpi+shared~szip~threadsafe arch=darwin-elcapitan-x86_64
      ^metis@5.1.0%clang@7.3.0-apple~debug~gdb~idx64~real64+shared arch=darwin-elcapitan-x86_64
      ^muparser@2.2.5%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
      ^netcdf@4.4.1%clang@7.3.0-apple~hdf4+mpi arch=darwin-elcapitan-x86_64
          ^curl@7.49.1%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
      ^netcdf-cxx@4.2%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
      ^numdiff@5.8.1%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
          ^gettext@0.19.8.1%clang@7.3.0-apple+bzip2+curses+git~libunistring+libxml2+tar+xz arch=darwin-elcapitan-x86_64
              ^libxml2@2.9.2%clang@7.3.0-apple~python arch=darwin-elcapitan-x86_64
                  ^xz@5.2.2%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
              ^tar@1.28%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
      ^oce@0.17.2%clang@7.3.0-apple+tbb arch=darwin-elcapitan-x86_64
          ^tbb@4.4.4%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
      ^p4est@1.1%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
          ^autoconf@2.69%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
          ^automake@1.15%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
          ^lua@5.3.2%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
      ^petsc@3.7.2%clang@7.3.0-apple+boost~complex~debug+double+hdf5+hypre+metis+mpi+mumps+shared+superlu-dist arch=darwin-elcapitan-x86_64
          ^hypre@2.10.1%clang@7.3.0-apple~internal-superlu~shared arch=darwin-elcapitan-x86_64
          ^mumps@5.0.1%clang@7.3.0-apple+complex+double+float~idx64~metis+mpi~parmetis~ptscotch~scotch+shared arch=darwin-elcapitan-x86_64
              ^netlib-scalapack@2.0.2%clang@7.3.0-apple~fpic+shared arch=darwin-elcapitan-x86_64
          ^parmetis@4.0.3%clang@7.3.0-apple~debug~gdb+shared arch=darwin-elcapitan-x86_64
          ^superlu-dist@5.0.0%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
      ^slepc@3.7.1%clang@7.3.0-apple+arpack arch=darwin-elcapitan-x86_64
      ^suite-sparse@4.5.3%clang@7.3.0-apple+tbb arch=darwin-elcapitan-x86_64
      ^trilinos@12.6.4%clang@7.3.0-apple+boost~debug+hdf5+hypre+metis+mumps~python+shared+suite-sparse+superlu-dist arch=darwin-elcapitan-x86_64
          ^glm@0.9.7.1%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
          ^matio@1.5.2%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
          ^swig@3.0.10%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
              ^pcre@8.38%clang@7.3.0-apple+utf arch=darwin-elcapitan-x86_64

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingspecs

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions