When using SparkLauncher to submit applications concurrently with a thread pool under Windows, some apps would show that "The process cannot access the file because it is being used by another process" and remains in LOST state at the end. (Issue can be reproduced with attach file.)
After digging into the code, I find that, Windows cmd %RANDOM% would return the same number if we call it instantly( < 500ms) after last call. As a result, SparkLauncher would get same output file(spark-class-launcher-output-%RANDOM%.txt) for apps. Then, the following app would hit the issue when it try to write the same file which has already been occupied by another app.