There seems to be a bug in the mesh stack friendship code: the friend node times out infinitely when an LPN node is re-provisioned with the same address.
Steps to reproduce:
1. Program an nRF52-DK with the stock SDK light_switch_server: ninja flash_light_switch_server_nrf52832_xxAA_s132_7.0.1
2. Provision the light switch server with the nRF Mesh App.
3. Program a second nRF52-DK with the stock SDK LPN example:
ninja flash_lpn_nrf52832_xxAA_s132_7.0.1
3. Connect to LPN node with JLinkRTTLogger.
4. Provision the LPN node with the nRF Mesh App:
<t: 1342412>, main.c, 141, Successfully provisioned <t: 1342417>, main.c, 154, Node Address: 0x0004
5. Press Button3 on the LPN node to establish a friendship with the light switch server:
<t: 8741395>, main.c, 337, Button 2 pressed <t: 8741398>, main.c, 277, Initiating the friendship establishment procedure. <t: 8745101>, main.c, 408, Received friend offer from 0x0003 <t: 8748460>, main.c, 455, Friendship established with: 0x0003
6. Reset the LPN node in the app, then re-provision it. Note that the app assigns the same address to the device:
<t: 6325479>, mai<t: 0>, main.c, 552, ----- BLE Mesh LPN Demo ----- <t: 8877>, main.c, 503, Initializing and adding models <t: 13683>, mesh_app_utils.c, 65, Device UUID (raw): 6D6551FBA6ED1F4687A9A4973BE61F9A <t: 13687>, mesh_app_utils.c, 70, Device UUID : FB51656D-EDA6-461F-87A9-A4973BE61F9A <t: 420362>, ble_softdevice_support.c, 104, Successfully updated connection parameters <t: 966607>, main.c, 141, Successfully provisioned <t: 966612>, main.c, 154, Node Address: 0x0004
7. Pressing Button3 on the LPN node now results in friendship timing out:
<t: 1562101>, main.c, 337, Button 2 pressed <t: 1562104>, main.c, 277, Initiating the friendship establishment procedure. <t: 1778877>, main.c, 441, Friend Request timed out
This friendship timeout continues:
- even when many attempts are made
- even after >20 minutes
8. When the light_switch_server is reset (turned off and back on), it will again accept friend requests:
<t: 1562101>, main.c, 337, Button 2 pressed <t: 1562104>, main.c, 277, Initiating the friendship establishment procedure. <t: 1778877>, main.c, 441, Friend Request timed out <t: 7380842>, main.c, 337, Button 2 pressed <t: 7380845>, main.c, 277, Initiating the friendship establishment procedure. <t: 7597617>, main.c, 441, Friend Request timed out # light_switch_server is reset here <t: 13608118>, main.c, 337, Button 2 pressed <t: 13608121>, main.c, 277, Initiating the friendship establishment procedure. <t: 13611518>, main.c, 408, Received friend offer from 0x0003 <t: 13618461>, main.c, 455, Friendship established with: 0x0003
Versions:
0. nRF52-DK PCA10040 == nRF52832
1. Mesh SDK version 4.0.0
2. SDK version 16.0.0
3. SoftDevice s132_7.0.1