Error running CLI modules on multi-user linux system

I have my moving, reference, and transform nodes loaded into slicer. I specify the parameters and hit Run, it fails with this errors (on Brains Resample, but same error occurs with Resample Vector/Scalar module as well).

Resample Image (BRAINS) command line:

slicer:0x2aad09cdc130 --processinformationaddress 0x27938e8 --inputVolume slicer:0xe6b0b0#vtkMRMLScalarVolumeNode1 --referenceVolume slicer:0xe6b0b0#vtkMRMLScalarVolumeNode4 --outputVolume slicer:0xe6b0b0#vtkMRMLScalarVolumeNode6 --pixelType float --warpTransform /tmp/Slicer/EHHFB_vtkMRMLLinearTransformNodeG.h5 --interpolationMode Linear --defaultValue 0 --numberOfThreads -1

HDF5-DIAG: Error detected in HDF5 (1.8.17) thread 0:
#000: /home/kitware/Dashboards/Package/Slicer-480-package/ITKv4/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5F.c line 439 in H5Fis_hdf5(): unable open file
major: File accessibilty
minor: Not an HDF5 file
#001: /home/kitware/Dashboards/Package/Slicer-480-package/ITKv4/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5Fint.c line 554 in H5F_is_hdf5(): unable to open file
major: Low-level I/O
minor: Unable to initialize object
#002: /home/kitware/Dashboards/Package/Slicer-480-package/ITKv4/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5FD.c line 993 in H5FD_open(): open failed
major: Virtual File Layer
minor: Unable to initialize object
#003: /home/kitware/Dashboards/Package/Slicer-480-package/ITKv4/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5FDsec2.c line 339 in H5FD_sec2_open(): unable to open file: name = ‘/tmp/Slicer/EHHFB_vtkMRMLLinearTransformNodeG.h5’, errno = 2, error message = ‘No such file or directory’, flags = 0, o_flags = 0
major: File accessibilty
minor: Unable to open file

While SLicer has some log files in the /tmp/Slicer folder, there is indeed no /tmp/Slicer/EHHFB_vtkMRMLLinearTransformNodeG.h5 file. But I already loaded the transform into Slicer. Any ideas? This is on Centos 7.2 with Slicer 4.8.0.

Does your user have write access to /tmp/Slicer?

Yes. (apparently that is too short of answer for discourse to accept it on its own, so here is my attempt to make it ‘meaningful’)

What if you try Prefer Executable CLIs?

image

Turned out to be multi-user issue. /tmp is writable by everyone, but Slicer directory last time generated some other user.

Anyways, on Linux I think it would make sense to default to home to $HOME/tmp or something of that sort.

It is a known issue (https://issues.slicer.org/view.php?id=4340), it just never got fixed. Would you like to give it a try and change how the temp directory name is generated by default?

Unfortunately I don’t have the skills. I wouldn’t know even where to start. As the bug description says, if you know what the issue is, it is avoidable.

Submitted pull request with proposed fix: https://github.com/Slicer/Slicer/pull/834

1 Like

The fix is integrated into Slicer-4.9 version.

2 Likes