Description
Current Behavior
Sometimes, it happens that a user uploads a file that the sidecar doesn't have permission to access. As a result, the closing process hangs because the upload to S3 fails. This also means that the user can no longer open the service.
Example of issue:
log_source=simcore_sdk.node_ports_common.filemanager:_upload_path(426) | log_uid=None | log_oec=None| log_msg=The upload failed with an unexpected error:
Traceback (most recent call last):
File ""/home/scu/.venv/lib/python3.11/site-packages/simcore_sdk/node_ports_common/filemanager.py"", line 410, in _upload_path
e_tag, upload_links = await _upload_to_s3(
^^^^^^^^^^^^^^^^^^^^
File ""/home/scu/.venv/lib/python3.11/site-packages/simcore_sdk/node_ports_common/filemanager.py"", line 468, in _upload_to_s3
await r_clone.sync_local_to_s3(
File ""/home/scu/.venv/lib/python3.11/site-packages/simcore_sdk/node_ports_common/r_clone.py"", line 264, in sync_local_to_s3
await _sync_sources(
File ""/home/scu/.venv/lib/python3.11/site-packages/simcore_sdk/node_ports_common/r_clone.py"", line 188, in _sync_sources
folder_size = await _get_folder_size(
^^^^^^^^^^^^^^^^^^^^^^^
File ""/home/scu/.venv/lib/python3.11/site-packages/simcore_sdk/node_ports_common/r_clone.py"", line 164, in _get_folder_size
result = await _async_r_clone_command(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File ""/home/scu/.venv/lib/python3.11/site-packages/simcore_sdk/node_ports_common/r_clone.py"", line 102, in _async_r_clone_command
raise RCloneFailedError(
simcore_sdk.node_ports_common.r_clone.RCloneFailedError: Command rclone --config /tmp/tmprezhzs0_ size /dy-volumes/home/smu/work/workspace --json --links finished with exit code=6:
2025/02/03 10:21:14 ERROR : .Trash-8005: failed to open directory "".Trash-8005"": open /dy-volumes/home/smu/work/workspace/.Trash-8005: permission denied
{""count"":37,""bytes"":16934799989,""sizeless"":0}
Potential solutions:
- Ask the user whether it is okay to "delete" these files. If they say YES, these files can be ignored during upload to S3 via RClone.
- The sidecar can have more privileges to access files that it previously couldn't. Therefore, the sidecar would be able to change the permissions so it can upload them via RClone.