-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
If a user accepts a federated share from a network which his server cannot reach, the user gets blocked. #23792
Comments
I can't reproduce it, steps I tried with master:
Result: No error message (which could be improved) but server2 stays usable. Everytime I refresh the file list I only see in the owncloud.log:
As soon as I restore server1 the error message is gone and the share become visible. |
@rullzer can you try to reproduce it? Thanks! |
I guess the problem is that it keeps trying to access the network while not finding it, I've seen it having a virtual machine with a server inside (private server) and the public server is our docker server. |
I can't reproduce here at the moment. But I think the issue is that there is no response. So no 200, no 503, no 404 etc. So stuff just hangs. I agree we should solve this but I don't think it is such a big issue. If you do weird setups like this you can expect trouble. I also don't think it is sev2 |
Basically there are three things which happen in the background once you accept a share:
But both http request (1 and 2) should just time out. For 1. the notification will be lost. 2. will be tried again later. Mounting a storage which is not available should result in the error message I posted above and shouldn't block the server. I agree with @rullzer that it might be something related response of the server. But every http request should time out and shouldn't make the complete server useless. |
Tried once more as discussed with @SergioBertolinSG My steps:
same result as here: #23792 (comment) Everything works fine |
Downgrade severity because it is a really special corner case. Added "need info" label because I still couldn't find a way to re-produce it |
Step 4 is not needed. The VM has to be running. The problem is that servers are in different networks, from private to public you can create the share, but not vice versa, same happens with accepting shares and it is not well handled. |
Is this still happening with 9.0.5 ? |
@SergioBertolinSG please retest. |
Still happening in stable9.1. |
I think this is high, because the user gets totally blocked, and the situation doesn't feel so corner, someone can have an oC server in a private network and share using federation to a public server. Perhaps the user doesn't notice that their servers are in different networks and accidentally blocks the user who recieves it. |
Indeed... I can't think of a good solution yet. How long is the user totally blocked ? I'd suspect that after a timeout of a minute or so the connection to the federated share will abort. And then it should cache the fact that it failed somewhere so that it doesn't retry too often. |
Not really, it takes several minutes. Feels like it is totally broken, after successfully login everything goes extremely slow, not usable at all. Also, if you log out and in again it takes those minutes again. |
Ok, thanks for the details. So it means there is indeed a timeout in place, but ownCloud doesn't remember that it failed. Will have to check the "remote status" caching, I seem to remember that we have that... |
Steps to reproduce easily
Everything is very slow. |
This will improve the situation but not enough: #26791 But now I see that even when marked unavailable, there are still code paths that will try to connect to verify if it is actually still unavailable... Need to fix it to respect the 10 minutes buffer. |
Arghh, found it... bypasses the availability wrapper:
That one would go faster if you have memcache enabled because the server status info is stored there. |
The problem is that it connects to the remote server in the storage constructor even though we might not need that storage at all. We need to move that call to be in the |
Okay, I've moved the discover manager call to be in However, note that every 10 minutes the storage will be rechecked so there might be temporary slow downs. |
should work fine on OC 10.0.4: #29314 |
This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
Steps to reproduce:
Having two servers, one accessible via Internet, with public domain called ServerPublic and a server in a private network not accessible from the outside called ServerPrivate do:
Expected behaviour:
An error or warning, since the share is not accesible.
Actual behaviour
User2 gets blocked, the files view gets loading forever and if trying to login with another browser the user cannot login.
Server configuration
Operating system:
Ubuntu 14.04
Web server:
Apache
Database:
MySQL
PHP version:
5.5.9
ownCloud version: (see ownCloud admin page)
{"installed":true,"maintenance":false,"version":"9.0.1.1","versionstring":"9.0.1 RC1","edition":"Enterprise"}
Updated from an older ownCloud or fresh install:
Fresh
The content of config/config.php:
Are you using external storage, if yes which one: local/smb/sftp/...
No
Are you using encryption:
No.
Logs
Client configuration
browser
Chrome, Firefox.
The text was updated successfully, but these errors were encountered: