-
Notifications
You must be signed in to change notification settings - Fork 6.8k
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
Error in vcpkg_download_distfile.cmake renaming temp dir (may be docker-related) #4245
Comments
Hi @rleigh-codelibre, thanks for posting this issue. Does this issue still exist on your machine now? I can't reproduce it. |
Please see this build log which I ran just now to retest. The problem showed up almost immediately. Edit: this used cached docker layers; I'm re-running and will update here once it's completed. Retry failed building python. That's a separate issue. I have now had success with this build but Xalan failed. I'll investigate that further. I've seen the issue with quite a few other packages in addition to xerces; I don't think there's anything specifically wrong with the package, and I suspect Docker might be part of the problem, since I've never encountered it on a Windows virtual machine. I'll continue to investigate. |
Aha, I've reproduced the problem here. You can see the rename bug hits while trying to build the Boost libraries. |
There's a few others having the same error #3399 |
I can also consistently get this to fail as well following a jsoncpp install. As I'm building a new docker image, we are doing a git clone from github, so the following is using HEAD from github:
|
Same problem. See my steps to reproduce in #7997 |
I wonder if vcpkg should always remove both the Of course, it does beg the question of why cross-device links are being created in the first place. I thought the whole point of the overlays was to abstract this away so you got a filesystem which worked as usual despite it being comprised of several layers. Rename operations are hardly atypical, so it's interesting that vcpkg is triggering this condition where other tools are not. |
@rleigh-codelibre can you confirm whether the changes in PR #8032 fix the problem? |
I'll test this tomorrow. |
@rleigh-codelibre ping |
Still testing this, but you can see the results so far here:
So on a positive note, I can't reproduce the original failure with this PR. It does successfully build a large number of packages. On the negative side, a number of packages fail to build which would otherwise build without problems on a native Windows installation, but don't work inside Docker. It might all be related to issues with the windows-filter storage driver. It's not necessarily vcpkg at fault here, but it does represent a significant usability gap with native Windows containers. |
Having same problem, any workaround? |
I have the same trouble inside my Docker environment. The dirty fix can be like that: change file scripts/cmake/vcpkg_build_make.cmake and insert there execute_process(COMMAND sleep 5) after file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}_tmp"). |
Package: xerces-c:x64-windows
Vcpkg version: 0.0.113-nohash
I don't think the issue is really in xerces-c. It happens most frequently when running multiple "vcpkg install" commands in separate docker RUN steps. However, I have also reproduced by hand trying to install xerces-c.
The system is a VMware virtual machine running Windows Server 2016 (MSDN licence), running VS2015 in a docker image. The docker image is created from here and here. Could the filesystem behaviour under docker be part of the problem?
See e.g. this build log
I can't see any problem with the logic in the script; it's failing, but that shouldn't be possible. It should only try to rename the directory if it exists, so this condition should not occur.
The text was updated successfully, but these errors were encountered: