This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Mesh Config backend for flash manager doesn't use a memory listener

The current implementation of Mesh Config using the flash manager lack a memory listener which can cause it to never retry a store or delete operation.

Assume the following.

1. A user of flash manager fills up the action queue in flash manager.
2. Directly after that a mesh config entry is changed and need to be stored.

During 2 above, mesh_config_backend_store() return NRF_ERROR_NO_MEM due to the action queue in flash manager is full.

The Mesh Config system never retries the store and thus NRF_MESH_EVT_CONFIG_STABLE is never emitted.

The current re-try mechanism for Mesh Config assumes that at least one entry was successfully queued in flash manager.

A better solution would be to make use of the already existing API in flash manager flash_manager_mem_listener_register() to get a callback when there is space in the action queue again.

This is found in SDK For Mesh v4.0.0.

Thanks.

Parents Reply Children
No Data
Related