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
      ^[email protected]
      ^blas
      ^[email protected]:+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
      ^[email protected]
      ^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%[email protected]+arpack~doc+gsl+hdf5+metis+mpi+netcdf+oce+p4est+petsc~python+slepc+trilinos arch=darwin-elcapitan-x86_64
      ^[email protected]%[email protected]+mpi+shared arch=darwin-elcapitan-x86_64
          ^[email protected]%[email protected]~doc+ncurses+openssl~qt arch=darwin-elcapitan-x86_64
              ^[email protected]%[email protected] arch=darwin-elcapitan-x86_64
              ^[email protected]%[email protected] arch=darwin-elcapitan-x86_64
                  ^[email protected]%[email protected] arch=darwin-elcapitan-x86_64
          ^[email protected]%[email protected]+fpic~openmp+shared arch=darwin-elcapitan-x86_64
          ^[email protected]%[email protected]~mxm~pmi~psm~psm2~slurm~sqlite3~thread_multiple~tm~verbs+vt arch=darwin-elcapitan-x86_64
              ^[email protected]%[email protected] arch=darwin-elcapitan-x86_64
                  ^[email protected]%[email protected] arch=darwin-elcapitan-x86_64
                      ^[email protected]%[email protected] arch=darwin-elcapitan-x86_64
                          ^[email protected]%[email protected]+sigsegv arch=darwin-elcapitan-x86_64
                              ^[email protected]%[email protected] arch=darwin-elcapitan-x86_64
      ^[email protected]%[email protected] arch=darwin-elcapitan-x86_64
      ^[email protected]%[email protected]+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
          ^[email protected]%[email protected] arch=darwin-elcapitan-x86_64
          ^[email protected]%[email protected]~tk~ucs4 arch=darwin-elcapitan-x86_64
              ^[email protected]%[email protected] arch=darwin-elcapitan-x86_64
              ^[email protected]%[email protected] arch=darwin-elcapitan-x86_64
      ^[email protected]%[email protected] arch=darwin-elcapitan-x86_64
      ^[email protected]%[email protected]+cxx~debug+fortran+mpi+shared~szip~threadsafe arch=darwin-elcapitan-x86_64
      ^[email protected]%[email protected]~debug~gdb~idx64~real64+shared arch=darwin-elcapitan-x86_64
      ^[email protected]%[email protected] arch=darwin-elcapitan-x86_64
      ^[email protected]%[email protected]~hdf4+mpi arch=darwin-elcapitan-x86_64
          ^[email protected]%[email protected] arch=darwin-elcapitan-x86_64
      ^[email protected]%[email protected] arch=darwin-elcapitan-x86_64
      ^[email protected]%[email protected] arch=darwin-elcapitan-x86_64
          ^[email protected]%[email protected]+bzip2+curses+git~libunistring+libxml2+tar+xz arch=darwin-elcapitan-x86_64
              ^[email protected]%[email protected]~python arch=darwin-elcapitan-x86_64
                  ^[email protected]%[email protected] arch=darwin-elcapitan-x86_64
              ^[email protected]%[email protected] arch=darwin-elcapitan-x86_64
      ^[email protected]%[email protected]+tbb arch=darwin-elcapitan-x86_64
          ^[email protected]%[email protected] arch=darwin-elcapitan-x86_64
      ^[email protected]%[email protected] arch=darwin-elcapitan-x86_64
          ^[email protected]%[email protected] arch=darwin-elcapitan-x86_64
          ^[email protected]%[email protected] arch=darwin-elcapitan-x86_64
          ^[email protected]%[email protected] arch=darwin-elcapitan-x86_64
      ^[email protected]%[email protected]+boost~complex~debug+double+hdf5+hypre+metis+mpi+mumps+shared+superlu-dist arch=darwin-elcapitan-x86_64
          ^[email protected]%[email protected]~internal-superlu~shared arch=darwin-elcapitan-x86_64
          ^[email protected]%[email protected]+complex+double+float~idx64~metis+mpi~parmetis~ptscotch~scotch+shared arch=darwin-elcapitan-x86_64
              ^[email protected]%[email protected]~fpic+shared arch=darwin-elcapitan-x86_64
          ^[email protected]%[email protected]~debug~gdb+shared arch=darwin-elcapitan-x86_64
          ^[email protected]%[email protected] arch=darwin-elcapitan-x86_64
      ^[email protected]%[email protected]+arpack arch=darwin-elcapitan-x86_64
      ^[email protected]%[email protected]+tbb arch=darwin-elcapitan-x86_64
      ^[email protected]%[email protected]+boost~debug+hdf5+hypre+metis+mumps~python+shared+suite-sparse+superlu-dist arch=darwin-elcapitan-x86_64
          ^[email protected]%[email protected] arch=darwin-elcapitan-x86_64
          ^[email protected]%[email protected] arch=darwin-elcapitan-x86_64
          ^[email protected]%[email protected] arch=darwin-elcapitan-x86_64
              ^[email protected]%[email protected]+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