I am getting the following error when using Eio.Path.load
:
Fatal error: exception Eio.Io Fs Permission_denied Unix_error (Invalid cross-device link, "openat2", ""),
examining <cwd:./trees/index.tree>
As far as I can tell, the file does exist:
let () = List.iter
(fun p -> Eio.traceln "%s" p)
Eio.Path.(read_dir (forest.env#cwd / "trees"));
+index.tree
This is quite confusing. First, the behavior is unexpected as it seems that I am able to verify that the file exists, and the error does not really indicate what I can do to fix it (although this is not an issue with the design of Eio itself).
The ./
in the beginning of the path does not seem to be relevant, the following code also works:
let () = List.iter
(fun p -> Eio.traceln "%s" p)
Eio.Path.(read_dir (forest.env#cwd / "./trees"));
I am running this executable in a cram test, but the relevant dependencies are specified in the dune file:
(cram
(applies_to :whole_subtree)
(deps
%{bin:forester}
(glob_files_rec ./forest/*)))
If necessary, I’ll try create a minimal reproduction. This issue does not pertain here as I am not using open_dir
anywhere.
Thanks!