-
Notifications
You must be signed in to change notification settings - Fork 7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Memory leak in esp_mqtt_destroy_config() (IDFGH-2293) #4433
Comments
Yeah, this looks like an oversight. We will fix this and close the issue when it has been deployed to Github. Thank you for reporting this. |
The event loop would never get deleted due to the event loop handle being cleared to 0 before checking if it exists. Closes espressif/esp-idf#4433 Closes IDFGH-2293
Hi @david-cermak |
@AxelLin Hi, Sorry for keeping you waiting. |
Adds bugfixes for: - Too early publishing - Potential mutex memory leak - CI related issues. - Wait for entire connack message - Event loop not getting cleaned up Adds support for ALPN, configurable reconnect time, QEMU CI tests and password protected client key. MQTT MR: esp-mqtt/merge_requests/46 Closes IDF-1162 Closes espressif/esp-mqtt#137 MQTT MR: esp-mqtt/merge_requests/47 Closes IDF-1126 MQTT MR: esp-mqtt/merge_requests/48 Closes IDFGH-2197 Closes #4349 Closes espressif/esp-mqtt#140 MQTT MR: esp-mqtt/merge_requests/48 Closes IDFGH-2235 Closes #4384 MQTT MR: esp-mqtt/merge_requests/49 Closes #4433 Closes IDFGH-2293 MQTT MR: esp-mqtt/merge_requests/50 Closes FCS-254 MQTT MR: esp-mqtt/merge_requests/53 Closes FCS-267
Adds bugfixes for: - Too early publishing - Potential mutex memory leak - CI related issues. - Wait for entire connack message - Event loop not getting cleaned up Adds support for ALPN, configurable reconnect time, QEMU CI tests and password protected client key. MQTT MR: esp-mqtt/merge_requests/46 Closes IDF-1162 Closes espressif/esp-mqtt#137 MQTT MR: esp-mqtt/merge_requests/47 Closes IDF-1126 MQTT MR: esp-mqtt/merge_requests/48 Closes IDFGH-2197 Closes #4349 Closes espressif/esp-mqtt#140 MQTT MR: esp-mqtt/merge_requests/48 Closes IDFGH-2235 Closes #4384 MQTT MR: esp-mqtt/merge_requests/49 Closes #4433 Closes IDFGH-2293 MQTT MR: esp-mqtt/merge_requests/50 Closes FCS-254 MQTT MR: esp-mqtt/merge_requests/53 Closes FCS-267
Adds bugfixes for: - Too early publishing - Potential mutex memory leak - CI related issues. - Wait for entire connack message - Event loop not getting cleaned up Adds support for ALPN, configurable reconnect time, QEMU CI tests and password protected client key. MQTT MR: esp-mqtt/merge_requests/46 Closes IDF-1162 Closes espressif/esp-mqtt#137 MQTT MR: esp-mqtt/merge_requests/47 Closes IDF-1126 MQTT MR: esp-mqtt/merge_requests/48 Closes IDFGH-2197 Closes #4349 Closes espressif/esp-mqtt#140 MQTT MR: esp-mqtt/merge_requests/48 Closes IDFGH-2235 Closes #4384 MQTT MR: esp-mqtt/merge_requests/49 Closes #4433 Closes IDFGH-2293 MQTT MR: esp-mqtt/merge_requests/50 Closes FCS-254 MQTT MR: esp-mqtt/merge_requests/53 Closes FCS-267
Adds bugfixes for: - Too early publishing - Potential mutex memory leak - CI related issues. - Wait for entire connack message - Event loop not getting cleaned up Adds support for ALPN, configurable reconnect time, QEMU CI tests and password protected client key. MQTT MR: https://gitlab.espressif.cn:6688/espressif/esp-mqtt/merge_requests/46 Closes IDF-1162 Closes #137 MQTT MR: https://gitlab.espressif.cn:6688/espressif/esp-mqtt/merge_requests/47 Closes IDF-1126 MQTT MR: https://gitlab.espressif.cn:6688/espressif/esp-mqtt/merge_requests/48 Closes IDFGH-2197 Closes espressif/esp-idf#4349 Closes #140 MQTT MR: https://gitlab.espressif.cn:6688/espressif/esp-mqtt/merge_requests/48 Closes IDFGH-2235 Closes espressif/esp-idf#4384 MQTT MR: https://gitlab.espressif.cn:6688/espressif/esp-mqtt/merge_requests/49 Closes espressif/esp-idf#4433 Closes IDFGH-2293 MQTT MR: https://gitlab.espressif.cn:6688/espressif/esp-mqtt/merge_requests/50 Closes FCS-254 MQTT MR: https://gitlab.espressif.cn:6688/espressif/esp-mqtt/merge_requests/53 Closes FCS-267
Adds bugfixes for: - Too early publishing - Potential mutex memory leak - CI related issues. - Wait for entire connack message - Event loop not getting cleaned up Adds support for ALPN, configurable reconnect time, QEMU CI tests and password protected client key. MQTT MR: https://gitlab.espressif.cn:6688/espressif/esp-mqtt/merge_requests/46 Closes IDF-1162 Closes espressif#137 MQTT MR: https://gitlab.espressif.cn:6688/espressif/esp-mqtt/merge_requests/47 Closes IDF-1126 MQTT MR: https://gitlab.espressif.cn:6688/espressif/esp-mqtt/merge_requests/48 Closes IDFGH-2197 Closes espressif/esp-idf#4349 Closes espressif#140 MQTT MR: https://gitlab.espressif.cn:6688/espressif/esp-mqtt/merge_requests/48 Closes IDFGH-2235 Closes espressif/esp-idf#4384 MQTT MR: https://gitlab.espressif.cn:6688/espressif/esp-mqtt/merge_requests/49 Closes espressif/esp-idf#4433 Closes IDFGH-2293 MQTT MR: https://gitlab.espressif.cn:6688/espressif/esp-mqtt/merge_requests/50 Closes FCS-254 MQTT MR: https://gitlab.espressif.cn:6688/espressif/esp-mqtt/merge_requests/53 Closes FCS-267
Adds bugfixes for: - Too early publishing - Potential mutex memory leak - CI related issues. - Wait for entire connack message - Event loop not getting cleaned up Adds support for ALPN, configurable reconnect time, QEMU CI tests and password protected client key. MQTT MR: https://gitlab.espressif.cn:6688/espressif/esp-mqtt/merge_requests/46 Closes IDF-1162 Closes espressif#137 MQTT MR: https://gitlab.espressif.cn:6688/espressif/esp-mqtt/merge_requests/47 Closes IDF-1126 MQTT MR: https://gitlab.espressif.cn:6688/espressif/esp-mqtt/merge_requests/48 Closes IDFGH-2197 Closes espressif/esp-idf#4349 Closes espressif#140 MQTT MR: https://gitlab.espressif.cn:6688/espressif/esp-mqtt/merge_requests/48 Closes IDFGH-2235 Closes espressif/esp-idf#4384 MQTT MR: https://gitlab.espressif.cn:6688/espressif/esp-mqtt/merge_requests/49 Closes espressif/esp-idf#4433 Closes IDFGH-2293 MQTT MR: https://gitlab.espressif.cn:6688/espressif/esp-mqtt/merge_requests/50 Closes FCS-254 MQTT MR: https://gitlab.espressif.cn:6688/espressif/esp-mqtt/merge_requests/53 Closes FCS-267
Problem Description
Calling
esp_mqtt_destroy_client
leaks about 216 bytes of memory because even loop is not freed.The leak is located inside
esp_mqtt_destroy_config
which should callesp_event_loop_delete
but a ismemset
clears the handle before it is freed.After some time of internet outage, the application will stuck becuse no memory available and error mbedtls ssl setup returned -0x7f00
Expected Behavior
esp_event_loop_delete
should be called beforememset
, or vice-versaActual Behavior
Steps to repropduce
Code to reproduce this issue
In file mqtt_client.c
This fixes the problem, allowing esp_event_loop_delete to be called:
Debug Logs
This is the log of heap trace recordered from init to destroy
This is the log of heap trace recordered after the fix:
The text was updated successfully, but these errors were encountered: