Fmriprep runtime error on wsl2

Dear fMRIPREP developers/users

I would like to use fmriprep to do the preprocess for my fmri data. However using docker with wsl2 on windows11 (fmrirpep docker 20.2.6), I always encounter runtime error present from node autorecon_surfs0. Using the same command on ubuntu, it works very well. Can you

The command I used is
fmriprep-docker /mnt/d/Projects/bids/ /mnt/d/Projects/fmri/output/ participant --participant-label CKD009 --fs-license-file /usr/local/software/freesurfer-7.2.0/license.txt --nprocs=2 --omp-nthreads=2 -w /mnt/d/Projects/fmri/workdir --stop-on-first-crash --output-spaces MNI152NLin6Asym:res-2

The machine has 10 cores and 32G memory. (I give 8 cores and 20G memory to WSL2)

Node: _autorecon_surfs0
Working directory: /scratch/fmriprep_wf/single_subject_CKD009_wf/anat_preproc_wf/surface_recon_wf/autorecon_resume_wf/autorecon_surfs/mapflow/_autorecon_surfs0

Node inputs:

FLAIR_file =
T1_files =
T2_file =
args =
big_ventricles =
brainstem =
directive = autorecon-hemi
environ = {}
expert =
flags = [’-noparcstats’, ‘-noparcstats2’, ‘-noparcstats3’, ‘-nohyporelabel’, ‘-nobalabels’]
hemi = lh
hippocampal_subfields_T1 =
hippocampal_subfields_T2 =
hires =
mprage =
mri_aparc2aseg =
mri_ca_label =
mri_ca_normalize =
mri_ca_register =
mri_edit_wm_with_aseg =
mri_em_register =
mri_fill =
mri_mask =
mri_normalize =
mri_pretess =
mri_remove_neck =
mri_segment =
mri_segstats =
mri_tessellate =
mri_watershed =
mris_anatomical_stats =
mris_ca_label =
mris_fix_topology =
mris_inflate =
mris_make_surfaces =
mris_register =
mris_smooth =
mris_sphere =
mris_surf2vol =
mrisp_paint =
openmp = 2
parallel =
steps =
subject_id = sub-CKD009
subjects_dir = /out/freesurfer
talairach =
use_FLAIR =
use_T2 =
xopts =

Traceback (most recent call last):
File “/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/plugins/multiproc.py”, line 67, in run_node
result[“result”] = node.run(updatehash=updatehash)
File “/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/engine/nodes.py”, line 521, in run
result = self._run_interface(execute=True)
File “/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/engine/nodes.py”, line 639, in _run_interface
return self._run_command(execute)
File “/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/engine/nodes.py”, line 751, in _run_command
f"Exception raised while executing Node {self.name}.\n\n{result.runtime.traceback}"
nipype.pipeline.engine.nodes.NodeExecutionError: Exception raised while executing Node _autorecon_surfs0.

RuntimeError: subprocess exited with code 1.

Many thanks!
wl

It seems that issue was origined from the option --omp-nthreads=2, If I change it to --omp-nthreads=1, there is no runtime error this time. I just don’t know why?