-
Notifications
You must be signed in to change notification settings - Fork 668
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
Do not show disconnected icon when Retry-After
is sent with a 503
#3932
Comments
@butonic are you able to create a client logfile of this case? That would help. |
This would be a reply to what kind of command? PROPFIND? GET? PUT? something else? |
@ogoffart a GET request for a single file. Nothing else. |
@dragotin is this the relevant part?
It actually shows an error :/ |
@butonic Labeled a green ticket but seems neglected... Please assist in helping me understand the urgency here? |
What do you guys think? @dragotin is this reasonable for 2.2? |
Still active, but I think there was already a related mechanism for storages that may be unavailable... |
@butonic can you explain what happens with the current client? If the reply is 503 for a certain file, we try to download it next again, right? What is wrong with that? Well, maybe we blacklist the problem after a couple of retries, but that could be changed for 503. The current architecture makes it very hard to "wait" for a certain time and try again. |
Since the blacklist is time base, we could just blacklist for a given amount of time. |
The use case is that the requested file might need to be retrieved from tabe, which might take 2-10 min. Since this is an expected unavailability for a GET request I think the client should not show an errer icon. Wasn't there some error code that would allow that behavior? I think it was introduced for federated sharing or something. I can also try to send that error code. |
So the current implementation will silently ignore a 503 when accessing a file and just ry to download the file on the next sync? It will not interrupt the current sync but basically just skip the file? No change of the status icon? That would solve this issue and also a few other scenarios I have in mind. |
The current implementation will treat it as an error, put it in the blacklist for 5 seconds. in a later sync (which is much likely more than 5 seconds away) it will try again to sync it, if it fails again, it will be blacklisted for 30 seconds. Then 2.5 minutes, then 15 minutes, then one hour, then 5 hours, then 25 hours (factor 5 each time). I'm saying that from memory, i did not test actual file. So we need to do something here not to show the error, and to blacklist the right amount of time directly. |
@butonic Solved or Next Steps ? |
@butonic is this still needed? Should I add special handling for the Retry-After tag? |
In #6906 this is now instead done by checking if the 503 is for maintenance mode or not. |
Expected behaviour
When the server responds with a
503 Service Unavailable
message that contains aRetry-After: 120
header the client should silently wait 120 seconds before trying the same request again.Actual behaviour
On a 503 the client changes the icon to represent a disconnected state. The Retry-After header is ignored.
Motivation
I am looking into integration with backup systems that will move old files off to a slower medium. The file may be available only after a few minutes. I would like to tell the client to just try again after a while without showing the disconnected icon to users, making them worry something is broken when actually miracles happen in the background to make them happy.
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
The text was updated successfully, but these errors were encountered: