You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by GitBox <gi...@apache.org> on 2021/04/05 17:05:07 UTC

[GitHub] [incubator-nuttx] v01d opened a new issue #3437: MISSING FILES IN NSH 'LS' OF A DIRECTORY

v01d opened a new issue #3437:
URL: https://github.com/apache/incubator-nuttx/issues/3437


   ```
     Description: I have seen cases where (1) long file names are enabled,
                  but (2) a short file name is created like:
   
                    nsh> echo "This is another test" >/mnt/sdcard/another.txt
   
                  But then on subsequent 'ls' operations, the file does not appear:
   
                    nsh> ls -l /mnt/sdcard
   
                  I have determined that the problem is because, for some as-
                  of-yet-unknown reason the short file name is treated as a long
                  file name.  The name then fails the long filename checksum
                  test and is skipped.
   
                  readdir() (and fat_readdir()) is the logic underlying the
                  failure and the problem appears to be something unique to the
                  fat_readdir() implementation.  Why?  Because the file is
                  visible when you put the SD card on a PC and because this
                  works fine:
   
                    nsh> ls -l /mnt/sdcard/another.txt
   
                  The failure does not happen on all short file names.  I do
                  not understand the pattern.  But I have not had the opportunity
                  to dig into this deeply.
     Status:      Open
     Priority:    Perhaps not a problem???  I have analyzed this problem and
                  I am not sure what to do about it.  I am suspected that a
                  fat filesystem was used with a version of NuttX that does
                  not support long file name entries.  Here is the failure
                  scenario:
   
                  1) A file with a long file name is created under Windows.
                  2) Then the file is deleted.  I am not sure if Windows or
                     NuttX deleted the file, but the resulting directory
                     content is not compatible with NuttX with long file
                     name support.
   
                     The file deletion left the full sequence of long
                     file name entries intact but apparently delete only
                     the following short file name entry.  I am thinking
                     that this might have happened because a version of NuttX
                     with only short file name support was used to delete
                     the file.
   
                  3) When a new file with a short file name was created, it
                     re-used the short file name entry that was previously
                     deleted.  This makes the new short file name entry
                     look like a part of the long file name.
   
                  4) When comparing the checksum in the long file name
                     entry with the checksum of the short file name, the
                     checksum fails and the entire directory sequence is
                     ignored by readdir() logic.  This is why the file does
                     not appear in the 'ls'.
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] v01d commented on issue #3437: MISSING FILES IN NSH 'LS' OF A DIRECTORY

Posted by GitBox <gi...@apache.org>.
v01d commented on issue #3437:
URL: https://github.com/apache/incubator-nuttx/issues/3437#issuecomment-815834628


   This was opened twice (#3405) 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] v01d closed issue #3437: MISSING FILES IN NSH 'LS' OF A DIRECTORY

Posted by GitBox <gi...@apache.org>.
v01d closed issue #3437:
URL: https://github.com/apache/incubator-nuttx/issues/3437


   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org