File find facilities issue
Status: Pre-Alpha
Brought to you by:
salvois
Reported by Nils Labugt:
A:\attrib2 c:*.* /s
strange pause (26 seconds) in the middle of the listing
between (I think)
the following two lines:
a MNP22G21.ICM c:\WINDOWS\SYSTEM\COLOR\MNP22G21.ICM
a DLCNDI.DLL c:\WINDOWS\SYSTEM\DLCNDI.DLL
I have attached the output. During the last 15 or so
seconds of the
pause there were intense head movement. This was
repeatable.
Logged In: YES
user_id=98086
If the issue was also present in 0.0.4, please change the
group to "release 0.0.4". The idea is to isolate bugs
introduced with 0.0.5.
Nils, you may want to monitor this item.
Logged In: YES
user_id=98086
There's a bug in the lfn_find services (I messed the
pointers of the
linked list...) that I was aware of, but ended in the release.
Maybe this can be related to this issue.
Logged In: YES
user_id=1213427
Tested version 0.0.4. Hangs instead of pausing, and at a
differernt place (further down).
Logged In: YES
user_id=98086
I've committed a fix that may be related with the problem
(kernel, JFT layer). Please let me know if it fixes this
issue or has any effect on it.
Logged In: YES
user_id=1213427
No effect at all.
The bug could just as well can be in the attrib utility.
Maybe it is my turn to do debuging...
Note thart attrib does not preserve all (any?) info in the
fd32_fs_lfnfind_t structure for parent directories between
calls (IIRC).
Logged In: YES
user_id=98086
I forgot to ask you if using the new FAT driver has any
effect on this. Thanks.
Logged In: YES
user_id=1213427
No. It is worse if anything, but not repeatable any more.
Logged In: YES
user_id=1213427
Have started debugging. Maybe attrib bug. Reasigned to me.
Logged In: YES
user_id=1213427
I think I have fournd at least part of the problem. From
attrib/dirsrch.h:
#define DIR_FIND_FLAGS FD32_FADIR | FD32_FRDIR |
FD32_FWILDCRD
From attrib/dirsrch.c:
Res = fd32_lfn_findfirst(sd->path, DIR_FIND_FLAGS, fd);
It seams that fd32_lfn_findfirst and fd32_lfn_findnext
returns both ordinary files and directories, despite the
flags. Am I doing someting wrong here?