-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
url path for webdav push gets duplicated in dvc versions >=2.9.0 #7288
Comments
@conrad-stork Hello! |
@pared Yes I will try to explain it as accurate as possible. If something missing let me know. Concrete questions would help, because its not clear what you know anyways. We are running a nginx server as a reverse proxy for all our web applications that we run in-house. This nginx server forwards the incoming requests to the web applications that are build in docker containers. The most important part of the nginx config looks the following:
If you need more details regarding the nginx server configuration, please let me know what exactly you need. So every request coming to out server/dvc is redirected to out locally running webdav within a docker container on port "port". Therefore we have set up an apache2 server (default settings except of the vhost) which provides the webdav server for our dvc storing location. The vhost config of the apache2 server is quiet easy:
Pushing now data from somewhere in the network to our server/dvc/Path/To/Location works fine with version 2.8.3. From version on 2.9.0 the push works also fine, but the location on the server gets messed up to server/dvc/Path/To/Location/dvc/Path/To/Location (so everything behind server gets duplicated). For me it looks like at some point where the server location is build (I am not familiar with any part of the code but the path on the server is given relatively and not absolute anymore?) something gets wrong. Might be that the forwarding of the request has something to do with it? Let me know if I can help you somehow, also a short talk might be possible if it makes things easier. Thanks in advance! |
@conrad-stork ok, I've been playing with my own webdav account and it seems you are right, when I switch between different versions, the path on the server (for cache) is different. Investigating... |
did a bit of bisecting and it seems our path change has been the culprit: |
@conrad-stork temporary workaround is to downgrade to |
Did a brief research and the problem is that before 9aec8f1 Lines 116 to 122 in 4175f9f
Before this change we used Lines 73 to 74 in 4175f9f
In 9aec8f1 we introduce webdav-specific implementation: Lines 38 to 41 in 9aec8f1
Before 9aec8f1 we used to provide the whole path to |
Another part is that we don't use any webdav subpaths in our tests, only using root https://github.com/iterative/dvc-webdav/blob/main/dvc_webdav/tests/cloud.py#L11 , hence why we didn't catch it too. Removing |
For the record: @skshetry confirmed that we need to use full urls for webdav, so we need to adjust dvc/fs/webdav.py accordingly. |
Bug Report
Description
We have identified a bug(?) introduced from version 2.8.3 to 2.9.0. When pushing dvc data to a webdav server the path of the url gets duplicated. For example: If we push to webdavs://servername.com/path/to/location it pushes to webdavs://servername.com/path/to/location/path/to/location (creating all folders of the second "path/to/location" on the server). As it works with dvc version 2.8.3 we think that this might be a bug within dvc version 2.9.0 and our setup might not be too interesting for you. However, here is a rough overview of the webdav server setup: We are running an apache2 webdav server as our remote storage for our dvc projects. This webdav server is behind a reverse proxy (nginx).
Reproduce
Using dvc version <=2.8.3 everything works as expected. dvc version >=2.9.0 it does not work anymore.
Expected
Version 2.9.* should work the same as 2.8.*
Environment information
The environment information might not be too interesting, but I can add more information, if needed
Output of
dvc doctor
:$ dvc doctor
version 2.8.3 fails withtin wsl, as reported elsewhere (https://issueexplorer.com/issue/iterative/dvc/7012)
Additional Information (if any):
Hope the report is detailed enough. Will add information if necessary.
The text was updated successfully, but these errors were encountered: