-
Notifications
You must be signed in to change notification settings - Fork 669
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make insufficient storage errors visible without attempting too frequent uploads #5537
Comments
Okay, so what do we want to happen if the server has insufficient storage? The obvious path would be to trust the quota the server reports and prohibit uploads that would exceed the quota and make the whole sync fail with a "Insufficent storage" normal error if that happens. That means that the client would need to have a model of "free server disk space" that's kept up to date during the sync process. It also means we need to update quota regularly from the server even if the settings dialog is not shown (or do it before the sync?). |
@ckamm +1 to being reactive to the quota, that would solve collateral problems like: #5346 (comment) (changes in user's quota) |
@SamuAlfageme Actually, using quota changes to trigger syncs is not part of this commit yet. To do that, we'd need to check quota regularly, even if the settings dialog is not visible. We'd also need to track that there are files that couldn't be synced due to quota limitations. It goes beyond what I wanted to accomplish here. |
* Run a Propfind to determine the available quota before each sync run. * Keep the available quota up to date with each upload and delete job. * Don't start upload jobs if there's not enough available space. * If we (unexpectedly) receive a 507 Insufficent Storage error, adjust the expectation of available remote space downwards.
Unfinished pull request: #5552 Current status: We can have different quotas per folder and currenty don't track them. Fully addressing this needs significantly more work. |
Hello, I understand the problem. You can have your own folder and a share from another user. But if one account is full, you can't upload to that folder. The client does only see the sum and thinks, that he can upload. So far, so good. Maybe we can realize a solution in 2 steps?
BTW... step 1 can stay active too, even when #2 is realized... Just my proposal to this issue. |
@DeepDiver1975 @michaelstingl and me spoke about this in detail. Summary:
My main suggestion:
An alternate path that's more costly but would also fix the issue:
In addition I'm in the process of improving error display and messaging for these kind of errors in the client. I might also add logic to not retry larger files in the same directory once a 507 has been seen. |
It now produces a summary error message indicating the problem. Adjust blacklist database table to contain 'errorCategory'. This is useful for two things: - Reestablishing summary messages based on blacklisted errors. For example if we don't retry a 507ed file, we still want to show the message about space on the server - Selectively wiping the blacklist: When we have ui for something like "I deleted some files, please retry all files now!", we want to delete all blacklist entries of a specific category only.
Since these errors are blacklisted, it can take up to 24h to retry items that had a 507 error for a while. This way users can intervene and cause an upload attempt immediately.
It now produces a summary error message indicating the problem. Adjust blacklist database table to contain 'errorCategory'. This is useful for two things: - Reestablishing summary messages based on blacklisted errors. For example if we don't retry a 507ed file, we still want to show the message about space on the server - Selectively wiping the blacklist: When we have ui for something like "I deleted some files, please retry all files now!", we want to delete all blacklist entries of a specific category only.
Since these errors are blacklisted, it can take up to 24h to retry items that had a 507 error for a while. This way users can intervene and cause an upload attempt immediately.
The "make 507 errros visible" part is addressed by #5890. It also gives users the ability to say "retry now" when they have solved the problem. |
The PR #5892 skips uploads that would clearly lead to more 507s. It doesn't change the basic approach. |
When we see a 507 error, assume that quota is < uploaded size.
When we see a 507 error, assume that quota is < uploaded size.
I think the best approach to avoiding excessive 507 entries in the server error log is to not put them there. See #5537 (comment) . I'd start on a client-side avoidance strategy only if it's strictly necessary. |
When we see a 507 error, assume that quota is < uploaded size.
I assume this is good now. |
This is a follow up to #5346 and owncloud/enterprise#1831.
Before 2.3, 507 Insufficent Storage errors used to be blacklisted. That had the positive effect of making the client not reattempt the upload very frequently. But it also hid the error and sometimes users weren't even aware that there was a storage problem.
For 2.3 we removed the blacklisting. That made the error visible, but lead to too-frequent uploads.
The behavior of the client in situations with insufficient storage space on the server needs to be adjusted. We want users to become aware of the problem while not attempting too many uploads that have a high likelihood of failure.
The text was updated successfully, but these errors were encountered: