Freezes if tab is opened with unreachable UNC path

On my notebook I often run in problems if there are some tabs opened in the background pointing to unreachable UNC pathes.

How to reproduce:

  1. Open 2-3 folders of a Windows file server as tabs and put them in the background (open a tab in the foreground pointing to a local folder).
  2. Exit DOpus
  3. Disconnect the network (make the network pathes unreachable).
  4. Start DOpus (the background tabs --- pointing to the UNC locations --- will be restored).
  5. Keep the network tabs untouched in the background and start to work with one or more foreground tabs.

On my machine DOpus isn't useable anymore sind it freezes on several very common operations (e.g. reading a textfile to the file viewer etc.).

Enabling the option "prevent network folders from automatically loading" doesn't help if you don't exit DOpus (step 2 isn't actually needed). I just have to pull out the ethernet cable to let DOpus start freezing when working with local tabs because there are some invalid network tabs in the background. It's even not possible to close these background tabs without freezes.

Sometimes I end up with a running DOpus Lister having multiple tabs opened and it's difficult to figure out, which tabs need to be closed to get rid of the freezes.

For example in this screenshot I have to close two visible tabs (left and right circle) but one further that isn't visible (center circle) to get DOpus up and running again.


Leo/Jon is there any option that may fix this behaviour?

Switching to the basic pathfield (without breadcrumbs) can help, but if a drive is completely unresponsive then it's likely to still block an API call somewhere and force Opus to wait for the operating system to timeout and return control to it, so you'll probably still run into problems. Windows does not handle unreachable network drives well.

If I couldn't avoid leaving lots of tabs open for machines which I then disconnected from the network, I would probably close the window (or leave the window and open a new one, if the window is tied up for a while).

Actually DOpus does not freeze immediately when disconnecting the ethernet plug. If I disconnect the ethernet cable and come to back to DOpus 5 minutes later everything is still alive until I made some interactions (e.g. on the current tab showing a local drive). Then DOpus starts periodically freezing.

Would it be possible for DOpus to detect an unresponsible network drive and automatically switch such an unresponsibe tab to the lazy loading mode (which is only used on startup so far) to prevent DOpus from further freezing?

In this case DOpus will only freeze once and then the tab is switched to lazy loading to let the user decide whether he wants to give the drive another try. Maybe automatically if the tab actually comes to the foreground again.

Such a behaviour may prevent DOpus from freezing multiple times in a sequence due to the same reason.

Not really. The only way to know a drive is unreachable is to ask Windows to access it and then, after a lengthy timeout, get back an error. (There is a "disconnected" state for network drives, but it is completely unreliable and will say offline drives are online and vice versa often enough that it is not useful here.)

Windows assumes* that the network and the servers and shares on it will stay there. Network shares in Windows were not designed for computers which hop on and off different networks and have never been updated to correctly handle them. It's a problem of the OS, not specific to Opus.

(*The SMB/UNC/filesystem parts of Windows, that is. Other parts of Windows handle things better in their respective areas.)

Not really. The only way to know a drive is unreachable is to ask Windows to access it and then, after a lengthy timeout, get back an error. (There is a "disconnected" state for network drives, but it is completely unreliable and will say offline drives are online and vice versa often enough that it is not useful here.)[/quote]

I was a little bit ambiguous in my explanation. Obiviously there are thousands of reasons why a tab may be blocking due to any kind of API call. Thus my idea was not to directly check drives for reachibility. Instead DOpus may have something like a multithreaded tab-watch-daemon that "pings" each tab (e.g. once a second) to indirectly find out whether a tab has a problem due to an unresponsive drive or not. If such an unresponsive tab was found it is switched to lazy-loading mode to prevent further freezes.

I don't think that would be practical. (It would take a long time to explain why and I'd rather spend that time improving the program, sorry.)

Issue described here is still present and very annoying.
Devs, did you plan to make any improvement in area of handling network folders?
In my daily work I do a lot of things with remote machines / folders.
Directory Opus during attempt to access unavailable network folder freezes for dozen of seconds and completely no action can be taken.
It is very frustrating. I just bought pro license but this behavior made me very unhappy.
I found few tickets with this issue but in my opinion it is still not resolved.

It should be handled by background process or should be possible to cancel "frozen" tab by pressing ESC (for example).
Freezing whole application is very bad idea.

Also timeout should be configurable.

Please look how it is "resolved" in latest Total Commander. TC freezes for ~3 seconds and after that pressing "ESC" key immediately break further access to unavailable folder.

DO behaviour:

TC behaviour:

Any improvement appreciated!

Much easier said than done, but we'll take another look some time in the new year.

Freezing whole application is very bad idea.

It should only block one window at most, for 30 seconds at most. Opening another window should still work if needed. Still not ideal, of course, but the whole program doesn't become inaccessible, or shouldn't at least.

Also timeout should be configurable.

The remote RPC/SMB timeout is a Windows setting.

Hi Leo
I know that it isn't simple. I have tested many file managers. Almost all of them handle network folders bad or very bad.
Total Commander (in latest version) is probably the best one. Previously it wasn't better from all other.
Also freeware Double Commander made big step forward in latest alpha version (0.9) - previous versions were very bad. On their web forum there is few posts about "how it is made".

But these two examples show, that it is possible to handle this scenario in user-friendly way.

I hope DO (which is definitely the best file manager on the market) will also handle this scenario more "user friendly".

Did you know if it is possible to change this timeout? Maybe some changes in windows registry?

Hello All.
In meanwhile I would ask if there is any detail log / trace file produced by DOpus. Where I can check what DOpus is doing and maybe this will help me with finding issue matter?

You can use Process Monitor to log and investigate which filesystem calls programs are making, with Opus or any other tools.

To answer your earlier question about timeouts, I'm not actually sure if you can modify them. There may be a registry setting in the OS but I don't know if changing it would be wise in terms of other things it might affect.