Skip to content

Posix locking issue on first launch of pants #483

@photoroman

Description

@photoroman

I recently tried different versions of pants, but couldn't get it to work on the development machine/server I'm using:

With scie-pants version 0.12.5 (latest)

roman@login-0:~/computer_vision$ curl --proto '=https' --tlsv1.2 -fsSL https://static.pantsbuild.org/setup/get-pants.sh > install.sh
roman@login-0:~/computer_vision$ bash install.sh
Downloading and installing the pants launcher ...
Installed the pants launcher from https://github.com/pantsbuild/scie-pants/releases/latest/download/scie-pants-linux-x86_64 to /home/roman/.local/bin/pants

Running `pants` in a Pants-enabled repo will use the version of Pants configured for that repo.
In a repo not yet Pants-enabled, it will prompt you to set up Pants for that repo.
roman@login-0:~/computer_vision$ pants --version
Traceback (most recent call last):
  File "/home/roman/.cache/nce/110ddaca41601b431041db6b4778584f671ca109ca25ef19fe32796026678358/cpython-3.9.23+20250612-x86_64-unknown-linux-gnu-install_only.tar.gz/python/lib/python3.9/runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/home/roman/.cache/nce/110ddaca41601b431041db6b4778584f671ca109ca25ef19fe32796026678358/cpython-3.9.23+20250612-x86_64-unknown-linux-gnu-install_only.tar.gz/python/lib/python3.9/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/home/roman/.cache/nce/8b397e34f7388bd488c1673f7080b8a63aef66cfe7d264e94f8e8438171ae5fa/tools.pex/__main__.py", line 233, in <module>
  File "/home/roman/.cache/nce/8b397e34f7388bd488c1673f7080b8a63aef66cfe7d264e94f8e8438171ae5fa/tools.pex/__main__.py", line 213, in boot
  File "/home/roman/.cache/nce/8b397e34f7388bd488c1673f7080b8a63aef66cfe7d264e94f8e8438171ae5fa/tools.pex/__main__.py", line 93, in __ensure_pex_installed__
  File "/home/roman/.cache/nce/8b397e34f7388bd488c1673f7080b8a63aef66cfe7d264e94f8e8438171ae5fa/tools.pex/.bootstrap/pex/layout.py", line 696, in ensure_installed
  File "/home/roman/.cache/nce/8b397e34f7388bd488c1673f7080b8a63aef66cfe7d264e94f8e8438171ae5fa/tools.pex/.bootstrap/pex/layout.py", line 326, in _ensure_installed
  File "/home/roman/.cache/nce/8b397e34f7388bd488c1673f7080b8a63aef66cfe7d264e94f8e8438171ae5fa/tools.pex/.bootstrap/pex/cache/access.py", line 91, in read_write
  File "/home/roman/.cache/nce/8b397e34f7388bd488c1673f7080b8a63aef66cfe7d264e94f8e8438171ae5fa/tools.pex/.bootstrap/pex/cache/access.py", line 79, in _lock
OSError: [Errno 9] Bad file descriptor
Error: Failed to establish atomic directory /home/roman/.cache/nce/5c54a0c25255df2afb0525da856d49eb81b48cff0e32a9c868f77a296af24319/locks/configure-3066e6bd2e64990453eac533f140112bb0b39f3a78e0b3652d65ed59b1c76b28. Population of work directory failed: Boot binding command failed: exit status: 1

Isolates your Pants from the elements.

Please select from the following boot commands:

<default> (when SCIE_BOOT is not set in the environment)  Detects the current Pants installation and launches it.
bootstrap-tools                                           Introspection tools for the Pants bootstrap process.
update                                                    Update scie-pants.

You can select a boot command by setting the SCIE_BOOT environment variable.

With scie-pants version 0.12.3 I get a slightly different error:

roman@login-0:~/computer_vision$ bash install.sh --version 0.12.3
Downloading and installing the pants launcher ...
Installed the pants launcher from https://github.com/pantsbuild/scie-pants/releases/download/v0.12.3/scie-pants-linux-x86_64 to /home/roman/.local/bin/pants

Running `pants` in a Pants-enabled repo will use the version of Pants configured for that repo.
In a repo not yet Pants-enabled, it will prompt you to set up Pants for that repo.
roman@login-0:~/computer_vision$ pants --version
Bootstrapping Pants 2.28.0
Installing pantsbuild.pants==2.28.0 into a virtual environment at /home/roman/.cache/nce/6d61748cea187199dc28418157b2121ccbbb44e4af2ee6fddf8c04bbed73f76d/bindings/venvs/2.28.0
Failed to create Pants virtual environment.
Error: Command '['/home/roman/.cache/nce/6d61748cea187199dc28418157b2121ccbbb44e4af2ee6fddf8c04bbed73f76d/bindings/pex_root/venvs/9d02db73cce345a39f2d7ee9dc3e8071cb591538/718f4d5ec813bf4315c772cd1485372185a50a2f/bin/python', '/tmp/tmpy02vxtjp.pex', 'venv', '--prompt', 'Pants 2.28.0', '--compile', '--pip', '--collisions-ok', '--no-emit-warnings', '--disable-cache', '/home/roman/.cache/nce/6d61748cea187199dc28418157b2121ccbbb44e4af2ee6fddf8c04bbed73f76d/bindings/venvs/2.28.0']' returned non-zero exit status 1., output:
-----
b'Traceback (most recent call last):\n  File "<frozen runpy>", line 198, in _run_module_as_main\n  File "<frozen runpy>", line 88, in _run_code\n  File "/tmp/tmpy02vxtjp.pex/__main__.py", line 244, in <module>\n  File "/tmp/tmpy02vxtjp.pex/__main__.py", line 224, in boot\n  File "/tmp/tmpy02vxtjp.pex/__main__.py", line 95, in __ensure_pex_installed__\n  File "/tmp/tmpy02vxtjp.pex/.bootstrap/pex/layout.py", line 712, in ensure_installed\n  File "/tmp/tmpy02vxtjp.pex/.bootstrap/pex/layout.py", line 332, in _ensure_installed\n  File "/tmp/tmpy02vxtjp.pex/.bootstrap/pex/cache/access.py", line 86, in read_write\n  File "/tmp/tmpy02vxtjp.pex/.bootstrap/pex/cache/access.py", line 75, in _lock\n  File "/tmp/tmpy02vxtjp.pex/.bootstrap/pex/fs/lock.py", line 73, in acquire\n  File "/tmp/tmpy02vxtjp.pex/.bootstrap/pex/fs/_posix.py", line 34, in acquire\nOSError: [Errno 9] Bad file descriptor\n'
-----

Error: Failed to establish atomic directory /home/roman/.cache/nce/6d61748cea187199dc28418157b2121ccbbb44e4af2ee6fddf8c04bbed73f76d/locks/install-0cfcbe70c06366183ebbdf11fa85957113eac379cd9fa12831a500f5bb016764. Population of work directory failed: Boot binding command failed: exit status: 1

Isolates your Pants from the elements.

Please select from the following boot commands:

<default> (when SCIE_BOOT is not set in the environment)  Detects the current Pants installation and launches it.
bootstrap-tools                                           Introspection tools for the Pants bootstrap process.
update                                                    Update scie-pants.

You can select a boot command by setting the SCIE_BOOT environment variable.

Perhaps the issue is related to the fact that ~/.cache/nce resides on a network drive (NFS4) in my setup? File locking does not work reliably on shared filestystems, I believe.

Thanks in advance for your help!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions