-
Notifications
You must be signed in to change notification settings - Fork 283
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
nobrl flag on volume mounts causes silent errors #694
Comments
We don't have a viable alternative to CIFS at the moment even though it has a number of drawbacks. Docker for Windows is a development tool. Is the current setting impeding using Docker for Windows for development purposes? |
At the moment, it is blocking me from using sqlite db files reliably in my host mounted config folders; essentially the nobrl flag addition in #11 hid the problem instead of solving it. Since I often use sqlite in development, it's a real problem. Each time a container doesn't exit cleanly, or two process attempt to use the same file, the risk of corruption occurs. At the very least, it should be very well documented that any functionality that relies on file locking will be broken on host volumes. Preferably, it should be a configurable option on a per container basis. Of course, the best would be not using CIFS, but I understand that is an large undertaking. |
I agree that it should be documented, cc @londoncalling. @lokkju can you use a named volume? Michael |
Oh, interesting; so volume create, creates a location in the MobyLinuxVM? That might work. Is there any easy way to access that from the host, as well? |
No, those Linux volumes are not easily accessible from the Windows host. |
I suspect my #1385 has a similar problem with sqlite+wal under headphones, but with the new lcow. What is lcow using internally, is it also cifs? |
It took me 4 days to come here and figure out what is causing issues with my containers. You can use SMB with vers=1.0, that will work with SQlite databases. But unfortunately it has many other drawbacks and issues (POSIX leaks, I guess due to locking issues as well). I'll use SMBv3 now with the nobrl flag, but will create an extra mount just for SickRage. With backups it should be fine. |
Issues go stale after 90d of inactivity. Prevent issues from auto-closing with an If this issue is safe to close now please do so. Send feedback to Docker Community Slack channels #docker-for-mac or #docker-for-windows. |
Closed issues are locked after 30 days of inactivity. If you have found a problem that seems similar to this, please open a new issue. Send feedback to Docker Community Slack channels #docker-for-mac or #docker-for-windows. |
in #11, the nobrl flag was added to the mount options, causing lock requests to not be send to the CIFS server. This causes silent corruption in sqlite when using journaling. While nobrl may be a valid solution in some cases, having it as a non-documented, non-configurable, mount flag provides the illusion of locking working, without any warning to the user that their applications could silently fail if they need file locking, mmap, etc.
I'm not sure what the solution is, other than perhaps not using CIFS for access to the underlying file system. Has there been any consideration of a direct-access local volume driver?
The text was updated successfully, but these errors were encountered: