Closed tjhendrickson closed 8 months ago
Do you have an example docker call that failed?
singularity run -B $input:/input \
-B $output:/output \
-B $work:/work \
-B $fs_license:/license.txt \
$container_path /input /output participant \
--input-type nibabies \
--cifti \
--despike \
--dcan-qc \
-w /work \
--omp-nthreads 3 \
--warp-surfaces-native2std \
-f 0.3 \
--head_radius auto \
--combineruns \
-vv \
--fs-license-file /license.txt
You will find the stacktrace that I laid out above in the standard out, not standard error
I think a --cleanenv would clear this up
Good thought, I went ahead and tried this, but unfortunately received the same error.
@tjhendrickson can you do echo $FS_LICENSE
? I wonder if XCP-D somehow has a problem when the FS_LICENSE environment variable and --fs-license-file
values don't match.
it looks like $fs_license
(lowercase) is being bound to /license.txt
Yes, $fs_license is just a variable representing a file path: fs_license=/home/faird/shared/projects/HBCD_MIDB_IG/xcpd/testing_feb27_24/license.txt
Of note, everything works just fine when $fs_license is being bound to /opt/freesurfer/license.txt.
Best,
-Tim
I'm going to try to reproduce the issue on CUBIC later today.
I'm not able to reproduce your error, but I have one more idea. Can you share your full error log from that last attempt? You can DM it to me on Slack if you want.
Is it possible the license file you used (/home/faird/shared/projects/HBCD_MIDB_IG/xcpd/testing_feb27_24/license.txt
) is a symlink?
I was able to resolve this by leveraging the --env
apptainer/singularity flag, specifically --env FS_LICENSE=/license.txt
Summary
FreeSurfer License flag only works if license is bound to /opt/freesurfer/license.txt within container
Additional details
What were you trying to do?
Run XCP-D from beginning to end
What did you expect to happen?
For XCP-D to run to completion
What actually happened?
Received a long stacktrace, centered around the FreeSurfer license not being found
Reproducing the bug
Binding the freesurfer license file within the container anywhere but /opt/freesurfer/license.txt