Skip to content
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

Closed
lokkju opened this issue May 2, 2017 · 9 comments
Closed

nobrl flag on volume mounts causes silent errors #694

lokkju opened this issue May 2, 2017 · 9 comments

Comments

@lokkju
Copy link

lokkju commented May 2, 2017

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?

@friism
Copy link

friism commented May 2, 2017

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?

@lokkju
Copy link
Author

lokkju commented May 3, 2017

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.

@friism
Copy link

friism commented May 3, 2017

I agree that it should be documented, cc @londoncalling.

@lokkju can you use a named volume? docker volume create. The would be Linux-only.

Michael

@lokkju
Copy link
Author

lokkju commented May 3, 2017

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?

@friism
Copy link

friism commented May 3, 2017

No, those Linux volumes are not easily accessible from the Windows host.

@Andy2244
Copy link

Andy2244 commented Dec 6, 2017

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?
The bigger problem is that even using volumes + lcow results in i/o errors, so there is no fix atm.

@Elehiggle
Copy link

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.

@docker-robott
Copy link
Collaborator

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale comment.
Stale issues will be closed after an additional 30d of inactivity.

Prevent issues from auto-closing with an /lifecycle frozen comment.

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.
/lifecycle stale

@docker-robott
Copy link
Collaborator

Closed issues are locked after 30 days of inactivity.
This helps our team focus on active issues.

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.
/lifecycle locked

@docker docker locked and limited conversation to collaborators Jun 21, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

5 participants