Skip to content
This repository has been archived by the owner on Jul 11, 2019. It is now read-only.

Parallel always uses the same /tmp directory -- cannot run two parallel commands in parallel #74

Open
mateon1 opened this issue Oct 16, 2018 · 1 comment

Comments

@mateon1
Copy link

mateon1 commented Oct 16, 2018

If I try to run two parallel commands at once, I get weird issues and panics. This is because both commands use the same directory /tmp/parallel for their internal state.
Every time a parallel command is ran, a different /tmp directory should be chosen, by appending several random characters to the end of the existing directory name, like other utilities using /tmp directories do.

Alternatively, use /tmp/parallel-${PID} as the tmp directory to avoid collisions.

In practice this bug causes hard to debug issues when shell scripts involving parallel are ran concurrently.

@Shados
Copy link

Shados commented Jun 13, 2019

Using a predictably-named temporary directory in /tmp is a security issue. Instead:

  • Use a (properly) randomised name for the temporary directory, ideally prefixed or suffixed with something like parallel- so it is still obvious what it is being used by.
  • When possible, create the temporary directory under the per-user temporary runtime directory path (the XDG_RUNTIME_DIR, which is typically /run/user/$(id -u)/).

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants