Swarm-CG icon indicating copy to clipboard operation
Swarm-CG copied to clipboard

scg_optimize fails on WSL due to permission denied

Open maurobedoya opened this issue 5 years ago • 1 comments

Dear Swarm-CG creators,

Running the scg_optimize executable on WSL crashes with the following error:

shutil.Error: [('.internal/input_CG_simulation_files', 'CG_sim_files_eval_step_1', "[Errno 13] Permission denied: 
'CG_sim_files_eval_step_1'")]

We traced the error to line 2690 in swarmCG.py:

# create new directory for new parameters evaluation
current_eval_dir = f'{config.iteration_sim_files_dirname}_eval_step_{ns.nb_eval}'
shutil.copytree(config.input_sim_files_dirname, current_eval_dir)

We found that there is a bug in the copytree function on WSL (https://bugs.python.org/issue38633). A temporary fix could be to add the following lines at the beginning of the file:

import errno
orig_copyxattr = shutil._copyxattr
def patched_copyxattr(src, dst, *, follow_symlinks=True):
  try:
    orig_copyxattr(src, dst, follow_symlinks=follow_symlinks)
  except OSError as ex:
    if ex.errno != errno.EACCES: raise
shutil._copyxattr = patched_copyxattr

Thanks to @franciscoadasme for his help in the debugging.

I hope this helps!

maurobedoya avatar Jan 26 '21 20:01 maurobedoya

Thank you @maurobedoya for adding this issue and for the suggestion. Will take this into account in the development of the refactoring currently ongoing in the develop branch.

giovannidoni avatar Jan 28 '21 20:01 giovannidoni