ncasaril opened a new issue #1002: nffs: Assert at nffs_pkg_init with 
corrupt(?) flash
URL: https://github.com/apache/mynewt-core/issues/1002
 
 
   (https://github.com/apache/mynewt-nffs doesn't issues, hence I've filed this 
here instead)
   
   I'm getting an assert at startup from nffs that's preventing me from booting 
the system. 
   
   Backtrace:
   ```
   #0  __assert_func (file=file@entry=0x0, line=line@entry=0, 
func=func@entry=0x0, e=e@entry=0x0)
       at repos/apache-mynewt-core/kernel/os/src/arch/cortex_m4/os_fault.c:138
   #1  0x000281be in nffs_hash_remove (entry=0x0, entry@entry=0x2000bf74) at 
repos/apache-mynewt-core/fs/nffs/src/nffs_hash.c:179
   #2  0x0002a454 in nffs_block_delete_from_ram (block_entry=0x2000bf74) at 
repos/apache-mynewt-core/fs/nffs/src/nffs_block.c:271
   #3  0x0002835e in nffs_inode_delete_blocks_from_ram (inode_entry=0x2000b6b8) 
at repos/apache-mynewt-core/fs/nffs/src/nffs_inode.c:274
   #4  nffs_inode_delete_from_ram (ignore_corruption=1, inode_entry=0x2000b6b8) 
at repos/apache-mynewt-core/fs/nffs/src/nffs_inode.c:309
   #5  nffs_inode_dec_refcnt_priv (inode_entry=0x2000b6b8, ignore_corruption=1) 
at repos/apache-mynewt-core/fs/nffs/src/nffs_inode.c:355
   #6  0x00029972 in nffs_restore_sweep () at 
repos/apache-mynewt-core/fs/nffs/src/nffs_restore.c:329
   #7  0x00029a76 in nffs_restore_full (area_descs=area_descs@entry=0x20007104 
<os_main_stack+3932>)
       at repos/apache-mynewt-core/fs/nffs/src/nffs_restore.c:1402
   #8  0x0002749c in nffs_detect (area_descs=area_descs@entry=0x20007104 
<os_main_stack+3932>) at repos/apache-mynewt-core/fs/nffs/src/nffs.c:671
   #9  0x000275fe in nffs_pkg_init () at 
repos/apache-mynewt-core/fs/nffs/src/nffs.c:781
   #10 0x00024e5a in sysinit_app () at 
bin/targets/lnode_main/generated/src/lnode_main-sysinit-app.c:89
   #11 0x00008604 in main (argc=<optimized out>, argv=<optimized out>) at 
apps/lnode/src/main.c:113
   ```
   
   This is using an external flash, but from what I can see it's only reading. 
If a nffs section is corrupted in flash it should just result in the flash 
being formatted rather than the system getting stuck in an assert-reboot loop 
right?
   
   The external flash is defined in bsp.yml as below. It's actually a 4MB 
(32Mbit) flash, but I'm only using the first 1MB for NFFS at the moment:
   
   ```
   ...
           FLASH_AREA_NFFS:
               user_id: 1
               device: 1
               offset: 0x00000000
               size: 1024kB
   ...
   
   ```
   
   NFFS generally works well on this flash, but now and then this happens and I 
have to start with another image and erase the flash manually. 
   
   Sterling suggested it may be a memory exhaustion issue? Happy for any input 
as to how to debug that and anything else further. 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to