+[TC8.51ß1] Recursion in <Alt+F10>,<F2> (SYMLINK

Bug reports will be moved here when the described bug has been fixed

Moderators: Hacker, petermad, Stefan2, white

Post Reply
User avatar
HolgerK
Power Member
Power Member
Posts: 5409
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

+[TC8.51ß1] Recursion in <Alt+F10>,<F2> (SYMLINK

Post by *HolgerK »

After pressing <Alt+F10>,<F2> i was wondering why the dialog counts directories above 300.000 (I remember that my system drives has only about 300.000 files and i usually store more than one file per folder :) ).

That was the point i pressed <Esc>:arrow:

Code: Select all

---------------------------
Total Commander 8.51ß1
---------------------------
Access violation.
Access violation
Windows 7 SP1 6.1 (Build 7601)

Please report this error to the Author, with a description
of what you were doing when this error occurred!

Stack trace (x64):450C33
873A11 7797B655 
Press Ctrl+C to copy this report!
Continue execution?
---------------------------
Yes   No   
---------------------------
Continue execution was not possible.
The counting dialog did not close.
The process must be killed.

After a short investigation i found the reason in a symbolic directory link i've created some time before from the commandline ("mklink /D: drive C:\")
output from dir /a wrote: Directory of C:\Holger\Test

2014-01-05 23:49 <DIR> .
2014-01-05 23:49 <DIR> ..
2013-12-24 11:55 138 descript.ion
2013-12-22 20:29 <SYMLINKD> drive [c:\]
pointing to the root of the system drive.

As the search (<Alt+F7>) and branch view <Ctrl+B> does not follow these kind of links, it would be nice if the <Alt+F10> Tree also could detect and prevent such recursions.

Kind regards
Holger
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50541
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

OK, I will add support for IgnoreLinks, and will add also the recursive link detection.
Author of Total Commander
https://www.ghisler.com
User avatar
HolgerK
Power Member
Power Member
Posts: 5409
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

05.03.14 Fixed: Alt+F10 tree, rescan with F2: Ignore recursive links, and do not follow links at all when IgnoreLinks=8 (or sum containing 8 ) (32/64)
Fix confirmed with TC851b1(x86/x64) on Windows 7 x64.

No more recursion and "IgnoreLinks=8" seems to work fine (about 10 percent less directories in treeinfoC.wc).

Theres is one point (no problem for me) but i think i should mention this:
The following link was resolved in Alt-F10 tree (TC-851b1):
Directory of C:\Users

2013-08-06 07:08 <DIR> .
2013-08-06 07:08 <DIR> ..
2009-07-14 06:08 <SYMLINKD> All Users [C:\ProgramData]
meaning that TC851b1 shows the sub folder of "C:\ProgramData\" as children of "C:\Users\All Users": ->

Code: Select all

[Users]
[Users\All Users]
[Users\All Users\Adobe]
[Users\All Users\Adobe\Acrobat]
...
The recursion detection in TC851b2 seems to detect in this case a recursion (also there is actual no recursion) and hides this subfolders: ->

Code: Select all

[Users]
[Users\All Users]
[Users\Default]
[Users\Default\AppData]
...
No problem for me (I know for what this hidden system link is good for) but i hope that no one was getting used to use this compatibility links for navigation.

Kind regards
Holger

Edit:
Forget my remarks about "C:\Users\All Users".
My fault. :oops:
I forgot to remove "IgnoreLinks=8" from wincmd.ini.
The recursion detection for this link is okay with "IgnoreLinks=0" and the tree shows the same subfolders as in the previous version.
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50541
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

C:\Users\All Users -> C:\ProgramData
is not a recursive link. A recursive link is one where the same directory will be re-visited sooner or later, e.g.
C:\Users\All Users -> C:\
or
C:\Users\All Users -> C:\Users

resulting in infinite loops.
Author of Total Commander
https://www.ghisler.com
Post Reply