Open Shane555 opened 1 year ago
@JiaLWang @Shane555 Hi all, I also faced the exact same bug with the fast provisioning example. Are there any updates on this issue?
kindly ignore this message, unable to delete it
kindly ignore this message, unable to delete it #2
Hi @pranav-anantharam for now the quick solution would be to ensure top provisioner only provisions a primary provisioner. Then always ensure that primary provisioner can provision at least one node. This means the example can only work with 3 or more nodes. Basically reduce the chances that the primary provisioner does not provision any nodes
Answers checklist.
IDF version.
v5.1-dev-863-g550772ab32
Operating System used.
Linux
How did you build your project?
Command line with idf.py
If you are using Windows, please specify command line type.
No response
Development Kit.
ESP32C3-Mini1 Dev Kit
Power Supply used.
USB
What is the expected behavior?
I used 3 ble_mesh_fast_prov_server and 1 ble_mesh_fast_prov_client demo to test. When i set
.max_node_num = 0x02,
in example_prov_info_t struct in client, i expect the provisioning to occur quicker than if it is set to 0x01.What is the actual behavior?
The client got stuck in a ESP_BLE_MESH_CLIENT_MODEL_SEND_TIMEOUT_EVT loop with error
BLE_MESH: Too short message for OpCode 0x00c702e5
. It seems to me that there remains a server node provisioned directly by the client node that did not provision any other unprovisioned nodes and it sends a ESP_BLE_MESH_VND_MODEL_OP_FAST_PROV_NODE_ADDR_STATUS with 0 bytes. Hence the error. This should be accounted for and the case should be caught so as to allow the client to exit the loop and continue on with the fast provisioning sequence.Steps to reproduce.
Debug Logs.
More Information.
If i used 1 server nodes and 1 client nodes with max_node_num = 0x01 , error always occurs as the server node directly provisioned by client did not provision any other nodes. For the 3 server nodes and 1 client node case, error occurs randomly depending on which node provisioned which first when i set max_node_num = 0x02