miniwdl icon indicating copy to clipboard operation
miniwdl copied to clipboard

macOS: task input files sporadically fail to mount (zero length)

Open jdidion opened this issue 4 years ago • 8 comments

The attached workflow returns the correct output sometimes and other times does not. In the failure case it is because the input file is not correctly staged in the task's work/ directory - the staged file is empty rather than containing the correct content. When I set --copy-input-files it always works correctly.

The exact command line I use is:

miniwdl run --error-json --copy-input-files -i input.json -p submodule test.wdl

and input.json is:

{"cat_file.in_txt": "data/in.txt", "cat_file.in_int": 1}

failing_test.zip

jdidion avatar Dec 23 '20 17:12 jdidion

@jdidion is this on macOS? Adjusting this setting may help if so https://github.com/chanzuckerberg/miniwdl/issues/145#issuecomment-733435644 -- I am still looking into it

mlin avatar Dec 30 '20 22:12 mlin

Yes it is macOS. Which setting exactly? TMPDIR?

jdidion avatar Dec 30 '20 22:12 jdidion

@jdidion In this direct comment link https://github.com/chanzuckerberg/miniwdl/issues/145#issuecomment-733435644 @tomkinsc reported that disabling this obscure Docker for Mac setting "Use gRPC FUSE for file sharing" improved things for him (though it may not have been exactly the same problem).

The miniwdl unit test suite (which starts up hundreds of containers over various cases) reliably fails on my MacBook due to this problem, even though it's intermittent for any one. I have been meaning to fiddle with that gRPC setting to see if it helps, but haven't gotten to it yet.

mlin avatar Dec 30 '20 23:12 mlin

Got it - I'll try this out when I'm back to work next week.

jdidion avatar Dec 30 '20 23:12 jdidion

I can confirm that disabling this setting, Docker for Mac > Preferences > Experimental Features > Use gRPC for file sharing makes the miniwdl unit test suite work well on my MacBook, while it's busted with that setting on as default.

image (image credit @tomkinsc; cc @lynnlangit)

One can google a variety of issues people have opened with either alternative of that setting, so I suppose we just have to make do with this pitfall for the time being =/

mlin avatar Jan 06 '21 03:01 mlin

Chiming in that I hit this too, and using the "legacy osxfs files sharing" fixed it for me too.

nh13 avatar May 31 '22 23:05 nh13

I ran into this issue using Toil with MiniWDL's Docker task runner. Changing the Docker Desktop file sharing implementation from "gRPC FUSE" to "VirtioFS" seems to have solved it.

adamnovak avatar Jul 20 '23 15:07 adamnovak

I can confirm that disabling this setting, Docker for Mac > Preferences > Experimental Features > Use gRPC for file sharing makes the miniwdl unit test suite work well on my MacBook, while it's busted with that setting on as default.

Just popping in to say that as of more recent versions of Docker, this setting has moved to General, and it seems gRPC FUSE might be the default. gRPC FUSE seems to still problematic as stated above, although in my case I got errors even though I was using a test workflow with no inputs at all. Screenshot 2023-08-11 at 12 50 59 PM

aofarrel avatar Aug 11 '23 19:08 aofarrel