Quantcast
Channel: OCaml - Topics tagged dune
Viewing all articles
Browse latest Browse all 521

Invalid cross-device link when using Eio.Path.load

$
0
0

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!

6 posts - 2 participants

Read full topic


Viewing all articles
Browse latest Browse all 521

Trending Articles