Skip to content

Building pexes in docker on macs sometimes breaks #23658

Description

@gcbirzan-plutoflume

Describe the bug

Trying to build pexes for Linux on a mac via a docker container will sometimes fail. This only affects mac->linux builds, because of the weirdness of docker on mac.

In 2.33.0, pants started using python 3.14. A change introduced there causes pex's multiprocessing use to try to create a UNIX socket in the bind mount (since the temp dir is inside the sandbox, which is shared with the host OS). This fails with

[Errno 22] Invalid argument: '/pants-sandbox/pants-sandbox-uOpBP2/.tmp/pymp-j_z_u9v6/sock-d3zx1djz'

This is because UNIX sockets on bind mounts are not supported. @jsirois released a new pex version that lets you skip using mulitprocessing when using --jobs=1, but that's not really a correct solution, just a workaround.

I think correct solution is setting the TMPDIR to be in the filesystem of the docker container, even though... it's a sandbox. But, as long as it works...

The reason it sometimes works is that pex sometimes picks not to use multiprocessing.

Pants version
2.33.0

OS
macOS only as it's because of the interaction between the docker VM and the host OS.

Additional info
Add any other information about the problem here, such as attachments or links to gists, if relevant.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions