spack / spack

A flexible package manager that supports multiple versions, configurations, platforms, and compilers.
https://spack.io
Other
4.25k stars 2.26k forks source link

==> Error: [Errno 37] No locks available #22861

Closed ikitayama closed 2 years ago

ikitayama commented 3 years ago

Steps to reproduce the issue

$ spack install gcc or whatever spec

Error Message

$ spack --debug --stacktrace install gcc

$ spack --debug --stacktrace install gcc
lib/spack/spack/cmd/__init__.py:122 ==> [2021-04-08-13:03:03.032227] Imported install from built-in commands
lib/spack/spack/config.py:981 ==> [2021-04-08-13:03:03.038651] Reading config file /users/kitayama/projects/spack/etc/spack/defaults/config.yaml
lib/spack/spack/cmd/__init__.py:122 ==> [2021-04-08-13:03:03.089444] Imported install from built-in commands
lib/spack/spack/config.py:981 ==> [2021-04-08-13:03:03.093661] Reading config file /users/kitayama/projects/spack/etc/spack/defaults/repos.yaml
lib/spack/spack/spec.py:2811 ==> [2021-04-08-13:03:05.484900] libtool applying constraint m4@1.4.6:
lib/spack/spack/spec.py:2811 ==> [2021-04-08-13:03:05.487252] libtool applying constraint m4@1.4.6:
lib/spack/spack/spec.py:2811 ==> [2021-04-08-13:03:05.492920] autoconf applying constraint m4@1.4.6:
lib/spack/spack/spec.py:2811 ==> [2021-04-08-13:03:05.519350] ncurses applying constraint pkgconfig
lib/spack/spack/spec.py:2811 ==> [2021-04-08-13:03:05.521281] readline applying constraint ncurses
lib/spack/spack/spec.py:2811 ==> [2021-04-08-13:03:05.523040] gdbm applying constraint readline
lib/spack/spack/spec.py:2811 ==> [2021-04-08-13:03:05.524781] perl applying constraint berkeley-db
lib/spack/spack/spec.py:2811 ==> [2021-04-08-13:03:05.526476] perl applying constraint gdbm
lib/spack/spack/spec.py:2811 ==> [2021-04-08-13:03:05.531062] help2man applying constraint perl
lib/spack/spack/spec.py:2811 ==> [2021-04-08-13:03:05.542263] gettext applying constraint iconv
lib/spack/spack/spec.py:2811 ==> [2021-04-08-13:03:05.544319] help2man applying constraint perl
lib/spack/spack/spec.py:2811 ==> [2021-04-08-13:03:05.546177] help2man applying constraint gettext
lib/spack/spack/spec.py:2811 ==> [2021-04-08-13:03:05.548100] autoconf applying constraint m4@1.4.6:
lib/spack/spack/spec.py:2811 ==> [2021-04-08-13:03:05.549946] autoconf applying constraint perl
lib/spack/spack/spec.py:2811 ==> [2021-04-08-13:03:05.551825] autoconf applying constraint help2man
lib/spack/spack/spec.py:2811 ==> [2021-04-08-13:03:05.557187] automake applying constraint perl
lib/spack/spack/spec.py:2811 ==> [2021-04-08-13:03:05.559126] automake applying constraint autoconf
lib/spack/spack/spec.py:2811 ==> [2021-04-08-13:03:05.561027] gmp applying constraint m4
lib/spack/spack/spec.py:2811 ==> [2021-04-08-13:03:05.562934] gmp applying constraint libtool
lib/spack/spack/spec.py:2811 ==> [2021-04-08-13:03:05.564808] gmp applying constraint autoconf
lib/spack/spack/spec.py:2811 ==> [2021-04-08-13:03:05.566691] gmp applying constraint automake
lib/spack/spack/spec.py:2811 ==> [2021-04-08-13:03:05.574286] diffutils applying constraint iconv
lib/spack/spack/spec.py:2811 ==> [2021-04-08-13:03:05.577084] gcc applying constraint gmp@4.3.2:
lib/spack/spack/spec.py:2811 ==> [2021-04-08-13:03:05.581716] gcc applying constraint diffutils
lib/spack/spack/config.py:981 ==> [2021-04-08-13:03:05.641360] Reading config file /users/kitayama/projects/spack/etc/spack/defaults/packages.yaml
Traceback (most recent call last):
  File "/users/kitayama/projects/spack/bin/spack", line 76, in <module>
    sys.exit(spack.main.main())
  File "/users/kitayama/projects/spack/lib/spack/spack/main.py", line 772, in main
    return _invoke_command(command, parser, args, unknown)
  File "/users/kitayama/projects/spack/lib/spack/spack/main.py", line 496, in _invoke_command
    return_val = command(parser, args)
  File "/users/kitayama/projects/spack/lib/spack/spack/cmd/install.py", line 319, in install
    args.spec, concretize=True, tests=tests)
  File "/users/kitayama/projects/spack/lib/spack/spack/cmd/__init__.py", line 164, in parse_specs
    spec.concretize(tests=tests)  # implies normalize
  File "/users/kitayama/projects/spack/lib/spack/spack/spec.py", line 2573, in concretize
    self._old_concretize(tests)
  File "/users/kitayama/projects/spack/lib/spack/spack/spec.py", line 2372, in _old_concretize
    self._expand_virtual_packages(concretizer),
  File "/users/kitayama/projects/spack/lib/spack/spack/spec.py", line 2275, in _expand_virtual_packages
    candidates = concretizer.choose_virtual_or_external(spec)
  File "/users/kitayama/projects/spack/lib/spack/spack/concretize.py", line 144, in choose_virtual_or_external
    candidates = self._valid_virtuals_and_externals(spec)
  File "/users/kitayama/projects/spack/lib/spack/spack/concretize.py", line 99, in _valid_virtuals_and_externals
    candidates = spack.repo.path.providers_for(spec)
  File "/users/kitayama/projects/spack/lib/spack/spack/repo.py", line 90, in converter
    return function(self, spec_like, *args, **kwargs)
  File "/users/kitayama/projects/spack/lib/spack/spack/repo.py", line 591, in providers_for
    providers = self.provider_index.providers_for(vpkg_spec)
  File "/users/kitayama/projects/spack/lib/spack/spack/repo.py", line 575, in provider_index
    self._provider_index.merge(repo.provider_index)
  File "/users/kitayama/projects/spack/lib/spack/spack/repo.py", line 985, in provider_index
    return self.index['providers']
  File "/users/kitayama/projects/spack/lib/spack/spack/repo.py", line 407, in __getitem__
    self._build_all_indexes()
  File "/users/kitayama/projects/spack/lib/spack/spack/repo.py", line 422, in _build_all_indexes
    self.indexes[name] = self._build_index(name, indexer)
  File "/users/kitayama/projects/spack/lib/spack/spack/repo.py", line 447, in _build_index
    with misc_cache.write_transaction(cache_filename) as (old, new):
  File "/users/kitayama/projects/spack/lib/spack/llnl/util/lock.py", line 566, in __enter__
    if self._enter() and self._acquire_fn:
  File "/users/kitayama/projects/spack/lib/spack/llnl/util/lock.py", line 602, in _enter
    return self._lock.acquire_write(self._timeout)
  File "/users/kitayama/projects/spack/lib/spack/llnl/util/lock.py", line 330, in acquire_write
    wait_time, nattempts = self._lock(fcntl.LOCK_EX, timeout=timeout)
  File "/users/kitayama/projects/spack/lib/spack/spack/util/lock.py", line 31, in _lock
    return super(Lock, self)._lock(op, timeout)
  File "/users/kitayama/projects/spack/lib/spack/llnl/util/lock.py", line 186, in _lock
    if self._poll_lock(op):
  File "/users/kitayama/projects/spack/lib/spack/llnl/util/lock.py", line 210, in _poll_lock
    self._length, self._start, os.SEEK_SET)
OSError: [Errno 37] No locks available

Information on your system

Additional information

ikitayama commented 3 years ago
$ spack debug report
* **Spack:** 0.16.1-2129-5500eed60c
* **Python:** 3.5.3
* **Platform:** linux-debian9-k10
* **Concretizer:** original
ikitayama commented 3 years ago

I'm trying to setup Spack on a Debian backed platform for the first time.

ikitayama commented 3 years ago

I still see this with as of today's develop branch.

tldahlgren commented 2 years ago

I am having the same problem -- Error: [Errno 37] No locks available though related to reading from the database -- for one of my PRs on at least one of the LLNL CZ machines:

* **Spack:** 0.18.0.dev0 (971eeb80f77a51d41c0cbb661f91caa2ba8d63d1)
* **Python:** 3.7.2
* **Platform:** linux-rhel7-broadwell
* **Concretizer:** clingo
tldahlgren commented 2 years ago

🤦 Just realized this PR is from a year, not a few days, ago.

tldahlgren commented 2 years ago

I can, of course, try to work around the problem by setting locks to false in spack config edit config but then I have to be careful to not perform parallel installations.

config:
  locks: false

(See https://spack.readthedocs.io/en/latest/config_yaml.html?highlight=locks#locks.)

tldahlgren commented 2 years ago

We have found this error occurs when there is a problem with underlying system software.

Spack locking requires an active file system lock server that supports and enables POSIX locks.

tldahlgren commented 2 years ago

@ikitayama Is this Issue still relevant for you or should it be closed?

ikitayama commented 2 years ago

Go ahead please.