-
Notifications
You must be signed in to change notification settings - Fork 120
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
file corruption virtioFS and gRPC bind mount 4.36.0 #7494
Comments
I got the same issue with 4.36.0. I did a downgrade to 4.35.1 and I'm still able to reproduce the issue with the steps mentioned above. Downgrading to 4.34.3 (170107) appears to be a successful workaround for now. |
This comment has been minimized.
This comment has been minimized.
Thanks, I reverted back to 4.32 my previous version, I just assumed this was introduced in 4.36. It's a show stopper for my workflow. |
@ltd I notice you're bind-mounting the root of the internal helper VM and accessing files via the
Could you describe the use-case you have for the |
@djs55 , I'm taking multiple paths on the command line as arguments, it's way more straight forward to access them under host_mnt, rather than have to make a mount for each one. At the time of running, I don't even know which args are paths, and the paths point to files or directories. |
Thanks for the response. One of the goals of Docker Desktop is to behave as similarly as possible to "native" I think the phenomenon you observe can be explained by
The only solution I can think of is to make Docker aware of the "important" directories whose contents should be monitored for changes, and add these as We also recommend to avoid using If possible I recommend avoiding |
@djs55, thanks for the explanation. |
Hello, just to confirm the issue. A downgrade to 4.34.3 fixed the problem. |
Description
File is corrupted on successive bind mounts
Reproduce
#virtiofs
mac> FILEPATH=$PWD/f
mac> echo "abc" > f
mac> docker run --rm -it -v /:/foo alpine cat /foo/host_mnt/$FILEPATH
abc
mac> echo "123abc" > f
mac> docker run --rm -it -v /:/foo alpine cat /foo/host_mnt/$FILEPATH
123a
#gRPC Fuse
mac> FILEPATH=$PWD/f
mac> echo "abc" > f
mac> docker run --rm -it -v /:/foo alpine cat /foo/host_mnt/$FILEPATH
abc
mac> echo "123abc" > f
mac> docker run --rm -it -v /:/foo alpine cat /foo/host_mnt/$FILEPATH
abc
Expected behavior
the file should contain 123abc inside the container
docker version
Client: Version: 27.3.1 API version: 1.47 Go version: go1.22.7 Git commit: ce12230 Built: Fri Sep 20 11:38:18 2024 OS/Arch: darwin/arm64 Context: desktop-linux Server: Docker Desktop 4.36.0 (175267) Engine: Version: 27.3.1 API version: 1.47 (minimum version 1.24) Go version: go1.22.7 Git commit: 41ca978 Built: Fri Sep 20 11:41:19 2024 OS/Arch: linux/arm64 Experimental: false containerd: Version: 1.7.21 GitCommit: 472731909fa34bd7bc9c087e4c27943f9835f111 runc: Version: 1.1.13 GitCommit: v1.1.13-0-g58aa920 docker-init: Version: 0.19.0 GitCommit: de40ad0
docker info
Diagnostics ID
9BC97F9B-3CBB-432A-8F9F-8228CACF15D1/20241127133547
Additional Info
No response
The text was updated successfully, but these errors were encountered: