Describe the bug
The GV client can enter a state where it repeatedly attempts to download a file without having the necessary permissions to write it, resulting in excessive API calls and potential performance issues.
To Reproduce
Steps to reproduce the behavior:
Start a download of a large file (e.g., 77GB) using the GV client.
Ensure that the file system has a write permission issue (e.g., file lock or insufficient storage).
Observe the client as it attempts to download the file.
Notice that the client repeatedly hits the API endpoint multiple times a minute without successfully writing the file.
Expected behavior
The client should stop attempting to download the file when it encounters a write permission issue or file lock, rather than continuously retrying and causing unnecessary API calls.
Additional context
Suggestions:
If you run into a IO issue on the client side, stop. The includes but is not limited to access issues and storage space limitations. Continuing to try is a waste of effort, and will simply cause the same issue to happen over and over.
Get a file lock before you start downloading. No reason to even reach out to the API if you're not going to be able to do anything with the data when you download it.
Surface the error is a much more obvious way. In this case, I knew there was a problem because of my discord alerts. But if I didn't have that, neither myself nor the end user would have known anything was awry. It's quite likely the error would have recurred multiple times a minute over many days.
So would a targeted query for repeatedly IO errors be the solution here? I said “repeatedly” because it can happen that the file is only blocked for a short time for various reasons.
Describe the bug
The GV client can enter a state where it repeatedly attempts to download a file without having the necessary permissions to write it, resulting in excessive API calls and potential performance issues.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The client should stop attempting to download the file when it encounters a write permission issue or file lock, rather than continuously retrying and causing unnecessary API calls.
Additional context
Suggestions: