-
Notifications
You must be signed in to change notification settings - Fork 7.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
Open leveldb failed IO error: /XX/XX/XX invalid argument #281
Comments
You may want to try asking on the leveldb mailing list as well. |
I don't think you should run leveldb on cifs. There may be many filesystem issue there, like fsync, performance, symbol link. |
I saw similar issue in VirtualBox in shared folder. Maybe it is relevant. |
Having the same issue. Trying to run a Docker container which uses leveldb internally. I used a volume which connects a folder in the container to one on my host OS.
Might be worth noting that running Docker on windows requires the Docker Quickstart Terminal. Which in turn creates shared folders so the containers can access them. Setup |
Windows does not permit memory-mapping of files on network shares, so I don't think this is something that will ever work - memory-mapping seems pretty fundamental to the architecture of leveldb. VMs such as VirtualBox and the windows Docker host (which uses a Linux VM, unlike docker on Linux which is not a VM) expose the host drives as CIFS shares. |
@adam-azarchs leveldb has no requirement for memory mapping and it is entirely possible to use an Env that does no mapped file I/O. I think the real problem with network shares is file locking which leveldb relies on to ensure exclusive database access. This either does not work, or can be problematic depending on the platform. |
OK, my mistake then. I know it's used in the posix env, but hadn't paid enough attention to the fallback options. But yes, support for file locking on network shares (including |
Why is this closed? Does LevelDB officially not work on CIFS? |
You can write your own Env subclass that adds supports for special cases like CIFS. We don't plan to implement more complex locking in the Env implementations that ship with LevelDB. |
hi, I met Invalid argument when I use leveldb on the cifs file system, could you please help me? thanks
I mount a cifs path on my linux machine, and then run my leveldb program, and the leveldb open failed with "Open leveldb fialed IO error: /XX/XX/XX Invalid argument" and the path is the cifs path.
Is the leveldb did not support cifs file system? looking forward your reply!
In addition: I just do leveldb::db::Open in the code, no other operator. Thanks!
BTW: after confirm, the IO error report from function SyncDirIfManifest env_posix.cc, when do fsync(fd), the error is reported.
The text was updated successfully, but these errors were encountered: