nvs_set_str() causes exception resulting in reboot
Posted: Sun Nov 04, 2018 1:43 pm
Hi, I find that writing to NVS the first time, is successfull, using nvs_set_str(), but a later update of the the value causes an exception. I saw few other posts on this subject, but did not find a way out of this issue. Is this a known issue? Does any one else have the same issue?
Here is the exception and code snippet:
exception:
D:/raadiy/esp32/msys32/home/raadiy/esp/esp-idf/components/freertos/queue.c:1442 (xQueueGenericReceive)- assert failed!
abort() was called at PC 0x40091ce1 on core 0
0x40091ce1: xQueueGenericReceive at D:/raadiy/esp32/msys32/home/raadiy/esp/esp-idf/components/freertos/queue.c:2037
Backtrace: 0x400934ec:0x3ffdbc60 0x40093719:0x3ffdbc80 0x40091ce1:0x3ffdbca0 0x400e3a89:0x3ffdbce0 0x400d4672:0x3ffdbd20 0x400d447c:0x3ffdbd50 0x400d538d:0x3ffdbd80 0x4014aee3:0x3ffdc1c0 0x4014ab1d:0x3ffdc1f0 0x4014ab69:0x3ff
dc280 0x4014bc1c:0x3ffdc2a0 0x4014b628:0x3ffdc2c0 0x4014b69c:0x3ffdc300 0x40091431:0x3ffdc320
0x400934ec: invoke_abort at D:/raadiy/esp32/msys32/home/raadiy/esp/esp-idf/components/esp32/panic.c:680
0x40093719: abort at D:/raadiy/esp32/msys32/home/raadiy/esp/esp-idf/components/esp32/panic.c:680
0x40091ce1: xQueueGenericReceive at D:/raadiy/esp32/msys32/home/raadiy/esp/esp-idf/components/freertos/queue.c:2037
0x400e3a89: nvs::Lock::Lock() at D:/raadiy/esp32/msys32/home/raadiy/esp/esp-idf/components/nvs_flash/src/nvs_api.cpp:486
(inlined by) nvs_set_str at D:/raadiy/esp32/msys32/home/raadiy/esp/esp-idf/components/nvs_flash/src/nvs_api.cpp:412
0x400d4672: ssb_nvs_write at D:/raadiy/esp32/msys32/home/raadiy/esp/test_app/main/ssb_nvs.c:70
0x400d447c: ssb_change_label at D:/raadiy/esp32/msys32/home/raadiy/esp/test_app/main/ssb_util.c:116
0x400d538d: ssb_post_handler at D:/raadiy/esp32/msys32/home/raadiy/esp/test_app/main/ssb_wifi.c:174
0x4014aee3: httpd_uri at D:/raadiy/esp32/msys32/home/raadiy/esp/esp-idf/components/esp_http_server/src/httpd_uri.c:216
0x4014ab1d: httpd_parse_req at D:/raadiy/esp32/msys32/home/raadiy/esp/esp-idf/components/esp_http_server/src/httpd_parse.c:706
0x4014ab69: httpd_req_new at D:/raadiy/esp32/msys32/home/raadiy/esp/esp-idf/components/esp_http_server/src/httpd_parse.c:706
0x4014bc1c: httpd_sess_process at D:/raadiy/esp32/msys32/home/raadiy/esp/esp-idf/components/esp_http_server/src/httpd_sess.c:188
0x4014b628: httpd_server at D:/raadiy/esp32/msys32/home/raadiy/esp/esp-idf/components/esp_http_server/src/httpd_main.c:185
0x4014b69c: httpd_thread at D:/raadiy/esp32/msys32/home/raadiy/esp/esp-idf/components/esp_http_server/src/httpd_main.c:215
0x40091431: vPortTaskWrapper at D:/raadiy/esp32/msys32/home/raadiy/esp/esp-idf/components/freertos/port.c:403
Thanks in advance
Here is the exception and code snippet:
exception:
D:/raadiy/esp32/msys32/home/raadiy/esp/esp-idf/components/freertos/queue.c:1442 (xQueueGenericReceive)- assert failed!
abort() was called at PC 0x40091ce1 on core 0
0x40091ce1: xQueueGenericReceive at D:/raadiy/esp32/msys32/home/raadiy/esp/esp-idf/components/freertos/queue.c:2037
Backtrace: 0x400934ec:0x3ffdbc60 0x40093719:0x3ffdbc80 0x40091ce1:0x3ffdbca0 0x400e3a89:0x3ffdbce0 0x400d4672:0x3ffdbd20 0x400d447c:0x3ffdbd50 0x400d538d:0x3ffdbd80 0x4014aee3:0x3ffdc1c0 0x4014ab1d:0x3ffdc1f0 0x4014ab69:0x3ff
dc280 0x4014bc1c:0x3ffdc2a0 0x4014b628:0x3ffdc2c0 0x4014b69c:0x3ffdc300 0x40091431:0x3ffdc320
0x400934ec: invoke_abort at D:/raadiy/esp32/msys32/home/raadiy/esp/esp-idf/components/esp32/panic.c:680
0x40093719: abort at D:/raadiy/esp32/msys32/home/raadiy/esp/esp-idf/components/esp32/panic.c:680
0x40091ce1: xQueueGenericReceive at D:/raadiy/esp32/msys32/home/raadiy/esp/esp-idf/components/freertos/queue.c:2037
0x400e3a89: nvs::Lock::Lock() at D:/raadiy/esp32/msys32/home/raadiy/esp/esp-idf/components/nvs_flash/src/nvs_api.cpp:486
(inlined by) nvs_set_str at D:/raadiy/esp32/msys32/home/raadiy/esp/esp-idf/components/nvs_flash/src/nvs_api.cpp:412
0x400d4672: ssb_nvs_write at D:/raadiy/esp32/msys32/home/raadiy/esp/test_app/main/ssb_nvs.c:70
0x400d447c: ssb_change_label at D:/raadiy/esp32/msys32/home/raadiy/esp/test_app/main/ssb_util.c:116
0x400d538d: ssb_post_handler at D:/raadiy/esp32/msys32/home/raadiy/esp/test_app/main/ssb_wifi.c:174
0x4014aee3: httpd_uri at D:/raadiy/esp32/msys32/home/raadiy/esp/esp-idf/components/esp_http_server/src/httpd_uri.c:216
0x4014ab1d: httpd_parse_req at D:/raadiy/esp32/msys32/home/raadiy/esp/esp-idf/components/esp_http_server/src/httpd_parse.c:706
0x4014ab69: httpd_req_new at D:/raadiy/esp32/msys32/home/raadiy/esp/esp-idf/components/esp_http_server/src/httpd_parse.c:706
0x4014bc1c: httpd_sess_process at D:/raadiy/esp32/msys32/home/raadiy/esp/esp-idf/components/esp_http_server/src/httpd_sess.c:188
0x4014b628: httpd_server at D:/raadiy/esp32/msys32/home/raadiy/esp/esp-idf/components/esp_http_server/src/httpd_main.c:185
0x4014b69c: httpd_thread at D:/raadiy/esp32/msys32/home/raadiy/esp/esp-idf/components/esp_http_server/src/httpd_main.c:215
0x40091431: vPortTaskWrapper at D:/raadiy/esp32/msys32/home/raadiy/esp/esp-idf/components/freertos/port.c:403
Code: Select all
int ssb_nvs_write(char *key, char *value)
{
esp_err_t err;
// if (nvs_erase_key(ssb_nvs_handle, key) == ESP_OK)
// nvs_commit(ssb_nvs_handle);
err = nvs_set_str(ssb_nvs_handle, key, value); /* <-----------------------------Line 70 */
switch (err)
{
case ESP_OK:
{
ESP_LOGI(SSB_DEVICE, "Successfully wrote tag <%s>: value <%s>", key, value);
nvs_commit(ssb_nvs_handle);
ESP_LOGI(SSB_DEVICE, "Committed changes");
return SSB_SUCCESS;
}
default :
ESP_LOGE(SSB_DEVICE, "Error (%s) writing!\n", esp_err_to_name(err));
}
return SSB_FAILURE;
}