-
Notifications
You must be signed in to change notification settings - Fork 259
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
The hcsshim on Windows 10 1903 always fails to build Docker image #624
Comments
@jhowardmsft @jterry75 @jstarks Is this repo active? This issue has been 6 days without any reply. |
I'm also getting this error since upgrading my machine to 1903 when trying to build any dockerfile (that I've tried so far). It seems to get to the first config step and then fail. |
Was anyone able to fix this? I'm getting it as well. |
/cc @ddebroy |
Just updated my Win 10 to 1903. Seeing the same issue. |
got the same issue on win10 release 1903 when trying to copy content from a container to the file system:
|
Guys, please reply/response soon. Please confirm, as this issue is now aged more than 3 weeks.... 😞 As for me, I think I'm going to rollback my Windows to be 1809 and I won't update to 1903 to build any docker container on Windows 10 1903 until this issue is solved, and this is quite a showstopper for me and my teams, including other folks that have experienced this issue too. |
After debugging for a few hours I stumbled upon a call to AttachVirtualDisk which is used to mount the images. |
After upgrading to 1903, I couldn't build anything. The only thing that fixed it was removing the |
@antonkhelou that's |
Oh, I see a comment in moby/moby#36831 (comment) If you have a different storage location configured, could you try if things work if you disable Windows defender, or exclude the location? https://support.microsoft.com/en-us/help/4028485/windows-10-add-an-exclusion-to-windows-security |
I'm using the default storage location, and not using |
This is not an hcsshim issue. I'm closing this. See docker/for-win#3884 (comment) |
how to use it? |
First you should compile the program. I created a c++ console application on Visual Studio 2015 but generally any c compiler that targets Win32 should work. |
@giniyat202 should i compile it again after windows update ? now it is windows 10 1903(18362.418) |
@lyling I have just updated it for version 10.0.18362.175 and it should work as usual once you recompile it |
Looks like regression is also tracked in #708, and a workaround has been merged in #718 Work is in progress to get that workaround merged into the Docker codebase (see moby/moby#40128) |
@giniyat202 you have deleted the simple program ???? |
|
@giniyat202 , i get the code and i see you do an update for 418. it works great. thank you so much. |
hello, I compiled simple-program using MinGW-w64.
|
Thanks! > lyling I used command prompt by administrator and failed. |
@giniyat202 Any insight on how I can migrate this patch to work for 18362.449? I've noticed that you updated the |
I use x64dbg for that.
I will update my code once I receive the update (Windows update didn't offer it for some reason) |
@giniyat202 Thank you! Turns out that your script still works with 18362.449, and my issue was just user error. Assuming Microsoft doesn't fix anytime soon, these instructions will be very handy for the next breaking update 👍 |
@giniyat202 I'm trying to update the patch for 18363.449 but I'm having problems following your instructions. After opening vmcompute.dll, the Symbols tab doesn't show vmcompute.dll. The left panel shows dllloader64_3158.exe, apphelp.dll, msvcp_win.dll, ucrtbase.dll, gdi32full.dll, kernelbase.dll, win32u.dll, gdi32.dll, user32.dll, kernel32.dll and ntdll.dll. How do I download symbols for vmcompute.dll? |
You might have set your debugger to stop at system breakpoint. Try to resume the program (F9) and see if it becomes visible. |
@giniyat202 thanks for your help, I managed to figure it out now. It turns out that the check_integrity_bytes and check_integrity_offset for 18363.449 is identical to 18362.418. Just to expand on your instructions for those of us who are not x64dbg experts, 2 - If vmcompute.dll doesn't appear in the modules list then keep pressing F9 until vmcompute.dll appears. 5 - In the References tab, double click on each reference to jump to the call in the CPU tab, then scroll up 3 lines and check if the preceding 3 instructions are "xor r8d,r8d", "mov edx,376" and "mov rcx,qword ptr ss:[rbp-58]" |
After all this, it turns out that I haven't been reading the Docker error message correctly. My hcsshim error is 0x57 rather than 0x1 so this patch isn't applicable to my case. Doh! |
do you have |
I didn't have storage-opts set at all in my daemon.json. I also tried with "storage-opts": [ "size=20479M" ] but still no luck so I guess I just have to wait for Microsoft to fix the bug. |
Using the patch with storage-opt NOT working; I did try the patch but from error code hcsshim::PrepareLayer - failed failed in Win32: The parameter is incorrect. (0x01) to hcsshim::PrepareLayer - failed failed in Win32: The parameter is incorrect. (0x57) without the storage-opt setting, docker build works fine! (https://github.com/imphasing/dockerPatcher) @giniyat202 windows version 1903 (18362.418) |
0x57 is well documented in: #708 has been patched in hcsshim with a work around already for windows 1903. The work around being merged into docker can be found in terms of progress at: moby/moby#40128 once merged in a new release will have to be made. 0x01 error has also already been patched and merged: moby/moby#39679 you will just need a binary newer than that for that fix (or wait for the backport release docker-archive/engine#314 binaries). |
Hi guys! After ensuring these steps:
Now I have successful Docker build! I have this configuration:
Here's my Docker about box: I have tried to apply the suggested patch from @giniyat202 , but the patch didn't work for me. NOTES:
Feel free to tell me if my suggestion doesn't work for some or all of you. |
I've just updated Windows to 18363.476 and I am now able to build Windows images without setting "storage-opts": [ "size=20G" ] Edit... actually, no. "docker-compose build" still fails with 0x57 but "docker build ." is able to build a Windows image. So my workaround for "docker-compose build" is "docker build -t ." to build my Windows image first, then run "docker-compose build" which will successfully use docker-compose.yml to create my container. |
deleting/uninstalling online storage desktop (such as Box, DropBox) will solve the problem @El-Gor-do |
@bplasmeijer I don't use Box or DropBox but I found that uninstalling OneDrive (which comes preinstalled with Windows 10) fixed the 0x57 error when using docker-compose. |
Looks like I spoke too soon, After uninstalling OneDrive then I was able to docker-compose but after rebooting, 0x57 occurs again despite no longer having OneDrive installed. |
Hello, Docker Engine 19.03.5 Configuration file: I have always the same error with or without "storage-opts" and also when using default location. Can You help me ? Thanks. João |
Windows just did an update and laid down a new copy of this driver.
|
Running on Windows |
Hi, I'm on Windows 10 20H2, have run windows update and have the latest docker (4.1.1) The error I get seems the same. I don't know what to do with this check integrity error from the C++ app so bit lost what i can do now. Sending build context to Docker daemon 5.632kB thanks |
Problem still here
Is there any fix? dockerd patcher cannot work because it doesn't find vmcompute.dll. |
Hi, I don't know why that doesn't work with the 376 value and that must be replace by another one but great job |
After I have updated my machine from Windows 10 1809 to 1903, I always experiencing errors when doing image build.
The error always shows that the problem is caused by hcsshim:
This issue is always reproducible on Windows 10 1903, and on previous version of Windows 10 it doesn't happen. I have tested on other machines that have WIndows 10 1803 and Windows 10 1809, and using the same Docker for Windows Desktop (2.0.0.3), the image build is always finished/done successfully.
This has been reported before on Docker for Windows: docker/for-win#3884 especially this comment and the next comments after:
docker/for-win#3884 (comment)
The text was updated successfully, but these errors were encountered: