Description
Hello Ivan,
I'm experiencing crashes with WiFiClientSecure whenever my WiFi disconnects. Basically any use of the client object will crash the ESP.
When I try to delete the client I get this Exception (28) immediately:
0x402203da: ax_port_write at /Users/tijn/Library/Arduino15/packages/esp8266/hardware/esp8266/2.3.0-rc1/libraries/ESP8266WiFi/src/WiFiClientSecure.cpp:541
0x40100700: free at /Users/tijn/Library/Arduino15/packages/esp8266/hardware/esp8266/2.3.0-rc1/cores/esp8266/umm_malloc/umm_malloc.c:1733
0x4024dc1c: send_raw_packet at /Users/igrokhotkov/e/axtls/e1/ssl/tls1.c:990
(inlined by) send_packet at /Users/igrokhotkov/e/axtls/e1/ssl/tls1.c:1123
0x40218380: Print::write(unsigned char const_, unsigned int) at /Users/tijn/Library/Arduino15/packages/esp8266/hardware/esp8266/2.3.0-rc1/cores/esp8266/Print.cpp:38
0x4024e112: DISPLAY_ALERT at /Users/igrokhotkov/e/axtls/e1/ssl/tls1.c:2174 (discriminator 3)
(inlined by) send_alert at /Users/igrokhotkov/e/axtls/e1/ssl/tls1.c:1610 (discriminator 3)
0x40218524: Print::println() at /Users/tijn/Library/Arduino15/packages/esp8266/hardware/esp8266/2.3.0-rc1/cores/esp8266/Print.cpp:140
0x40218590: Print::println(char const_) at /Users/tijn/Library/Arduino15/packages/esp8266/hardware/esp8266/2.3.0-rc1/cores/esp8266/Print.cpp:152
0x4024e16e: ssl_free at /Users/igrokhotkov/e/axtls/e1/ssl/tls1.c:236
0x40220666: ~SSLContext at /Users/tijn/Library/Arduino15/packages/esp8266/hardware/esp8266/2.3.0-rc1/libraries/ESP8266WiFi/src/WiFiClientSecure.cpp:77
(inlined by) SSLContext::unref() at /Users/tijn/Library/Arduino15/packages/esp8266/hardware/esp8266/2.3.0-rc1/libraries/ESP8266WiFi/src/WiFiClientSecure.cpp:92
0x4021fd74: WiFiClientSecure::~WiFiClientSecure() at /Users/tijn/Library/Arduino15/packages/esp8266/hardware/esp8266/2.3.0-rc1/libraries/ESP8266WiFi/src/WiFiClientSecure.cpp:217
0x4021fdab: WiFiClientSecure::~WiFiClientSecure() at /Users/tijn/Library/Arduino15/packages/esp8266/hardware/esp8266/2.3.0-rc1/libraries/ESP8266WiFi/src/WiFiClientSecure.cpp:221
When I don't delete it any use of client.available() will Exception (28) it:
0x4022034b: ax_port_read at /Users/tijn/Library/Arduino15/packages/esp8266/hardware/esp8266/2.3.0-rc1/libraries/ESP8266WiFi/src/WiFiClientSecure.cpp:524
0x40104731: ppFetchTxQFirstAvail at ??:?
0x4024e277: basic_read at /Users/igrokhotkov/e/axtls/e1/ssl/tls1.c:1231
0x402328ae: ets_vsnprintf at ??:?
0x40218358: Print::write(unsigned char const*, unsigned int) at /Users/tijn/Library/Arduino15/packages/esp8266/hardware/esp8266/2.3.0-rc1/cores/esp8266/Print.cpp:38
0x4024e6bc: ssl_read at /Users/igrokhotkov/e/axtls/e1/ssl/tls1.c:265
0x4022068c: SSLContext::_readAll() at /Users/tijn/Library/Arduino15/packages/esp8266/hardware/esp8266/2.3.0-rc1/libraries/ESP8266WiFi/src/WiFiClientSecure.cpp:184
0x402206cd: SSLContext::available() at /Users/tijn/Library/Arduino15/packages/esp8266/hardware/esp8266/2.3.0-rc1/libraries/ESP8266WiFi/src/WiFiClientSecure.cpp:164
I am using the WiFi.onEvent handler to handle WiFi disconnects, but I'm not managing to find a way to gracefully stop the client. I also tried client.stop() and client.flush(), but keep seeing the same crashes.
I currently use 2.3.0-rc1 but got the same issue with 2.2.0.
Please let me know if you need more details.
Thanks!
Tijn
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.