dokan-dev / dokany

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

FUSE mirror: Hangs when navigating recursively in Explorer #357

Open Rondom opened 7 years ago

Rondom commented 7 years ago

Environment

Description

  1. Run Cygwin as Admin and run Cygwin mirror to mirror to M:
  2. In the explorer, navigate to M:\cygdrive\m\cygdrive (one by one, by double-clicking each folder in the right pane of the explorer Window

Problem: Explorer will hang for a very long time at step 2 until we get a timeout from the Dokan side. Then after dismissing the error from the explorer, one can try again and navigate to M:\cygdrive\m\cygdrive successfully. But then if one wants to navigate further, it hangs again. Even worse, this time the Explorer process will crash :cry:

Logs

fuse_recursive_browsing.txt

Liryna commented 7 years ago

Hi @Rondom ,

Is there a flood of request made ? or do you think there is a deadlock somewhere ?

Rondom commented 7 years ago

This might be related to something else. Please ignore this for now and let me investigate more. UPDATE: The behaviour described below seems to be issue #434. Let's wait until that one is fixed.

I have just tested this on Win 2016 Same behaviour.

  1. Manually navigating (as described in the issue description)
  2. Entering the path M:\cygdrive\m\cygdrive\m into the Explorer's address bar (Ctrl+L)
  3. PowerShell

    cd M:\cygdrive\m\cygdrive
    cd .\M
    dir

As you suspected, there is a flood of requests to individual files in the root of M:, for example

ReadFile: \Cygwin.ico from 155648 len 4096

My suspicion is that this has to do with the . and .. directory entries and how they are interpreted.

Rondom commented 7 years ago

I can still reproduce this.