dokan-dev / dokany

User mode file system library for windows with FUSE Wrapper
http://dokan-dev.github.io
5.21k stars 661 forks source link

Insufficient system resources exist ... #1034

Closed onexzero closed 2 years ago

onexzero commented 2 years ago

Feature request can skip this form. Bug report must complete it. Check List must be 100% match or it will be automatically closed without further discussion. Please remove this line.

Environment

Check List

Description

when i run mirror.exe with 1 work thread and open /close txt files repeatedly "Insufficient system resources exist to complete the requested service" message poped up in notepad.exe.
I tested it many times. it occured every time.

DESKTOP-GT2QA7O.LOG

Logs

Please attach in separate files: mirror output, library logs and kernel logs. In case of BSOD, please attach minidump or dump analyze output.

onexzero commented 2 years ago

I executed mirror like this c:> mirror /d /t 1 /r c:\Temp /l r

Liryna commented 2 years ago

Filesystem are multi thread by design. By spamming file open you are queuing request which some will not have time to be processed and timeout.

This is working as intended.

onexzero commented 2 years ago

Thanks for the quick reply. I know that, but strangely, when the error occurs, it takes more than 15 seconds in getfileinformation when tracking it with Procmon, not at a time when there is a lot of load. This seems a bit odd.

Liryna commented 2 years ago

If it takes 15 second to read all the instances of the text file and then finally get to the moment where getfileinformation request is unstack and executed, there is not much that can be improved.

The single thread option is here for filesystem that are not thread safe but it is clearly not the best solution production wise.

What are you trying to achieve with this test ?

onexzero commented 2 years ago

Trying to use a single working thread is a test for linking with other non-threadsafe modules that I can't handle. The strange thing is that even if I use a single thread, other processes that don't use memory mapped io are fine. For example, ms-office documents work well in single-threaded situations. Only processes like notepad are at issue.

onexzero commented 2 years ago

Incidentally, the text file used in the test is only 110Kbytes, which is not large enough to take 15 seconds to read. I think it happens regardless of size.

onexzero commented 2 years ago

The previously mentioned interface problem with non-threadsafe module has been tested to be solvable by synchronizing Dokan operations. Thanks for the reply.

Liryna commented 2 years ago

Thanks for the feedback