parallel icon indicating copy to clipboard operation
parallel copied to clipboard

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

Open mateon1 opened this issue 7 years ago • 1 comments

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.

mateon1 avatar Oct 16 '18 18:10 mateon1

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)/).

Shados avatar Jun 13 '19 01:06 Shados