esp8266 / Arduino

ESP8266 core for Arduino
GNU Lesser General Public License v2.1
15.98k stars 13.34k forks source link

Using SPIFFS for certificates is causing delay stop working and WDT reset (MQTT TLS connection) #7305

Closed Zico56 closed 4 years ago

Zico56 commented 4 years ago

Basic Infos

Platform

Settings in IDE

Problem Description

Hello, I have stored certificates files (pem format) on ESP8266 flash. I managed to load them using SPIFFS and initialize WifiClientSecure (cf. code below). But when trying to connect, TCP connection failed and delay() instruction stops working...causing "WDT reset" (probably because of the connection loop is going endless because connection is not ok).

I tried to add yield() instruction. This cause "User exception (panic/abort/assert) / Panic core_esp8266_main.cpp:133 __yield".

I tried limiting number connection attemps in loop with counter. Result is delay() is still not working. ESP is going to deepSleep(0) (last sketch instruction) but wakup by itselft with WDT reset reason.

When storing certificates data as PROGMEM constants, all is working pretty well.

I logged the free heap size (cf. logs below), but seems that loading certificates from files doesn't affect it so much.

Is it bug from BearSLL, which may not support data not stored as PROGMEM ? Is it due buffer size when loading files ? But why free heap size would be ok then ?

I tried lot of things but do not manage to find where the issue is exactly coming from. Thanks in advance for your help.

For context: I don't want to use PROGMEM hardcoded certificates but need to find a way to store them certificates as files (pem format). I use AWS IoT service with "fleet provisionning with device that dont have device certificates" Goal is having 1st set of certificates for provisionning, onboarded when making device. Then AWS generates and returns specific certificate for device (not shared with other IoT) on JSON format. I want to save this return as certificates files on ESP8266 flash. Moreover, having externalized files instead of hardcoded constant is better device industrialization process.

Sketch


void setup() {  
  Serial.begin(115200);

/*---- doing wifi initialization--------*/

  Serial.println(F("Setting X509 time...")); 
  WiFiUDP ntpUDP;
  NTPClient timeClient(ntpUDP, "pool.ntp.org");
  timeClient.begin();
  while(!timeClient.update()){
    timeClient.forceUpdate();
  }
  net.setX509Time(timeClient.getEpochTime());
  Serial.println(F("Free heap:"));Serial.print(system_get_free_heap_size());Serial.println();

  Serial.println(F("Starting SPIFFS..."));
 /*---- doing SPIFFS initialization--------*/

  Serial.println(F("Loading certificate..."));   
  // Certificate
  File crtFile = SPIFFS.open(AWS_CERTIFICATE, "r");
  char crtBuffer[crtFile.size()];
  crtFile.readString().toCharArray(crtBuffer, crtFile.size());
  crtFile.close();

  // Key
  File keyFile = SPIFFS.open(AWS_PRIVATE_KEY, "r");
  char keyBuffer[keyFile.size()];
  keyFile.readString().toCharArray(keyBuffer, keyFile.size());
  keyFile.close();

  SPIFFS.end();
  Serial.println(F("Free heap:"));Serial.print(system_get_free_heap_size());Serial.println();

  // Cert loaded from SPIFFS
  X509List cert(cacert); //Root CA (This is stored as PROGMEM because not changing)
  X509List client_crt(crtBuffer);
  PrivateKey key(keyBuffer);

  // Cert loaded from PROGMEM (this is working)
  /*
  X509List cert(cacert);
  X509List client_crt(client_cert);
  PrivateKey key(privkey);
  */
  Serial.println(F("Free heap:"));Serial.print(system_get_free_heap_size());Serial.println();

  net.setTrustAnchors(&cert);
  net.setClientRSACert(&client_crt, &key);
  Serial.println(F("Free heap:"));Serial.print(system_get_free_heap_size());Serial.println();

  Serial.println(F("MQTT initialization...")); 
  client.begin(MQTT_HOST, MQTT_PORT, net);
  client.onMessage(messageReceived);
  Serial.println(F("Free heap:"));Serial.print(system_get_free_heap_size());Serial.println();

  Serial.println(F("MQTT connection...")); 
  while (!client.connected()) {
    if (client.connect(THINGNAME)) {
      Serial.println(F("connected!"));
    }
    else {
      Serial.println();
      Serial.print(F("SSL Error Code: "));
      Serial.println(net.getLastSSLError());
      Serial.print("failed, reason -> ");
      Serial.println("MQTT connection error: " + String(client.returnCode()));
      //yield();
      delay(3000);
    }    
  }

  //tmp
  delay(3000);

  Serial.println(F("ESP is going to sleep."));
  ESP.deepSleep(0);
}

Debug Messages

12:00:30.492 -> SDK:2.2.2-dev(38a443e)/Core:2.7.1=20701000/lwIP:STABLE-2_1_2_RELEASE/glue:1.2-30-g92add50/BearSSL:5c771be
12:00:30.527 -> 
12:00:30.527 -> Wifi initialization...
12:00:30.527 -> scandone
12:00:30.527 -> Attempting to connect to SSID: WifiHome27.scandone
12:00:30.629 -> state: 0 -> 2 (b0)
12:00:30.629 -> state: 2 -> 3 (0)
12:00:30.629 -> state: 3 -> 5 (10)
12:00:30.629 -> add 0
12:00:30.629 -> aid 8
12:00:30.629 -> cnt 
12:00:30.663 -> 
12:00:30.663 -> connected with WifiHome27, channel 10
12:00:30.663 -> dhcp client start...
12:00:31.495 -> ..ip:192.168.0.13,mask:255.255.255.0,gw:192.168.0.254
12:00:33.525 -> ok!
12:00:33.525 -> Free heap:
12:00:33.525 -> 37120
12:00:33.525 -> Setting X509 time...
12:00:33.560 -> Free heap:
12:00:33.560 -> 36840
12:00:33.560 -> Starting LittleFS...
12:00:33.560 -> Free heap:
12:00:33.560 -> 36600
12:00:33.560 -> Loading certificate...
12:00:33.800 -> Free heap:
12:00:33.800 -> 36840
12:00:33.905 -> Free heap:
12:00:33.905 -> 33456
12:00:33.905 -> Free heap:
12:00:33.905 -> 33456
12:00:33.905 -> MQTT initialization...
12:00:33.905 -> Free heap:
12:00:33.905 -> 33392
12:00:33.905 -> MQTT connection...
12:00:33.975 -> BSSL:connect: Unable to connect TCP socket
12:00:33.975 -> 
12:00:33.975 -> SSL Error Code: 0
12:00:33.975 -> failed, reason -> MQTT connection error: 0
12:00:34.045 -> BSSL:connect: Unable to connect TCP socket
12:00:34.045 -> 
12:00:34.045 -> SSL Error Code: 0
12:00:34.045 -> failed, reason -> MQTT connection error: 0
12:00:34.079 -> BSSL:connect: Unable to connect TCP socket
12:00:34.113 -> 
12:00:34.113 -> SSL Error Code: 0
12:00:34.113 -> failed, reason -> MQTT connection error: 0
12:00:34.113 -> BSSL:connect: Name loopup failure
12:00:34.113 -> 
12:00:34.113 -> SSL Error Code: 0
12:00:34.113 -> failed, reason -> MQTT connection error: 0
12:00:34.113 -> BSSL:connect: Name loopup failure
12:00:34.113 -> 
12:00:34.113 -> SSL Error Code: 0
12:00:34.113 -> failed, reason -> MQTT connection error: 0
12:00:34.113 -> BSSL:connect: Name loopup failure
12:00:34.113 -> 
12:00:34.113 -> SSL Error Code: 0
12:00:34.113 -> failed, reason -> MQTT connection error: 0
12:00:34.113 -> BSSL:connect: Name loopup failure
12:00:34.148 -> 
12:00:34.148 -> SSL Error Code: 0
12:00:34.148 -> failed, reason -> MQTT connection error: 0
12:00:34.148 -> BSSL:connect: Name loopup failure
12:00:34.148 -> 
12:00:34.148 -> SSL Error Code: 0
12:00:34.148 -> failed, reason -> MQTT connection error: 0
12:00:34.148 -> BSSL:connect: Name loopup failure
12:00:34.148 -> 
12:00:34.148 -> SSL Error Code: 0
12:00:34.148 -> failed, reason -> MQTT connection error: 0
12:00:34.148 -> BSSL:connect: Name loopup failure
12:00:34.148 -> 
12:00:34.148 -> SSL Error Code: 0
12:00:34.148 -> failed, reason -> MQTT connection error: 0
12:00:34.148 -> BSSL:connect: Name loopup failure
12:00:34.182 -> 
12:00:34.182 -> SSL Error Code: 0
12:00:34.182 -> failed, reason -> MQTT connection error: 0
12:00:34.182 -> BSSL:connect: Name loopup failure
12:00:34.182 -> 
12:00:34.182 -> SSL Error Code: 0
12:00:34.182 -> failed, reason -> MQTT connection error: 0
12:00:34.182 -> BSSL:connect: Name loopup failure
12:00:34.182 -> 
12:00:34.182 -> SSL Error Code: 0
12:00:34.182 -> failed, reason -> MQTT connection error: 0
12:00:34.182 -> BSSL:connect: Name loopup failure
12:00:34.182 -> 
12:00:34.182 -> SSL Error Code: 0
12:00:34.182 -> failed, reason -> MQTT connection error: 0
12:00:34.182 -> BSSL:connect: Name loopup failure
12:00:34.217 -> 
12:00:34.217 -> SSL Error Code: 0
12:00:34.217 -> failed, reason -> MQTT connection error: 0
12:00:34.217 -> BSSL:connect: Name loopup failure
12:00:34.217 -> 
12:00:34.217 -> SSL Error Code: 0
12:00:34.217 -> failed, reason -> MQTT connection error: 0
12:00:34.217 -> BSSL:connect: Name loopup failure
12:00:34.217 -> 
12:00:34.217 -> SSL Error Code: 0
12:00:34.217 -> failed, reason -> MQTT connection error: 0
12:00:34.217 -> BSSL:connect: Name loopup failure
12:00:34.217 -> 
12:00:34.217 -> SSL Error Code: 0
12:00:34.217 -> failed, reason -> MQTT connection error: 0
12:00:34.217 -> BSSL:connect: Name loopup failure
12:00:34.217 -> 
12:00:34.217 -> SSL Error Code: 0
12:00:34.252 -> failed, reason -> MQTT connection error: 0
12:00:34.252 -> BSSL:connect: Name loopup failure
12:00:34.252 -> 
12:00:34.252 -> SSL Error Code: 0
12:00:34.252 -> failed, reason -> MQTT connection error: 0
12:00:34.252 -> BSSL:connect: Name loopup failure
12:00:34.252 -> 
12:00:34.252 -> SSL Error Code: 0
12:00:34.252 -> failed, reason -> MQTT connection error: 0
12:00:34.252 -> BSSL:connect: Name loopup failure
12:00:34.252 -> 
12:00:34.252 -> SSL Error Code: 0
12:00:34.252 -> failed, reason -> MQTT connection error: 0
12:00:34.252 -> BSSL:connect: Name loopup failure
12:00:34.287 -> 
12:00:34.287 -> SSL Error Code: 0
12:00:34.287 -> failed, reason -> MQTT connection error: 0
12:00:34.287 -> BSSL:connect: Name loopup failure
12:00:34.287 -> 
12:00:34.287 -> SSL Error Code: 0
12:00:34.287 -> failed, reason -> MQTT connection error: 0
12:00:34.287 -> BSSL:connect: Name loopup failure
12:00:34.287 -> 
12:00:34.287 -> SSL Error Code: 0
12:00:34.287 -> failed, reason -> MQTT connection error: 0
12:00:34.287 -> BSSL:connect: Name loopup failure
12:00:34.287 -> 
12:00:34.287 -> SSL Error Code: 0
12:00:34.287 -> failed, reason -> MQTT connection error: 0
12:00:34.287 -> BSSL:connect: Name loopup failure
12:00:34.287 -> 
12:00:34.287 -> SSL Error Code: 0
12:00:34.322 -> failed, reason -> MQTT connection error: 0
12:00:34.322 -> BSSL:connect: Name loopup failure
12:00:34.322 -> 
12:00:34.322 -> SSL Error Code: 0
12:00:34.322 -> failed, reason -> MQTT connection error: 0
12:00:34.322 -> BSSL:connect: Name loopup failure
12:00:34.322 -> 
12:00:34.322 -> SSL Error Code: 0
12:00:34.322 -> failed, reason -> MQTT connection error: 0
12:00:34.322 -> BSSL:connect: Name loopup failure
12:00:34.322 -> 
12:00:34.322 -> SSL Error Code: 0
12:00:34.322 -> failed, reason -> MQTT connection error: 0
12:00:34.322 -> BSSL:connect: Name loopup failure
12:00:34.322 -> 
12:00:34.357 -> SSL Error Code: 0
12:00:34.357 -> failed, reason -> MQTT connection error: 0
12:00:34.357 -> BSSL:connect: Name loopup failure
12:00:34.357 -> 
12:00:34.357 -> SSL Error Code: 0
12:00:34.357 -> failed, reason -> MQTT connection error: 0
12:00:34.357 -> BSSL:connect: Name loopup failure
12:00:34.357 -> 
12:00:34.357 -> SSL Error Code: 0
12:00:34.357 -> failed, reason -> MQTT connection error: 0
12:00:34.357 -> BSSL:connect: Name loopup failure
12:00:34.357 -> 
12:00:34.357 -> SSL Error Code: 0
12:00:34.357 -> failed, reason -> MQTT connection error: 0
12:00:34.357 -> BSSL:connect: Name loopup failure
12:00:34.357 -> 
12:00:34.357 -> SSL Error Code: 0
12:00:34.391 -> failed, reason -> MQTT connection error: 0
12:00:34.391 -> BSSL:connect: Name loopup failure
12:00:34.391 -> 
12:00:34.391 -> SSL Error Code: 0
12:00:34.391 -> failed, reason -> MQTT connection error: 0
12:00:34.391 -> BSSL:connect: Name loopup failure
12:00:34.391 -> 
12:00:34.391 -> SSL Error Code: 0
12:00:34.391 -> failed, reason -> MQTT connection error: 0
12:00:34.391 -> BSSL:connect: Name loopup failure
12:00:34.391 -> 
12:00:34.391 -> SSL Error Code: 0
12:00:34.391 -> failed, reason -> MQTT connection error: 0
12:00:34.391 -> BSSL:connect: Name loopup failure
12:00:34.391 -> 
12:00:34.391 -> SSL Error Code: 0
12:00:34.391 -> failed, reason -> MQTT connection error: 0
12:00:34.426 -> BSSL:connect: Name loopup failure
12:00:34.426 -> 
12:00:34.426 -> SSL Error Code: 0
12:00:34.426 -> failed, reason -> MQTT connection error: 0
12:00:34.426 -> BSSL:connect: Name loopup failure
12:00:34.426 -> 
12:00:34.426 -> SSL Error Code: 0
12:00:34.426 -> failed, reason -> MQTT connection error: 0
12:00:34.426 -> BSSL:connect: Name loopup failure
12:00:34.426 -> 
12:00:34.426 -> SSL Error Code: 0
12:00:34.426 -> failed, reason -> MQTT connection error: 0
12:00:34.426 -> BSSL:connect: Name loopup failure
12:00:34.426 -> 
12:00:34.426 -> SSL Error Code: 0
12:00:34.426 -> failed, reason -> MQTT connection error: 0
12:00:34.461 -> BSSL:connect: Name loopup failure
12:00:34.461 -> 
12:00:34.461 -> SSL Error Code: 0
12:00:34.461 -> failed, reason -> MQTT connection error: 0
12:00:34.461 -> BSSL:connect: Name loopup failure
12:00:34.461 -> 
12:00:34.461 -> SSL Error Code: 0
12:00:34.461 -> failed, reason -> MQTT connection error: 0
12:00:34.461 -> BSSL:connect: Name loopup failure
12:00:34.461 -> 
12:00:34.461 -> SSL Error Code: 0
12:00:34.461 -> failed, reason -> MQTT connection error: 0
12:00:34.461 -> BSSL:connect: Name loopup failure
12:00:34.461 -> 
12:00:34.461 -> SSL Error Code: 0
12:00:34.494 -> failed, reason -> MQTT connection error: 0
12:00:34.494 -> BSSL:connect: Name loopup failure
12:00:34.494 -> 
12:00:34.494 -> SSL Error Code: 0
12:00:34.494 -> failed, reason -> MQTT connection error: 0
12:00:34.494 -> BSSL:connect: Name loopup failure
12:00:34.494 -> 
12:00:34.494 -> SSL Error Code: 0
12:00:34.494 -> failed, reason -> MQTT connection error: 0
12:00:34.494 -> BSSL:connect: Name loopup failure
12:00:34.494 -> 
12:00:34.494 -> SSL Error Code: 0
12:00:34.494 -> failed, reason -> MQTT connection error: 0
12:00:34.494 -> BSSL:connect: Name loopup failure
12:00:34.494 -> 
12:00:34.494 -> SSL Error Code: 0
12:00:34.528 -> failed, reason -> MQTT connection error: 0
12:00:34.528 -> BSSL:connect: Name loopup failure
12:00:34.528 -> 
12:00:34.528 -> SSL Error Code: 0
12:00:34.528 -> failed, reason -> MQTT connection error: 0
12:00:34.528 -> BSSL:connect: Name loopup failure
12:00:34.528 -> 
12:00:34.528 -> SSL Error Code: 0
12:00:34.528 -> failed, reason -> MQTT connection error: 0
12:00:34.528 -> BSSL:connect: Name loopup failure
12:00:34.528 -> 
12:00:34.528 -> SSL Error Code: 0
12:00:34.528 -> failed, reason -> MQTT connection error: 0
12:00:34.528 -> BSSL:connect: Name loopup failure
12:00:34.528 -> 
12:00:34.528 -> SSL Error Code: 0
12:00:34.528 -> failed, reason -> MQTT connection error: 0
12:00:34.563 -> BSSL:connect: Name loopup failure
12:00:34.563 -> 
12:00:34.563 -> SSL Error Code: 0
12:00:34.563 -> failed, reason -> MQTT connection error: 0
12:00:34.563 -> BSSL:connect: Name loopup failure
12:00:34.563 -> 
12:00:34.563 -> SSL Error Code: 0
12:00:34.563 -> failed, reason -> MQTT connection error: 0
12:00:34.563 -> BSSL:connect: Name loopup failure
12:00:34.563 -> 
12:00:34.563 -> SSL Error Code: 0
12:00:34.563 -> failed, reason -> MQTT connection error: 0
12:00:34.563 -> BSSL:connect: Name loopup failure
12:00:34.563 -> 
12:00:34.563 -> SSL Error Code: 0
12:00:34.597 -> failed, reason -> MQTT connection error: 0
12:00:34.597 -> BSSL:connect: Name loopup failure
12:00:34.597 -> 
12:00:34.597 -> SSL Error Code: 0
12:00:34.597 -> failed, reason -> MQTT connection error: 0
12:00:34.597 -> BSSL:connect: Name loopup failure
12:00:34.597 -> 
12:00:34.597 -> SSL Error Code: 0
12:00:34.597 -> failed, reason -> MQTT connection error: 0
12:00:34.597 -> BSSL:connect: Name loopup failure
12:00:34.597 -> 
12:00:34.597 -> SSL Error Code: 0
12:00:34.597 -> failed, reason -> MQTT connection error: 0
12:00:34.597 -> BSSL:connect: Name loopup failure
12:00:34.597 -> 
12:00:34.597 -> SSL Error Code: 0
12:00:34.597 -> failed, reason -> MQTT connection error: 0
12:00:34.632 -> BSSL:connect: Name loopup failure
12:00:34.632 -> 
12:00:34.632 -> SSL Error Code: 0
12:00:34.632 -> failed, reason -> MQTT connection error: 0
12:00:34.632 -> BSSL:connect: Name loopup failure
12:00:34.632 -> 
12:00:34.632 -> SSL Error Code: 0
12:00:34.632 -> failed, reason -> MQTT connection error: 0
12:00:34.632 -> BSSL:connect: Name loopup failure
12:00:34.632 -> 
12:00:34.632 -> SSL Error Code: 0
12:00:34.632 -> failed, reason -> MQTT connection error: 0
12:00:34.632 -> BSSL:connect: Name loopup failure
12:00:34.632 -> 
12:00:34.632 -> SSL Error Code: 0
12:00:34.667 -> failed, reason -> MQTT connection error: 0
12:00:34.667 -> BSSL:connect: Name loopup failure
12:00:34.667 -> 
12:00:34.667 -> SSL Error Code: 0
12:00:34.667 -> failed, reason -> MQTT connection error: 0
12:00:34.667 -> BSSL:connect: Name loopup failure
12:00:34.667 -> 
12:00:34.667 -> SSL Error Code: 0
12:00:34.667 -> failed, reason -> MQTT connection error: 0
12:00:34.667 -> BSSL:connect: Name loopup failure
12:00:34.667 -> 
12:00:34.667 -> SSL Error Code: 0
12:00:34.667 -> failed, reason -> MQTT connection error: 0
12:00:34.667 -> BSSL:connect: Name loopup failure
12:00:34.667 -> 
12:00:34.667 -> SSL Error Code: 0
12:00:34.667 -> failed, reason -> MQTT connection error: 0
12:00:34.701 -> BSSL:connect: Name loopup failure
12:00:34.701 -> 
12:00:34.701 -> SSL Error Code: 0
12:00:34.701 -> failed, reason -> MQTT connection error: 0
12:00:34.701 -> BSSL:connect: Name loopup failure
12:00:34.701 -> 
12:00:34.701 -> SSL Error Code: 0
12:00:34.701 -> failed, reason -> MQTT connection error: 0
12:00:34.701 -> BSSL:connect: Name loopup failure
12:00:34.701 -> 
12:00:34.701 -> SSL Error Code: 0
12:00:34.701 -> failed, reason -> MQTT connection error: 0
12:00:34.701 -> BSSL:connect: Name loopup failure
12:00:34.701 -> 
12:00:34.701 -> SSL Error Code: 0
12:00:34.701 -> failed, reason -> MQTT connection error: 0
12:00:34.736 -> BSSL:connect: Name loopup failure
12:00:34.736 -> 
12:00:34.736 -> SSL Error Code: 0
12:00:34.736 -> failed, reason -> MQTT connection error: 0
12:00:34.736 -> BSSL:connect: Name loopup failure
12:00:34.736 -> 
12:00:34.736 -> SSL Error Code: 0
12:00:34.736 -> failed, reason -> MQTT connection error: 0
12:00:34.736 -> BSSL:connect: Name loopup failure
12:00:34.736 -> 
12:00:34.736 -> SSL Error Code: 0
12:00:34.736 -> failed, reason -> MQTT connection error: 0
12:00:34.736 -> BSSL:connect: Name loopup failure
12:00:34.736 -> 
12:00:34.736 -> SSL Error Code: 0
12:00:34.736 -> failed, reason -> MQTT connection error: 0
12:00:34.771 -> BSSL:connect: Name loopup failure
12:00:34.771 -> 
12:00:34.771 -> SSL Error Code: 0
12:00:34.771 -> failed, reason -> MQTT connection error: 0
12:00:34.771 -> BSSL:connect: Name loopup failure
12:00:34.771 -> 
12:00:34.771 -> SSL Error Code: 0
12:00:34.771 -> failed, reason -> MQTT connection error: 0
12:00:34.771 -> BSSL:connect: Name loopup failure
12:00:34.771 -> 
12:00:34.771 -> SSL Error Code: 0
12:00:34.771 -> failed, reason -> MQTT connection error: 0
12:00:34.771 -> BSSL:connect: Name loopup failure
12:00:34.771 -> 
12:00:34.771 -> SSL Error Code: 0
12:00:34.771 -> failed, reason -> MQTT connection error: 0
12:00:34.805 -> BSSL:connect: Name loopup failure
12:00:34.805 -> 
12:00:34.805 -> SSL Error Code: 0
12:00:34.805 -> failed, reason -> MQTT connection error: 0
12:00:34.805 -> BSSL:connect: Name loopup failure
12:00:34.805 -> 
12:00:34.805 -> SSL Error Code: 0
12:00:34.805 -> failed, reason -> MQTT connection error: 0
12:00:34.805 -> BSSL:connect: Name loopup failure
12:00:34.805 -> 
12:00:34.805 -> SSL Error Code: 0
12:00:34.805 -> failed, reason -> MQTT connection error: 0
12:00:34.805 -> BSSL:connect: Name loopup failure
12:00:34.805 -> 
12:00:34.805 -> SSL Error Code: 0
12:00:34.805 -> failed, reason -> MQTT connection error: 0
12:00:34.839 -> BSSL:connect: Name loopup failure
12:00:34.839 -> 
12:00:34.839 -> SSL Error Code: 0
12:00:34.839 -> failed, reason -> MQTT connection error: 0
12:00:34.839 -> BSSL:connect: Name loopup failure
12:00:34.839 -> 
12:00:34.839 -> SSL Error Code: 0
12:00:34.839 -> failed, reason -> MQTT connection error: 0
12:00:34.839 -> BSSL:connect: Name loopup failure
12:00:34.839 -> 
12:00:34.839 -> SSL Error Code: 0
12:00:34.839 -> failed, reason -> MQTT connection error: 0
12:00:34.839 -> BSSL:connect: Name loopup failure
12:00:34.839 -> 
12:00:34.839 -> SSL Error Code: 0
12:00:34.839 -> failed, reason -> MQTT connection error: 0
12:00:34.874 -> BSSL:connect: Name loopup failure
12:00:34.874 -> 
12:00:34.874 -> SSL Error Code: 0
12:00:34.874 -> failed, reason -> MQTT connection error: 0
12:00:34.874 -> BSSL:connect: Name loopup failure
12:00:34.874 -> 
12:00:34.874 -> SSL Error Code: 0
12:00:34.874 -> failed, reason -> MQTT connection error: 0
12:00:34.874 -> BSSL:connect: Name loopup failure
12:00:34.874 -> 
12:00:34.874 -> SSL Error Code: 0
12:00:34.874 -> failed, reason -> MQTT connection error: 0
12:00:34.874 -> BSSL:connect: Name loopup failure
12:00:34.874 -> 
12:00:34.874 -> SSL Error Code: 0
12:00:34.874 -> failed, reason -> MQTT connection error: 0
12:00:34.909 -> BSSL:connect: Name loopup failure
12:00:34.909 -> 
12:00:34.909 -> SSL Error Code: 0
12:00:34.909 -> failed, reason -> MQTT connection error: 0
12:00:34.909 -> BSSL:connect: Name loopup failure
12:00:34.909 -> 
12:00:34.909 -> SSL Error Code: 0
12:00:34.909 -> failed, reason -> MQTT connection error: 0
12:00:34.909 -> BSSL:connect: Name loopup failure
12:00:34.909 -> 
12:00:34.909 -> SSL Error Code: 0
12:00:34.909 -> failed, reason -> MQTT connection error: 0
12:00:34.909 -> BSSL:connect: Name loopup failure
12:00:34.909 -> 
12:00:34.909 -> SSL Error Code: 0
12:00:34.909 -> failed, reason -> MQTT connection error: 0
12:00:34.944 -> BSSL:connect: Name loopup failure
12:00:34.944 -> 
12:00:34.944 -> SSL Error Code: 0
12:00:34.944 -> failed, reason -> MQTT connection error: 0
12:00:34.944 -> BSSL:connect: Name loopup failure
12:00:34.944 -> 
12:00:34.944 -> SSL Error Code: 0
12:00:34.944 -> failed, reason -> MQTT connection error: 0
12:00:34.944 -> BSSL:connect: Name loopup failure
12:00:34.944 -> 
12:00:34.944 -> SSL Error Code: 0
12:00:34.944 -> failed, reason -> MQTT connection error: 0
12:00:34.944 -> BSSL:connect: Name loopup failure
12:00:34.944 -> 
12:00:34.944 -> SSL Error Code: 0
12:00:34.944 -> failed, reason -> MQTT connection error: 0
12:00:34.944 -> BSSL:connect: Name loopup failure
12:00:34.979 -> 
12:00:34.979 -> SSL Error Code: 0
12:00:34.979 -> failed, reason -> MQTT connection error: 0
12:00:34.979 -> BSSL:connect: Name loopup failure
12:00:34.979 -> 
12:00:34.979 -> SSL Error Code: 0
12:00:34.979 -> failed, reason -> MQTT connection error: 0
12:00:34.979 -> BSSL:connect: Name loopup failure
12:00:34.979 -> 
12:00:34.979 -> SSL Error Code: 0
12:00:34.979 -> failed, reason -> MQTT connection error: 0
12:00:34.979 -> BSSL:connect: Name loopup failure
12:00:34.979 -> 
12:00:34.979 -> SSL Error Code: 0
12:00:34.979 -> failed, reason -> MQTT connection error: 0
12:00:35.013 -> BSSL:connect: Name loopup failure
12:00:35.013 -> 
12:00:35.013 -> SSL Error Code: 0
12:00:35.013 -> failed, reason -> MQTT connection error: 0
12:00:35.013 -> BSSL:connect: Name loopup failure
12:00:35.013 -> 
12:00:35.013 -> SSL Error Code: 0
12:00:35.013 -> failed, reason -> MQTT connection error: 0
12:00:35.013 -> BSSL:connect: Name loopup failure
12:00:35.013 -> 
12:00:35.013 -> SSL Error Code: 0
12:00:35.013 -> failed, reason -> MQTT connection error: 0
12:00:35.013 -> BSSL:connect: Name loopup failure
12:00:35.013 -> 
12:00:35.013 -> SSL Error Code: 0
12:00:35.013 -> failed, reason -> MQTT connection error: 0
12:00:35.013 -> BSSL:connect: Name loopup failure
12:00:35.048 -> 
12:00:35.048 -> SSL Error Code: 0
12:00:35.048 -> failed, reason -> MQTT connection error: 0
12:00:35.048 -> BSSL:connect: Name loopup failure
12:00:35.048 -> 
12:00:35.048 -> SSL Error Code: 0
12:00:35.048 -> failed, reason -> MQTT connection error: 0
12:00:35.048 -> BSSL:connect: Name loopup failure
12:00:35.048 -> 
12:00:35.048 -> SSL Error Code: 0
12:00:35.048 -> failed, reason -> MQTT connection error: 0
12:00:35.048 -> BSSL:connect: Name loopup failure
12:00:35.048 -> 
12:00:35.048 -> SSL Error Code: 0
12:00:35.048 -> failed, reason -> MQTT connection error: 0
12:00:35.048 -> BSSL:connect: Name loopup failure
12:00:35.083 -> 
12:00:35.083 -> SSL Error Code: 0
12:00:35.083 -> failed, reason -> MQTT connection error: 0
12:00:35.083 -> BSSL:connect: Name loopup failure
12:00:35.083 -> 
12:00:35.083 -> SSL Error Code: 0
12:00:35.083 -> failed, reason -> MQTT connection error: 0
12:00:35.083 -> BSSL:connect: Name loopup failure
12:00:35.083 -> 
12:00:35.083 -> SSL Error Code: 0
12:00:35.083 -> failed, reason -> MQTT connection error: 0
12:00:35.083 -> BSSL:connect: Name loopup failure
12:00:35.083 -> 
12:00:35.083 -> SSL Error Code: 0
12:00:35.083 -> failed, reason -> MQTT connection error: 0
12:00:35.083 -> BSSL:connect: Name loopup failure
12:00:35.118 -> 
12:00:35.118 -> SSL Error Code: 0
12:00:35.118 -> failed, reason -> MQTT connection error: 0
12:00:35.118 -> BSSL:connect: Name loopup failure
12:00:35.118 -> 
12:00:35.118 -> SSL Error Code: 0
12:00:35.118 -> failed, reason -> MQTT connection error: 0
12:00:35.118 -> BSSL:connect: Name loopup failure
12:00:35.118 -> 
12:00:35.118 -> SSL Error Code: 0
12:00:35.118 -> failed, reason -> MQTT connection error: 0
12:00:35.118 -> BSSL:connect: Name loopup failure
12:00:35.118 -> 
12:00:35.118 -> SSL Error Code: 0
12:00:35.118 -> failed, reason -> MQTT connection error: 0
12:00:35.118 -> BSSL:connect: Name loopup failure
12:00:35.153 -> 
12:00:35.153 -> SSL Error Code: 0
12:00:35.153 -> failed, reason -> MQTT connection error: 0
12:00:35.153 -> BSSL:connect: Name loopup failure
12:00:35.153 -> 
12:00:35.153 -> SSL Error Code: 0
12:00:35.153 -> failed, reason -> MQTT connection error: 0
12:00:35.153 -> BSSL:connect: Name loopup failure
12:00:35.153 -> 
12:00:35.153 -> SSL Error Code: 0
12:00:35.153 -> failed, reason -> MQTT connection error: 0
12:00:35.153 -> BSSL:connect: Name loopup failure
12:00:35.153 -> 
12:00:35.153 -> SSL Error Code: 0
12:00:35.153 -> failed, reason -> MQTT connection error: 0
12:00:35.153 -> BSSL:connect: Name loopup failure
12:00:35.188 -> 
12:00:35.188 -> SSL Error Code: 0
12:00:35.188 -> failed, reason -> MQTT connection error: 0
12:00:35.188 -> BSSL:connect: Name loopup failure
12:00:35.188 -> 
12:00:35.188 -> SSL Error Code: 0
12:00:35.188 -> failed, reason -> MQTT connection error: 0
12:00:35.188 -> BSSL:connect: Name loopup failure
12:00:35.188 -> 
12:00:35.188 -> SSL Error Code: 0
12:00:35.188 -> failed, reason -> MQTT connection error: 0
12:00:35.188 -> BSSL:connect: Name loopup failure
12:00:35.188 -> 
12:00:35.188 -> SSL Error Code: 0
12:00:35.188 -> failed, reason -> MQTT connection error: 0
12:00:35.188 -> BSSL:connect: Name loopup failure
12:00:35.188 -> 
12:00:35.188 -> SSL Error Code: 0
12:00:35.223 -> failed, reason -> MQTT connection error: 0
12:00:35.223 -> BSSL:connect: Name loopup failure
12:00:35.223 -> 
12:00:35.223 -> SSL Error Code: 0
12:00:35.223 -> failed, reason -> MQTT connection error: 0
12:00:35.223 -> BSSL:connect: Name loopup failure
12:00:35.223 -> 
12:00:35.223 -> SSL Error Code: 0
12:00:35.223 -> failed, reason -> MQTT connection error: 0
12:00:35.223 -> BSSL:connect: Name loopup failure
12:00:35.223 -> 
12:00:35.223 -> SSL Error Code: 0
12:00:35.223 -> failed, reason -> MQTT connection error: 0
12:00:35.223 -> BSSL:connect: Name loopup failure
12:00:35.223 -> 
12:00:35.223 -> SSL Error Code: 0
12:00:35.258 -> failed, reason -> MQTT connection error: 0
12:00:35.258 -> BSSL:connect: Name loopup failure
12:00:35.258 -> 
12:00:35.258 -> SSL Error Code: 0
12:00:35.258 -> failed, reason -> MQTT connection error: 0
12:00:35.258 -> BSSL:connect: Name loopup failure
12:00:35.258 -> 
12:00:35.258 -> SSL Error Code: 0
12:00:35.258 -> failed, reason -> MQTT connection error: 0
12:00:35.258 -> BSSL:connect: Name loopup failure
12:00:35.258 -> 
12:00:35.258 -> SSL Error Code: 0
12:00:35.258 -> failed, reason -> MQTT connection error: 0
12:00:35.258 -> BSSL:connect: Name loopup failure
12:00:35.258 -> 
12:00:35.258 -> SSL Error Code: 0
12:00:35.258 -> failed, reason -> MQTT connection error: 0
12:00:35.293 -> BSSL:connect: Name loopup failure
12:00:35.293 -> 
12:00:35.293 -> SSL Error Code: 0
12:00:35.293 -> failed, reason -> MQTT connection error: 0
12:00:35.293 -> BSSL:connect: Name loopup failure
12:00:35.293 -> 
12:00:35.293 -> SSL Error Code: 0
12:00:35.293 -> failed, reason -> MQTT connection error: 0
12:00:35.293 -> BSSL:connect: Name loopup failure
12:00:35.293 -> 
12:00:35.293 -> SSL Error Code: 0
12:00:35.293 -> failed, reason -> MQTT connection error: 0
12:00:35.293 -> BSSL:connect: Name loopup failur
12:00:35.293 -> Soft WDT reset
12:00:35.328 -> 
12:00:35.328 -> >>>stack>>>
12:00:35.328 -> 
12:00:35.328 -> ctx: cont
12:00:35.328 -> sp: 3ffeec20 end: 3ffeec48 offset: 01a0
12:00:35.328 -> <<<stack<<<
12:00:35.328 -> 
12:00:35.328 ->  ets Jan  8 2013,rst cause:4, boot mode:(3,6)
12:00:35.328 -> 
12:00:35.328 -> wdt reset
12:00:35.328 -> load 0x4010f000, len 3456, room 16 
12:00:35.328 -> tail 0
12:00:35.328 -> chksum 0x84
12:00:35.328 -> csum 0x84
12:00:35.328 -> va5432625
12:00:35.328 -> ~ld
12:00:35.396 -> V⸮

Crashdump decode

Decoding stack results
0x4020757e: ESP8266WiFiGenericClass::hostByName(char const*, IPAddress&, unsigned int) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\libraries\ESP8266WiFi\src\ESP8266WiFiGeneric.cpp line 625
0x4020fd21: uart_write(uart_t*, char const*, size_t) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266\uart.cpp line 509
0x4020cbdc: HardwareSerial::write(unsigned char const*, unsigned int) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266/HardwareSerial.h line 165
0x4020d039: Print::print(__FlashStringHelper const*) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266\Print.cpp line 114
0x4020b428: MQTTClient::connect(char const*, char const*, char const*, bool) at C:\Users\*******\Documents\Arduino\libraries\MQTT\src\MQTTClient.cpp line 286
0x4020fd21: uart_write(uart_t*, char const*, size_t) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266\uart.cpp line 509
0x4020cbd0: HardwareSerial::write(unsigned char const*, unsigned int) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266/HardwareSerial.h line 164
0x4020cbdc: HardwareSerial::write(unsigned char const*, unsigned int) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266/HardwareSerial.h line 165
0x4020cf0d: Print::write(char const*) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266/Print.h line 62
0x4020630e: setup() at C:\Users\*******\Documents\Perso\nodemcu_aws/nodemcu_aws.ino line 118
0x402061bc: setup() at C:\Users\*******\Documents\Perso\nodemcu_aws/nodemcu_aws.ino line 77
0x4020616c: setup() at C:\Users\*******\Documents\Perso\nodemcu_aws/nodemcu_aws.ino line 70
0x4020cbdc: HardwareSerial::write(unsigned char const*, unsigned int) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266/HardwareSerial.h line 165
0x4020cbdc: HardwareSerial::write(unsigned char const*, unsigned int) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266/HardwareSerial.h line 165
0x4020e058: loop_wrapper() at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266\core_esp8266_main.cpp line 194
0x4020fc31: uart_tx_fifo_available(int) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266\uart.cpp line 463
0x4020e4c8: micros_overflow_tick(void*) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266\core_esp8266_wiring.cpp line 61
0x4020e4a8: delay_end(void*) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266\core_esp8266_wiring.cpp line 41
0x4020b8b4: fs::FS::_defaultTimeCB() at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266/FS.h line 243
0x401010a4: sntp_time_inc() at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266\sntp-lwip2.cpp line 108
0x40207440: wifi_dns_found_callback(char const*, ip4_addr const*, void*) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\libraries\ESP8266WiFi\src\ESP8266WiFiGeneric.cpp line 707
0x40207440: wifi_dns_found_callback(char const*, ip4_addr const*, void*) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\libraries\ESP8266WiFi\src\ESP8266WiFiGeneric.cpp line 707
0x40207440: wifi_dns_found_callback(char const*, ip4_addr const*, void*) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\libraries\ESP8266WiFi\src\ESP8266WiFiGeneric.cpp line 707
0x4022a458: new_input at glue-lwip/lwip-git.c line 284
0x40227e1c: etharp_output_LWIP2 at core/ipv4/etharp.c line 792
0x40220260: new_linkoutput at glue-lwip/lwip-git.c line 220
0x402201a8: netif_sta_status_callback at glue-lwip/lwip-git.c line 301
0x4022a458: new_input at glue-lwip/lwip-git.c line 284
0x40227e1c: etharp_output_LWIP2 at core/ipv4/etharp.c line 792
0x40220260: new_linkoutput at glue-lwip/lwip-git.c line 220
0x40221a94: dns_recv at core/dns.c line 1171
0x40221634: lwip_cyclic_timer at core/timeouts.c line 233
0x40221634: lwip_cyclic_timer at core/timeouts.c line 233
0x40221634: lwip_cyclic_timer at core/timeouts.c line 233
0x40221634: lwip_cyclic_timer at core/timeouts.c line 233
0x40221634: lwip_cyclic_timer at core/timeouts.c line 233
0x40221634: lwip_cyclic_timer at core/timeouts.c line 233
0x40221634: lwip_cyclic_timer at core/timeouts.c line 233
0x40100a39: umm_malloc_core(size_t) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266\umm_malloc\umm_malloc.cpp line 422
0x4021e716: __ssputs_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 233
0x4020e222: print_stack(uint32_t, uint32_t) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266\core_esp8266_postmortem.cpp line 211
0x4020e3cb: __wrap_system_restart_local() at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266\core_esp8266_postmortem.cpp line 183
0x402206bc: ethernet_output at netif/ethernet.c line 312
0x4020fc5c: uart_do_write_char(int, char) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266\uart.cpp line 476
0x4020fc5c: uart_do_write_char(int, char) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266\uart.cpp line 476
0x4021bdb5: _vsnprintf_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/vsnprintf.c line 73
0x4020fc5c: uart_do_write_char(int, char) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266\uart.cpp line 476
0x4020fc5c: uart_do_write_char(int, char) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266\uart.cpp line 476
0x4020cbd0: HardwareSerial::write(unsigned char const*, unsigned int) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266/HardwareSerial.h line 164
0x4021bdf8: vsnprintf at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/vsnprintf.c line 42
0x4020fd21: uart_write(uart_t*, char const*, size_t) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266\uart.cpp line 509
0x4020cbdc: HardwareSerial::write(unsigned char const*, unsigned int) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266/HardwareSerial.h line 165
0x4020cfbc: Print::printf_P(char const*, ...) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266\Print.cpp line 97
0x40221fc4: dns_gethostbyname at core/dns.c line 1530
0x4020757e: ESP8266WiFiGenericClass::hostByName(char const*, IPAddress&, unsigned int) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\libraries\ESP8266WiFi\src\ESP8266WiFiGeneric.cpp line 625
0x4020fd21: uart_write(uart_t*, char const*, size_t) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266\uart.cpp line 509
0x4020cbdc: HardwareSerial::write(unsigned char const*, unsigned int) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266/HardwareSerial.h line 165
0x4020d039: Print::print(__FlashStringHelper const*) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266\Print.cpp line 114
0x4020b428: MQTTClient::connect(char const*, char const*, char const*, bool) at C:\Users\*******\Documents\Arduino\libraries\MQTT\src\MQTTClient.cpp line 286
0x4020fd21: uart_write(uart_t*, char const*, size_t) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266\uart.cpp line 509
0x4020cbd0: HardwareSerial::write(unsigned char const*, unsigned int) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266/HardwareSerial.h line 164
0x4020cbdc: HardwareSerial::write(unsigned char const*, unsigned int) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266/HardwareSerial.h line 165
0x4020cf0d: Print::write(char const*) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266/Print.h line 62
0x4020630e: setup() at C:\Users\*******\Documents\Perso\nodemcu_aws/nodemcu_aws.ino line 118
0x402061bc: setup() at C:\Users\*******\Documents\Perso\nodemcu_aws/nodemcu_aws.ino line 77
0x4020616c: setup() at C:\Users\*******\Documents\Perso\nodemcu_aws/nodemcu_aws.ino line 70
0x4020cbdc: HardwareSerial::write(unsigned char const*, unsigned int) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266/HardwareSerial.h line 165
0x4020cbdc: HardwareSerial::write(unsigned char const*, unsigned int) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266/HardwareSerial.h line 165
0x4020e058: loop_wrapper() at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266\core_esp8266_main.cpp line 194
0x4020fc31: uart_tx_fifo_available(int) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266\uart.cpp line 463
0x4020e4c8: micros_overflow_tick(void*) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266\core_esp8266_wiring.cpp line 61
0x4020e4a8: delay_end(void*) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266\core_esp8266_wiring.cpp line 41
0x4020b8b4: fs::FS::_defaultTimeCB() at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266/FS.h line 243
0x401010a4: sntp_time_inc() at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266\sntp-lwip2.cpp line 108
0x40207440: wifi_dns_found_callback(char const*, ip4_addr const*, void*) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\libraries\ESP8266WiFi\src\ESP8266WiFiGeneric.cpp line 707
0x40207440: wifi_dns_found_callback(char const*, ip4_addr const*, void*) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\libraries\ESP8266WiFi\src\ESP8266WiFiGeneric.cpp line 707
0x40207440: wifi_dns_found_callback(char const*, ip4_addr const*, void*) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\libraries\ESP8266WiFi\src\ESP8266WiFiGeneric.cpp line 707
0x4022a458: new_input at glue-lwip/lwip-git.c line 284
0x40227e1c: etharp_output_LWIP2 at core/ipv4/etharp.c line 792
0x40220260: new_linkoutput at glue-lwip/lwip-git.c line 220
0x402201a8: netif_sta_status_callback at glue-lwip/lwip-git.c line 301
0x4022a458: new_input at glue-lwip/lwip-git.c line 284
0x40227e1c: etharp_output_LWIP2 at core/ipv4/etharp.c line 792
0x40220260: new_linkoutput at glue-lwip/lwip-git.c line 220
0x40221a94: dns_recv at core/dns.c line 1171
0x40221634: lwip_cyclic_timer at core/timeouts.c line 233
0x40221634: lwip_cyclic_timer at core/timeouts.c line 233
0x40221634: lwip_cyclic_timer at core/timeouts.c line 233
0x40221634: lwip_cyclic_timer at core/timeouts.c line 233
0x40221634: lwip_cyclic_timer at core/timeouts.c line 233
0x40221634: lwip_cyclic_timer at core/timeouts.c line 233
0x40221634: lwip_cyclic_timer at core/timeouts.c line 233
0x40254b2c: ethernet_input at glue-esp/lwip-esp.c line 332
0x40264218: etharp_output at glue-esp/lwip-esp.c line 329
0x40226d70: dhcp_recv at core/ipv4/dhcp.c line 1762
0x4020b8b4: fs::FS::_defaultTimeCB() at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266/FS.h line 243
0x4020b828: littlefs_impl::LittleFSImpl::lfs_flash_read(lfs_config const*, unsigned int, unsigned int, void*, unsigned int) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\libraries\LittleFS\src\LittleFS.cpp line 168
0x4020b858: littlefs_impl::LittleFSImpl::lfs_flash_prog(lfs_config const*, unsigned int, unsigned int, void const*, unsigned int) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\libraries\LittleFS\src\LittleFS.cpp line 175
0x4020b888: littlefs_impl::LittleFSImpl::lfs_flash_erase(lfs_config const*, unsigned int) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\libraries\LittleFS\src\LittleFS.cpp line 182
0x40217374: littlefs_impl::LittleFSImpl::lfs_flash_sync(lfs_config const*) at C:\Users\*******\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\libraries\LittleFS\src\LittleFS.cpp line 192
d-a-v commented 4 years ago

Crashdumps without decoding are useless. Try to #include <LittleFS.h> and replace all occurrences of SPIFFS by LittleFS (your filesystem will need to be repopulated).

edit: SPIFFS is now deprecated, LittleFS is generally faster. edit2: Also try to run at 160MHz.

Zico56 commented 4 years ago

Both modifications (LittleFS & frequency) have been done. Issue is still there.

I've updated description with dump decoding.

d-a-v commented 4 years ago

I would

Zico56 commented 4 years ago

It displays before loop and crash (rest of logs is same as previous test)

14:58:31.761 -> system_get_free_heap_size():36824 / ESP.getMaxFreeBlockSize():36112
14:58:31.966 -> system_get_free_heap_size():33440 / ESP.getMaxFreeBlockSize():33104
14:58:31.966 -> system_get_free_heap_size():33440 / ESP.getMaxFreeBlockSize():33104
14:58:31.966 -> MQTT initialization...
14:58:31.966 -> system_get_free_heap_size():33376 / ESP.getMaxFreeBlockSize():33104

By the way, just for information, I made equivalent test on a ESP32, it works.

d-a-v commented 4 years ago

My two last points are about your private keys stored into the stack. Can you make it a pointer w/new or move it to global ? If your key is too large it might not fit into the stack (like in the BearSSL examples).

devyte commented 4 years ago

@d-a-v is correct, this:

File crtFile = SPIFFS.open(AWS_CERTIFICATE, "r");
char crtBuffer[crtFile.size()];

is likely blowing up the stack. Closing xue to user error.