To see if Dokany+Mirror is crazy-solid, I am trying to run GIMP Portable off of a mirror of my C drive.
I can install it (pretty good!), but I can't run it.
Details: Here is the cleanest way I reproduce the problem:
1) Install fresh Windows 8.1 x64 on my test machine and do all Windows updates.
2) Install Visual Studio runtime dlls by going to...
www.microsoft.com/en-US/download/details.aspx?id=40784
... and downloading and running both the x86 and x64 installers.
3) Download the Dokany installer (DokanInstall_0.7.3-RC.exe) and run it.
4) In an admin Command Prompt window, go to...
C:\Program Files\Dokan\DokanLibrary\sample\mirror
… and run...
mirror.exe /r c:\ /l m
4) Download the Portable GIMP installer (GIMPPortable_2.8.14-fix.paf.exe) to the test machine and run it from...
M:\Users\johno\Downloads
Up to here, all is well with the world.
Go to folder...
M:\Users\johno\Downloads\GIMPPortable
… and try to launch GIMPPortable.exe
I get a dialog...
GNU Image Manipulation Program
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
GNU Image Manipulation Program has stopped working
The Event Viewer says Application Error, Event ID 1000, Task Category 100
Of course, the GIMP Portable app works via the C drive. I have tried many variations but I am basically shooting in the dark.
Any idea what I should do/try/report/test/log next?
Is Dokany+Mirror robust enough for this?
I don't want to report it as a bug if I am just doing something stupid or if this is not reproducible by others.
Alternatively, is there another torture test others are using?
For example, you could have
a call to DeleteDirectory, and you check that the directory is
deletable because is empty, so you return success. Then you get a call
to create a file inside it, before you were able to remove the
directory in Cleanup.
Thank you for the feedback Liryna and Alejandro. I just noticed it going here to post, so I have not processed your posts yet.
I am pretty sure there is an intermittent multithreading bug in Dokany+Mirror at job initiation.
Could someone please try to reproduce this erratic behavior?
Setup
Install fio (http://git.kernel.dk/?p=fio.git) (Windows binaries at http://www.bluestop.org/fio/)
Save this 8-line test script next to fio.exe as...
trivial.fio
-=-=-=-=-=-==-=-=-
[global]
ioengine=windowsaio
rw=readwrite
size=1g
directory=C\:\fio
thread=1
[trivial-readwrite-1g]
-=-=-=-=-=-=-=-=-=-=-=-
Note that in the line “directory=C\:\fio”, that first backslash is an intentional escape character.
Tests
Each test I ran either:
Worked: Runs fine without error.
Stopped: Immediately produces the error dialog “fio.exe has stopped working”.
SystemError: Immediately stops with “fio.exe – System Error, The program can't start because *.dll is missing from your computer” where the asterisk was actually a bullet.
Just to make sure it works on the C drive, go to fio.exe on your C drive, and repeatedly run “fio.exe trivial.fio”. My results: Worked x 25 (Worked every time.)
Start Mirror with 1 thread, go to fio.exe on your M drive, and repeatedly run ”fio.exe trivial.fio” again.
My results: Worked x 25
Restart Mirror with default threads, go to fio.exe on your M drive, and repeatedly run ”fio.exe trivial.fio” again.
My results: Worked, Stopped x 2, Worked, Stopped, Worked x 3, Stopped x 3, Worked
Restart Mirror with default threads in debug mode, go to fio.exe on your M drive, and repeatedly run ”fio.exe trivial.fio”.
My results: Stopped, Worked x 11, Stopped (no debug output at all)
Restart Mirror with 9 threads, go to fio.exe on your M drive, and repeatedly run ”fio.exe trivial.fio”.
My Results: SystemError, Stopped, Worked x 5