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

Getting a MESH ASSERT on 'subscription delete all'

Hi,

as describe in the title, we are getting a mesh assert when trying to remove all suscibtions from a model.

it is kind of hard to reproduce because this command is not implemented in NrfMesh app, so we are implementing it in our App.

The assert appear when calling this command for the first time after a full erase of the dk board and the first provisionning.

regarding the SDK 4.1 for Nrf52840, the assert is caused by this:

device_state_manager.c : 2036 - 2048

uint32_t dsm_address_subscription_remove(dsm_handle_t address_handle)
{
    if (address_handle_valid(address_handle))
    {
        nrf_mesh_address_t addr;
        uint32_t status = dsm_address_get(address_handle, &addr);
        if (status == NRF_SUCCESS)
        {
            if (addr.type == NRF_MESH_ADDRESS_TYPE_GROUP)
            {
                if (m_addresses[address_handle].subscription_count == 0)
                {
                    return NRF_ERROR_NOT_FOUND;  // <-- this 

called from:

config_server.c : 496

        NRF_MESH_ASSERT(dsm_address_subscription_remove(subscribed_addresses[i]) == NRF_SUCCESS);

after restarting the node, this command works fine.

can you please take a look and tell me where is the probleme?

best regards

B

Parents Reply
  • Hi,

    The mesh team has not been able to reproduce.

    It would be the best if our setup is as close to yours as possible, for reproducing.

    • What example (or examples) did you test?
    • Did you only provision, or did you do some configuration as well?
    • What device or app did you use for provisioning (and for configuration, if applicable)?
    • We assume that you send CONFIG_OPCODE_MODEL_SUBSCRIPTION_DELETE_ALL from the provisioner. With what parameters? (And if you do something else, please elaborate on how you trigger the delete.)

    Regards,
    Terje

Children
No Data
Related