bitter-ability-32190
03/25/2022, 12:00 PMFile "/home/joshuacannon/.cache/pants/named_caches/pex_root/installed_wheels/0457d0c3fb526f3f246a04ebe5fa67dfa4f0877fe617e106f23f3b083f7b1ab1/pex-2.1.73-py2.py3-none-any.whl/pex/common.py", line 470, in atomic_directory
fcntl.lockf(lock_fd, fcntl.LOCK_EX) # A blocking write lock.
OSError: [Errno 35] Resource deadlock avoided
I suspect the fact that we have overlapping sets of deps being requested in N pex
processes is what's causing this.bitter-ability-32190
03/25/2022, 12:07 PMbitter-ability-32190
03/25/2022, 1:50 PMenough-analyst-54434
03/25/2022, 2:03 PMbitter-ability-32190
03/25/2022, 2:16 PMbitter-ability-32190
03/25/2022, 2:31 PMenough-analyst-54434
03/25/2022, 2:39 PMbitter-ability-32190
03/25/2022, 2:49 PMSSLContext
, but could be more as we only see the first offender)enough-analyst-54434
03/25/2022, 3:01 PMenough-analyst-54434
03/25/2022, 3:04 PMexecute_parallel
(an internal API used extensively like atomic_directory
). That's process based, but doesn't pickle. You need to actually write a shim script that can be used to fork a process for the thing you need to do (run a download). Currently this is mainly (fully?) used to fork Pip subprocesses to do parallel wheel building and parallel wheel installing.bitter-ability-32190
03/25/2022, 3:10 PMAnother quick-and-dirty muck to make the arguments pickleable and looks like the switch works. I'll wipe my cache and try it a few more times to be ultra-sure.
bitter-ability-32190
03/25/2022, 4:00 PMbitter-ability-32190
03/25/2022, 4:21 PMbitter-ability-32190
03/25/2022, 4:33 PMbitter-ability-32190
03/25/2022, 4:59 PM