Skip to content

HTTP SSL client hangs when an access point goes down #5786

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

Closed
Alexey-Tsarev opened this issue Feb 19, 2019 · 8 comments
Closed

HTTP SSL client hangs when an access point goes down #5786

Alexey-Tsarev opened this issue Feb 19, 2019 · 8 comments
Assignees
Labels
waiting for feedback Waiting on additional info. If it's not received, the issue may be closed.
Milestone

Comments

@Alexey-Tsarev
Copy link

Platform

  • Hardware: [NodeMCU]
  • Core Version: [2.5.0]
  • Development Env: [Arduino IDE]
  • Operating System: [MacOS|Debian]

Settings in IDE

  • Module: [Nodemcu (ESP-12E)]
  • Flash Mode: [qio|dio|other]
  • Flash Size: [4MB]
  • lwip Variant: [v1.4|v2 Lower Memory|Higher Bandwidth]
  • Reset Method: [ck|nodemcu]
  • Flash Frequency: [40Mhz]
  • CPU Frequency: [160MHz]
  • Upload Using: [SERIAL]
  • Upload Speed: [921600]

Problem Description

I see a constant Soft WDT reset/wdt reset when I am using HTTP SSL client and I turn off my access point.
Below code can work hours, but if I turn my access point, then ESP8266 hangs.

The issue is not reproducible if uncomment the 6 line:

bool SSLFlag = false;

MCVE Sketch

#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <WiFiClientSecureBearSSL.h>

bool SSLFlag = true;
//bool SSLFlag = false;

char urlSSL[] = "https://35.237.110.54/test/";
char SSLFingerprint[] = "26 24 FA 2B 26 1D DD 1F 2F 12 68 7C 19 49 13 DF D3 8A 7D 65";
char url[] = "http://35.237.110.54/test/";
uint16_t timoutMillis = 500;
char strBuf[2048];


void lg(const char *s) {
    Serial.print(s);
}


void log(const char *s = "") {
    Serial.println(s);
}


bool httpTest() {
    std::unique_ptr <BearSSL::WiFiClientSecure> clientSSL = NULL;
    std::unique_ptr <WiFiClient> client = NULL;
    HTTPClient http;
    bool httpStatus;

    if (SSLFlag) {
        clientSSL.reset(new BearSSL::WiFiClientSecure);

        clientSSL->setBufferSizes(sizeof(strBuf), sizeof(strBuf));
        clientSSL->setFingerprint(SSLFingerprint);
        clientSSL->allowSelfSignedCerts();

        httpStatus = http.begin(*clientSSL, urlSSL);
    } else {
        client.reset(new WiFiClient);
        httpStatus = http.begin(*client, url);
    }

    if (httpStatus) {
        http.setTimeout(timoutMillis);

        lg("Getting data... ");
        int httpCode = http.GET();
        log("complete");

        int httpResponseSize = http.getSize();

        snprintf(strBuf, sizeof(strBuf), "Got HTTP response code: %i. Response size: %i",
                 httpCode,
                 httpResponseSize);
        log(strBuf);

        if (httpResponseSize > 0) {
            log("Response:");
            log(http.getString().c_str());
        }

        http.end();

        if (SSLFlag)
            clientSSL.reset();
        else
            client.reset();
    } else {
        log("Failed to connect");
    }
}


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

    while (!Serial)
        yield();

    WiFi.begin();
}


void loop() {
    if (WiFi.status() == WL_CONNECTED) {
        httpTest();
    } else {
        log("Not connected");
    }
}

Debug Messages

Not connected
Not connected
Not connected
Not connected
Not connected
Not connected
Not connected
Not connected
Not connected
Not connected
scandone
state: 0 -> 2 (b0)
Not connected
Not connected
Not connected
Not connected
Not connected
Not connected
Not connected
Not connected
state: 2 -> 3 (0)
Not connected
Not connected
Not connected
state: 3 -> 5 (10)
add 0
aid 1
cnt
Not connected
Not connected
Not connected
Not connected
Not connected
Not connected
Not connected
Not connected
Not connected
Not connected
connected with ArtLuch.RU-IoT, channel 12
dhcp client start...
Not connected
Not connected
Not connected
Not connected
Not connected
Not connected
Not connected
Not connected
Not connected
Not connected
ip:192.168.3.90,mask:255.255.255.0,gw:192.168.3.1
Getting data... :ref 1
:wr 218 0
:wrc 218 218 0
:ack 218
:rn 536
:rch 536, 536
:rd 5, 1072, 0
:rdi 536, 5
:rd 89, 1072, 5
:rdi 531, 89
:rch 1072, 245
:rd 5, 1317, 94
:rdi 442, 5
:rd 871, 1317, 99
:rdi 437, 437
:c 437, 536, 1317
:rdi 536, 434
:rd 5, 781, 434
:rdi 102, 5
:rd 333, 781, 439
:rdi 97, 97
:c 97, 536, 781
:rdi 245, 236
:rd 5, 245, 236
:rdi 9, 5
:rd 4, 245, 241
:rdi 4, 4
:c0 4, 245
:wr 75 0
:wrc 75 75 0
:wr 6 0
:wrc 6 6 0
:wr 37 0
:wrc 37 37 0
:ack 75
:ack 43
:rn 43
:rd 5, 43, 0
:rdi 43, 5
:rd 1, 43, 5
:rdi 38, 1
:rd 5, 43, 6
:rdi 37, 5
:rd 32, 43, 11
:rdi 32, 32
:c0 32, 43
:wr 166 0
:wrc 166 166 0
:ack 166
:rn 266
:rch 266, 23
:rcl
:abort
:rd 5, 289, 0
:rdi 266, 5
:rd 261, 289, 5
:rdi 261, 261
:c 261, 266, 289
complete
Got HTTP response code: 200. Response size: 15
Response:
:rd 5, 23, 0
:rdi 23, 5
:rd 18, 23, 5
:rdi 18, 18
:c0 18, 23
 => test OK <=

:ur 1
:del
Getting data... :ref 1
:wr 218 0
:wrc 218 218 0
:ack 218
:rn 536
:rd 5, 536, 0
:rdi 536, 5
:rd 89, 536, 5
:rdi 531, 89
:rd 5, 536, 94
:rdi 442, 5
:rd 437, 536, 99
:rdi 437, 437
:c0 437, 536
:rn 781
:rd 434, 781, 0
:rdi 536, 434
:rd 5, 781, 434
:rdi 102, 5
:rd 333, 781, 439
:rdi 97, 97
:c 97, 536, 781
:rdi 245, 236
:rd 5, 245, 236
:rdi 9, 5
:rd 4, 245, 241
:rdi 4, 4
:c0 4, 245
:wr 75 0
:wrc 75 75 0
:wr 6 0
:wrc 6 6 0
:wr 37 0
:wrc 37 37 0
:ack 75
:ack 43
:rn 43
:rd 5, 43, 0
:rdi 43, 5
:rd 1, 43, 5
:rdi 38, 1
:rd 5, 43, 6
:rdi 37, 5
:rd 32, 43, 11
:rdi 32, 32
:c0 32, 43
:wr 166 0
:wrc 166 166 0
:ack 166
:rn 266
:rd 5, 266, 0
:rdi 266, 5
:rd 261, 266, 5
:rdi 261, 261
:c0 261, 266
complete
Got HTTP response code: 200. Response size: 15
Response:
:rn 23
:rcl
:abort
:rd 5, 23, 0
:rdi 23, 5
:rd 18, 23, 5
:rdi 18, 18
:c0 18, 23
 => test OK <=

:ur 1
:del
Getting data... :ref 1
:wr 218 0
:wrc 218 218 0
:ack 218
:rn 536
:rd 5, 536, 0
:rdi 536, 5
:rd 89, 536, 5
:rdi 531, 89
:rch 536, 536
:rd 5, 1072, 94
:rdi 442, 5
:rd 871, 1072, 99
:rdi 437, 437
:c 437, 536, 1072
:rdi 536, 434
:rch 536, 245
:rd 5, 781, 434
:rdi 102, 5
:rd 333, 781, 439
:rdi 97, 97
:c 97, 536, 781
:rdi 245, 236
:rd 5, 245, 236
:rdi 9, 5
:rd 4, 245, 241
:rdi 4, 4
:c0 4, 245
:wr 75 0
:wrc 75 75 0
:wr 6 0
:wrc 6 6 0
:wr 37 0
:wrc 37 37 0
pm open,type:2 0
bcn_timout,ap_probe_send_start
ap_probe_send over, rest wifi status to disassoc
state: 5 -> 0 (1)
rm 0
pm close 7

Soft WDT reset

>>>stack>>>

ctx: sys
sp: 3fffece0 end: 3fffffb0 offset: 01b0
3fffee90:  00000000 40236e40 3fff073c 40202e4b
3fffeea0:  40234eb4 00153cf7 3fff073c 402049b2
3fffeeb0:  40234e53 3ffed8ac 00000012 0000011e
3fffeec0:  40235404 3ffed8ac 00000000 40237534
3fffeed0:  40234e31 3ffeda28 00000002 3ffee9b8
3fffeee0:  3fffdc10 00000000 3fff073c 40204a2f
3fffeef0:  0000003c 3fff050c 3fff073c 40203359
3fffef00:  0000001e 3fff050c 3fff073c 402048fb
3fffef10:  3ffecd80 3fff050c 3fff073c 40203aac
3fffef20:  3ffecd80 40100f1b 3fff050c 40202c70
3fffef30:  40100f56 00000000 00000002 3ffee9b8
3fffef40:  3fffdc10 00000000 3fff050c 4024a9e8
3fffef50:  40000f49 3fffdab0 3fffdab0 40000f49
3fffef60:  40000e19 40001878 00000002 00000000
3fffef70:  3fffff10 aa55aa55 000000fa 40104ac8
3fffef80:  40104ace 00000002 00000000 da1f3643
3fffef90:  4010000d 6ce52444 d190b939 37631d51
3fffefa0:  40100d58 3fffef3c 40100d05 3ffffd48
3fffefb0:  3fffffc0 00000000 00000000 feefeffe
3fffefc0:  feefeffe feefeffe feefeffe feefeffe
3fffefd0:  feefeffe feefeffe feefeffe feefeffe
3fffefe0:  feefeffe feefeffe feefeffe feefeffe
3fffeff0:  feefeffe feefeffe feefeffe feefeffe
3ffff000:  feefeffe feefeffe feefeffe feefeffe
3ffff010:  feefeffe feefeffe feefeffe feefeffe
3ffff020:  feefeffe feefeffe feefeffe feefeffe
3ffff030:  feefeffe feefeffe feefeffe feefeffe
3ffff040:  feefeffe feefeffe feefeffe feefeffe
3ffff050:  feefeffe feefeffe feefeffe feefeffe
3ffff060:  feefeffe feefeffe feefeffe feefeffe
3ffff070:  feefeffe feefeffe feefeffe feefeffe
3ffff080:  feefeffe feefeffe feefeffe feefeffe
3ffff090:  feefeffe feefeffe feefeffe feefeffe
3ffff0a0:  feefeffe feefeffe feefeffe feefeffe
3ffff0b0:  feefeffe feefeffe feefeffe feefeffe
3ffff0c0:  feefeffe feefeffe feefeffe feefeffe
3ffff0d0:  feefeffe feefeffe feefeffe feefeffe
3ffff0e0:  feefeffe feefeffe feefeffe feefeffe
3ffff0f0:  feefeffe feefeffe feefeffe feefeffe
3ffff100:  feefeffe feefeffe feefeffe feefeffe
3ffff110:  feefeffe feefeffe feefeffe feefeffe
3ffff120:  feefeffe feefeffe feefeffe feefeffe
3ffff130:  feefeffe feefeffe feefeffe feefeffe
3ffff140:  feefeffe feefeffe feefeffe feefeffe
3ffff150:  feefeffe feefeffe feefeffe feefeffe
3ffff160:  feefeffe feefeffe feefeffe feefeffe
3ffff170:  feefeffe feefeffe feefeffe feefeffe
3ffff180:  feefeffe feefeffe feefeffe feefeffe
3ffff190:  feefeffe feefeffe feefeffe feefeffe
3ffff1a0:  feefeffe feefeffe feefeffe feefeffe
3ffff1b0:  feefeffe feefeffe feefeffe feefeffe
3ffff1c0:  feefeffe feefeffe feefeffe feefeffe
3ffff1d0:  feefeffe feefeffe feefeffe feefeffe
3ffff1e0:  feefeffe feefeffe feefeffe feefeffe
3ffff1f0:  feefeffe feefeffe feefeffe feefeffe
3ffff200:  feefeffe feefeffe feefeffe feefeffe
3ffff210:  feefeffe feefeffe feefeffe feefeffe
3ffff220:  feefeffe feefeffe feefeffe feefeffe
3ffff230:  feefeffe feefeffe feefeffe feefeffe
3ffff240:  feefeffe feefeffe feefeffe feefeffe
3ffff250:  feefeffe feefeffe feefeffe feefeffe
3ffff260:  feefeffe feefeffe feefeffe feefeffe
3ffff270:  feefeffe feefeffe feefeffe feefeffe
3ffff280:  feefeffe feefeffe feefeffe feefeffe
3ffff290:  feefeffe feefeffe feefeffe feefeffe
3ffff2a0:  feefeffe feefeffe feefeffe feefeffe
3ffff2b0:  feefeffe feefeffe feefeffe feefeffe
3ffff2c0:  feefeffe feefeffe feefeffe feefeffe
3ffff2d0:  feefeffe feefeffe feefeffe feefeffe
3ffff2e0:  feefeffe feefeffe feefeffe feefeffe
3ffff2f0:  feefeffe feefeffe feefeffe feefeffe
3ffff300:  feefeffe feefeffe feefeffe feefeffe
3ffff310:  feefeffe feefeffe feefeffe feefeffe
3ffff320:  feefeffe feefeffe feefeffe feefeffe
3ffff330:  feefeffe feefeffe feefeffe feefeffe
3ffff340:  feefeffe feefeffe feefeffe feefeffe
3ffff350:  feefeffe feefeffe feefeffe feefeffe
3ffff360:  feefeffe feefeffe feefeffe feefeffe
3ffff370:  feefeffe feefeffe feefeffe feefeffe
3ffff380:  feefeffe feefeffe feefeffe feefeffe
3ffff390:  00000002 00000000 00000020 401015ba
3ffff3a0:  3ffe94d2 401049a4 3ffecc40 feefeffe
3ffff3b0:  00000001 40103bc7 3ffed698 feefeffe
3ffff3c0:  4010402a 021a4a27 3ffed9b4 401024a6
3ffff3d0:  3ffe9d8c 00000000 00000000 feefeffe
3ffff3e0:  40103b0e 0000001d 7fffffff 00000002
3ffff3f0:  0000011d 3ffe9d8c 3ffe9d8c 00000001
3ffff400:  40102983 00080000 feefeffe feefeffe
3ffff410:  00000000 021a4a27 00002200 4000050c
3ffff420:  3fffc278 40102680 3fffc200 00000022
3ffff430:  3ffff440 feefeffe feefeffe feefeffe
3ffff440:  4021ca19 00000030 00000019 ffffffff
3ffff450:  4021c7c4 37d9a2d1 02fa9389 bcf0b57a
3ffff460:  36f8b3d9 919002ae 884fddac becbc06c
3ffff470:  59b00fcf 3df492a6 40256888 27952542
3ffff480:  a6c6c957 ef94720a d8a00d6d 00000030
3ffff490:  feefeffe feefeffe feefeffe feefeffe
3ffff4a0:  feefeffe feefeffe feefeffe feefeffe
3ffff4b0:  feefeffe feefeffe feefeffe feefeffe
3ffff4c0:  feefeffe feefeffe feefeffe feefeffe
3ffff4d0:  feefeffe feefeffe feefeffe feefeffe
3ffff4e0:  feefeffe feefeffe feefeffe feefeffe
3ffff4f0:  feefeffe feefeffe feefeffe feefeffe
3ffff500:  feefeffe feefeffe feefeffe feefeffe
3ffff510:  feefeffe feefeffe feefeffe feefeffe
3ffff520:  feefeffe feefeffe feefeffe feefeffe
3ffff530:  feefeffe feefeffe feefeffe feefeffe
3ffff540:  4eae0d1c 164bfb09 f4f106da bc206853
3ffff550:  bba61be2 28e7f294 4f35e8b2 5ad4af7f
3ffff560:  5c5c5c5c 5c5c5c5c 5c5c5c5c 5c5c5c5c
3ffff570:  5c5c5c5c 5c5c5c5c 5c5c5c5c 5c5c5c5c
3ffff580:  3ee4c92f 031c8a01 f9f3c7a4 41b84d20
3ffff590:  85035302 cbbcdaf2 4d838207 33f37071
3ffff5a0:  b4ed3a12 d0ae8b7f 7c9f0545 1a680d62
3ffff5b0:  2e52918f 551fd701 4f71d738 8ea9fd55
3ffff5c0:  01e22f64 e8040d4b c2b7369c b8ac3436
3ffff5d0:  222ccec7 9f8cf69c 12e741ce 9900aeec
3ffff5e0:  2d3732ae 1a2ee32b 78762f98 aa807e99
3ffff5f0:  cb5c5b6e e0cd77f5 77d12693 5f4978c3
3ffff600:  700adf03 12020136 57f6d46e 263b9650
3ffff610:  80000000 00000000 00000000 00000000
3ffff620:  00000000 00000000 00000000 00000300
3ffff630:  7581a790 445ed360 325fe4e7 d238482f
3ffff640:  6d188844 a2734157 ee47e0e3 75671787
3ffff650:  d0b4ee73 9b8df2c1 bcfc07a6 00000080
3ffff660:  03030000 010000d1 a21aec90 0000805e
3ffff670:  7195a73b 7eb6aede c85bc04a 7a0eb746
3ffff680:  a5c40000 fe7ef477 a8c02bc0 5acca9cc
3ffff690:  30c0acc0 2fc02cc0 afc023c0 adc0aec0
3ffff6a0:  28c009c0 27c024c0 14c02dc0 13c00ac0
3ffff6b0:  32c025c0 31c02ec0 2ac004c0 29c026c0
3ffff6c0:  0f009c00 0ec005c0 9dc0a0c0 9dc09cc0
3ffff6d0:  3d002f00 a1003c00 12c003c0 35c008c0
3ffff6e0:  ba240656 b4264212 c6869c1a 65487c56
3ffff6f0:  9f55ae48 43287d32 820ccabd ff62461c
3ffff700:  84946d6d 374ed259 689f68d9 351541f2
3ffff710:  f28b0c52 339c5b7f e364e589 7ad4bf16
3ffff720:  1aa1ad61 5483d378 e4959247 7b9a6417
3ffff730:  58f521d5 969d8605 2ea1fab1 d7f7e264
3ffff740:  e8f0878f e5a84c58 c90c9cb3 a6770cda
3ffff750:  976939ec 34b87ed3 5b19af10 3acaf633
3ffff760:  319077b1 d9f91ecb 82ee5d23 4895e595
3ffff770:  b614b35c 212a0e78 9190bc80 6a325ef8
3ffff780:  8449fee3 c15ade48 9e7772c5 fd127e11
3ffff790:  f3d45bb8 d95c5513 947509ab 25c95282
3ffff7a0:  c3c774eb da4c1895 c1e7a11c 4ca2ae00
3ffff7b0:  6fcf00a1 9be85d98 aa27da3d a65212cf
3ffff7c0:  a7b98b47 81c568aa a9bddbe8 4123c4d5
3ffff7d0:  5e8829f6 a4f09629 484e4c55 251534aa
3ffff7e0:  b7667a06 ce58c13c 1353d4d0 132c117f
3ffff7f0:  f3815c50 3be34e11 b9ee78f2 d29c81c2
3ffff800:  dda7d540 318ca774 20aa1733 d07908f3
3ffff810:  b44f72bc ae078b7f 944fed70 bddac5d8
3ffff820:  e692a0ce c4d0ab17 ed561576 076d64a5
3ffff830:  2e18af2a cfd8a135 85950d0a 58180681
3ffff840:  22e38c3b 82b02a9c 5d22e7f9 f4c1ca19
3ffff850:  309c7814 90bde528 026c24a4 4386d31a
3ffff860:  45dd64e8 b818ef31 ae4c87c3 ca6e417b
3ffff870:  8a6df2b7 9cef472c 257981d4 6e853e48
3ffff880:  c9a36614 5bf9f8d3 58d2e41b 91d226a6
3ffff890:  177e81fd d31c163e c0b0da34 f36de912
3ffff8a0:  6eea501b 50916e5e 33e8d16a 74fd46ac
3ffff8b0:  b6f94ed7 350c6820 8bac0412 6c06536b
3ffff8c0:  b9420a87 986d8e99 0de4e46e 06cde4a4
3ffff8d0:  3da463c5 8990e32d a5fb7bf5 f4d6728d
3ffff8e0:  ccc5514b ce04de55 402567d0 833e7c7e
3ffff8f0:  3ffff8e8 3cab4ac8 1b4e95f8 7197add1
3ffff900:  96dbafce 3badde14 99ff8f71 6c4dfb01
3ffff910:  ac4f1473 179cfe45 cce5516b 1b17d5af
3ffff920:  b54ebf44 1f1dbe6a 5e9ad1dc ac4f1473
3ffff930:  99ff8f71 5e9ad1dc 96dbafce 179cfe45
3ffff940:  3ffffa80 3cab4ac8 ce04de55 1b4e95f8
3ffff950:  1f1dbe6a 3badde14 f3bcc908 6a09e667
3ffff960:  84caa73b bb67ae85 fe94f82b 3c6ef372
3ffff970:  5f1d36f1 a54ff53a ade682d1 510e527f
3ffff980:  2b3e6c1f 9b05688c fb41bd6b 1f83d9ab
3ffff990:  137e2179 5be0cd19 748f82ee 31a55c8c
3ffff9a0:  4010390d 00040000 7fffffff 00000000
3ffff9b0:  3fff2c24 00000080 00000080 4021c52c
3ffff9c0:  3ffff9f0 3ffffa80 3ffffa70 4021cd97
3ffff9d0:  00000000 f55cd498 505d2200 3ffff9f0
3ffff9e0:  40256514 00000006 3fff2ba4 40229509
3ffff9f0:  4000050c d1000001 00000303 5e800000
3ffffa00:  90ec1aa2 deaeb67e 3ba79571 46b70e7a
3ffffa10:  4ac05bc8 77f47efe 0000c4a5 cca9cc5a
3ffffa20:  c02bc0a8 c02cc02f c0acc030 c0aec0ad
3ffffa30:  c023c0af c024c027 c009c028 c00ac013
3ffffa40:  c02dc014 c02ec031 c025c032 c026c029
3ffffa50:  c004c02a c005c00e 009c000f c09cc09d
3ffffa60:  c0a0c09d 003c00a1 002f003d c008c035
3ffffa70:  c003c012 bb33877d 00000080 00000000
3ffffa80:  76fb4586 dba19439 51aff8a6 70b66dca
3ffffa90:  9570a7f9 540bf1b8 402406eb 00000001
3ffffaa0:  ffffffff 00000000 3ffe9621 00000008
3ffffab0:  4024073a 3ffecc18 3ffefdcc 00000001
3ffffac0:  40240846 3ffecc18 3ffefdcc 3ffecc18
3ffffad0:  00000002 00000000 402406eb 00000001
3ffffae0:  ffffffff 00000000 3ffe9621 00000008
3ffffaf0:  00000002 00000000 00000020 401015ba
3ffffb00:  3ffe94d2 401049a4 3ffecc18 3ffecc18
3ffffb10:  00000001 40103bc7 3ffed698 401015ba
3ffffb20:  00000003 00000000 0000000a 00000000
3ffffb30:  00000003 00000000 0000000a 00000000
3ffffb40:  40103b0e 00000023 7fffffff 00000002
3ffffb50:  000005e0 00000000 401037c9 3ffed650
3ffffb60:  0000003c 00000000 00003000 000000fc
3ffffb70:  0000003c 00000001 4010490a 3ffed650
3ffffb80:  000005e0 00000000 401037c9 3ffed650
3ffffb90:  0000003c 00000000 401037c9 000000fc
3ffffba0:  00000000 00000000 00000020 401015ba
3ffffbb0:  3ffe94d0 401049a4 3ffecd80 3ffed274
3ffffbc0:  00000001 40103b65 3ffecd80 3ffed274
3ffffbd0:  40103fc4 3ffed650 3ffed620 00000000
3ffffbe0:  00000000 40103e82 3ffed650 00000000
3ffffbf0:  4010450f 40103e82 3ffed650 3ffecd80
3ffffc00:  401043da 3ffed650 3ffecd80 00000000
3ffffc10:  0000007f 00040000 7fffffff 00000000
3ffffc20:  401046d4 00080000 7fffffff 00000000
3ffffc30:  401027ff 4010390a 00040000 00000000
3ffffc40:  00000000 4010282a 53000000 4000050c
3ffffc50:  00000000 00000000 0000001f 401052a1
3ffffc60:  00000000 00000000 0000001f 401052a1
3ffffc70:  4000050c 00000030 00000010 ffffffff
3ffffc80:  40202e37 00000030 00000010 ffffffff
3ffffc90:  402049b2 3fff081c 00000000 00000002
3ffffca0:  00000005 00000945 00000000 fffffffe
3ffffcb0:  ffffffff 3fffc6fc 00000001 3fff073c
3ffffcc0:  003f156d 00000008 00000001 00000030
3ffffcd0:  003dcba3 00000008 00000001 00000030
3ffffce0:  00000000 00000006 3fff3774 00000000
3ffffcf0:  00000000 4bc6a7f0 60418937 00000000
3ffffd00:  00000000 00000000 4bc6a7f0 00000000
3ffffd10:  3ffef714 00000105 00000105 40100564
3ffffd20:  00000025 00000000 3fff045c 40100cbc
3ffffd30:  00ac1da7 40201945 3ffe857c 003f1547
3ffffd40:  00000008 00000001 3ffe857c 003f1572
3ffffd50:  00000008 00000001 40207d38 3fffefa0
3ffffd60:  00000000 40256850 00000064 40207e16
3ffffd70:  00000000 00000000 3fff073c 40207e59
3ffffd80:  00000008 003f1571 3fff073c 40204951
3ffffd90:  00000025 00000005 d93418ec 00000000
3ffffda0:  4021ebd4 4021eb7c 3fff2094 4021e68a
3ffffdb0:  3fff2594 3fff087c 3fff2094 00000000
3ffffdc0:  00000001 00000001 3fff073c 40204be4
3ffffdd0:  00000001 3fff087c 3fff073c 40204df3
3ffffde0:  00000000 3ffffe40 40207d38 3fffefa0
3ffffdf0:  00000000 00000000 00000000 402014d7
3ffffe00:  00000d50 3fff081c 3fff073c 40203a24
3ffffe10:  000001bb 00000010 3ffffe64 00000000
3ffffe20:  000001bb 3fff073c 3fff087c 00000000
3ffffe30:  000001bb 3fff073c 3fff087c 40204eba
3ffffe40:  40208728 366eed23 3ffffee0 40208384
3ffffe50:  00000001 3fff073c 3ffffee0 40205ed4
3ffffe60:  3fffff58 00000001 3fff045c 40100cbc
3ffffe70:  3fff0464 00000000 3ffffee0 402066bc
3ffffe80:  00000001 00000000 3ffef61c 40206ba8
3ffffe90:  3ffef714 0000017c 0000017c 40206ec1
3ffffea0:  3ffe8a1b 000001f4 3fff073c 40204057
3ffffeb0:  00000000 000001f4 3fff073c 3ffe8551
3ffffec0:  00000001 00000000 3fff073c 4020676a
3ffffed0:  3fffdad0 00000000 3fff073c 4020296c
3ffffee0:  00000000 00000000 3fff073c 3fff087c
3ffffef0:  0000000f 0000000d 3f0001bb 000001f4
3fffff00:  3fff067c 0000000f 00000006 3fff069c
3fffff10:  0000000f 00000005 3fff03d4 0000000f
3fffff20:  00000000 3fff03f4 0000001f 00000011
3fffff30:  3fff0424 0000000f 00000000 00000000
3fffff40:  00000000 00000000 ffffffff 40206e00
3fffff50:  00000000 00000000 00000000 00000000
3fffff60:  00000000 3ffef668 00000000 00000001
3fffff70:  4024943f 40202d44 3ffef61c 40206f10
3fffff80:  3ffefdcc 40202d44 3ffef668 3ffef698
3fffff90:  3fffdad0 00000000 3ffef668 40202a61
3fffffa0:  3fffdad0 00000000 3ffef668 40207de4
<<<stack<<<

 ets Jan  8 2013,rst cause:2, boot mode:(1,6)


 ets Jan  8 2013,rst cause:4, boot mode:(1,6)

wdt reset

Decoding stack results

0x40202e4b: WiFiClient::peekBytes(unsigned char*, unsigned int) at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/libraries/ESP8266WiFi/src/WiFiClient.cpp line 303
0x402049b2: BearSSL::WiFiClientSecure::_run_until(unsigned int, bool) at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/libraries/ESP8266WiFi/src/WiFiClientSecureBearSSL.cpp line 421
0x40204a2f: BearSSL::WiFiClientSecure::_run_until(unsigned int, bool) at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/libraries/ESP8266WiFi/src/WiFiClientSecureBearSSL.cpp line 495
0x40203359: ClientContext::wait_until_sent(int) at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/libraries/ESP8266WiFi/src/include/ClientContext.h line 345
0x402048fb: std::__shared_count(__gnu_cxx::_Lock_policy)0>::__shared_count  , std::allocator  >(unsigned char*, std::default_delete , std::allocator ) at /Users/atsarev/Library/Arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-3-20ed2b9/xtensa-lx106-elf/include/c++/4.8.2/ext/new_allocator.h line 104
0x40203aac: BearSSL::insecure_start_chain(br_x509_class const**, char const*) at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/libraries/ESP8266WiFi/src/WiFiClientSecureBearSSL.cpp line 606
0x40202c70: ESP8266WiFiGenericClass::_eventCallback(void*) at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/libraries/ESP8266WiFi/src/ESP8266WiFiGeneric.cpp line 65
0x4021ca19: sntp_recv at apps/sntp/sntp.c line 508
0x4021c7c4: icmp_dest_unreach at core/ipv4/icmp.c line 312
0x4021c52c: icmp_send_response at core/ipv4/icmp.c line 353
0x4021cd97: inet_chksum_pbuf at core/inet_chksum.c line 588
0x40229509: br_ccm_reset at src/aead/ccm.c line 71
0x40202e37: WiFiClient::peekBytes(unsigned char*, unsigned int) at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/libraries/ESP8266WiFi/src/WiFiClient.cpp line 298
0x402049b2: BearSSL::WiFiClientSecure::_run_until(unsigned int, bool) at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/libraries/ESP8266WiFi/src/WiFiClientSecureBearSSL.cpp line 421
0x40100564: _umm_free at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/cores/esp8266/umm_malloc/umm_malloc.c line 1300
0x40201945: _malloc_r at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/cores/esp8266/heap.c line 20
0x40207d38: String::charAt(unsigned int) const at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/cores/esp8266/WString.cpp line 550
0x40207e16: String::lastIndexOf(String const&, unsigned int) const at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/cores/esp8266/WString.cpp line 648
0x40207e59: String::substring(unsigned int, unsigned int) const at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/cores/esp8266/WString.cpp line 655
0x4021ebd4: sha2big_round at src/hash/sha2big.c line 124
0x4021eb7c: sha2big_round at src/hash/sha2big.c line 124
0x4021e68a: br_sha1_round at src/hash/sha1.c line 81
0x40204be4: BearSSL::WiFiClientSecure::available() at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/libraries/ESP8266WiFi/src/WiFiClientSecureBearSSL.cpp line 378
0x40204df3: BearSSL::WiFiClientSecure::_connectSSL(char const*) at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/libraries/ESP8266WiFi/src/WiFiClientSecureBearSSL.cpp line 897
0x40207d38: String::charAt(unsigned int) const at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/cores/esp8266/WString.cpp line 550
0x402014d7: delay at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/cores/esp8266/core_esp8266_wiring.c line 46
0x40203a24: std::_Sp_counted_deleter  ::_Deleter   >, std::allocator , (__gnu_cxx::_Lock_policy)0>::_M_destroy() at /Users/atsarev/Library/Arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-3-20ed2b9/xtensa-lx106-elf/include/c++/4.8.2/bits/shared_ptr_base.h line 350
0x40204eba: BearSSL::WiFiClientSecure::connect(char const*, unsigned short) at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/libraries/ESP8266WiFi/src/WiFiClientSecureBearSSL.cpp line 223
0x40208728: WiFiClient::operator bool() at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/libraries/ESP8266WiFi/src/WiFiClient.cpp line 349
0x40208384: init_done() at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/cores/esp8266/core_esp8266_main.cpp line 181
0x40205ed4: HTTPClient::addHeader(String const&, String const&, bool, bool) at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.cpp line 959
0x402066bc: HTTPClient::writeToStreamDataBlock(Stream*, int) at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.cpp line 1271
0x40206ba8: HTTPClient::~HTTPClient() at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.cpp line 126
0x40206ec1: HTTPClient::beginInternal(String, char const*) at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.cpp line 320
0x40204057: std::__shared_ptr ::operator=(std::__shared_ptr &&) at /Users/atsarev/Library/Arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-3-20ed2b9/xtensa-lx106-elf/include/c++/4.8.2/bits/move.h line 177
0x4020676a: HTTPClient::writeToStreamDataBlock(Stream*, int) at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.cpp line 1251
0x4020296c: httpTest() at /Users/atsarev/dev/SmartBox/src/HTTPClient/HTTPClient.ino line 28
0x40206e00: HTTPClient::beginInternal(String, char const*) at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.cpp line 300
0x40202d44: ESP8266WiFiSTAClass::begin() at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/libraries/ESP8266WiFi/src/ESP8266WiFiSTA.cpp line 217
0x40206f10: HTTPClient::beginInternal(String, char const*) at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.cpp line 320
0x40202d44: ESP8266WiFiSTAClass::begin() at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/libraries/ESP8266WiFi/src/ESP8266WiFiSTA.cpp line 217
0x40202a61: wifi_dns_found_callback(char const*, ip4_addr const*, void*) at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/libraries/ESP8266WiFi/src/ESP8266WiFiGeneric.cpp line 576
0x40207de4: String::lastIndexOf(String const&, unsigned int) const at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/cores/esp8266/WString.cpp line 638
@Alexey-Tsarev
Copy link
Author

Alexey-Tsarev commented Feb 20, 2019

I made a simpler example, which works in 2.4.2

#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>

const char *host = "35.237.110.54";
const char *url = "/test/";
const int httpsPort = 443;
const char *fingerprint = "26 24 FA 2B 26 1D DD 1F 2F 12 68 7C 19 49 13 DF D3 8A 7D 65";


bool httpTest() {
    WiFiClientSecure client;
    client.allowSelfSignedCerts();

    if (client.connect(host, httpsPort)) {
        Serial.println("connection OK");
    } else {
        Serial.println("connection failed");
        return false;
    }

    if (client.verify(fingerprint, host)) {
        Serial.println("certificate matches");
    } else {
        Serial.println("certificate doesn't match");
    }

    Serial.print("requesting URL: ");
    Serial.println(url);

    client.print(String("GET ") + url + " HTTP/1.1\r\n" +
                 "Host: " + host + "\r\n" +
                 "User-Agent: BuildFailureDetectorESP8266\r\n" +
                 "Connection: close\r\n\r\n");

    while (client.connected()) {
        String line = client.readStringUntil('\n');
        if (line == "\r") {
            Serial.println("headers received");
            break;
        }
    }

    String line = client.readStringUntil('\n');

    Serial.println("reply:");
    Serial.println(line);
    Serial.println("");
}


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

    while (!Serial)
        yield();

    WiFi.begin();
}

void loop() {
    if (WiFi.status() == WL_CONNECTED) {
        httpTest();
    } else {
        Serial.println("Not connected");
    }
}

It works perfectly in 2.4.2 when I turn off my access point:

connection OK
certificate doesn't match
requesting URL: /test/
headers received
reply:
 => test OK <=

connection OK
certificate doesn't match
requesting URL: /test/
headers received
reply:
 => test OK <=

bcn_timout,ap_probe_send_start
ap_probe_send over, rest wifi status to disassoc
state: 5 -> 0 (1)
rm 0
pm close 7
Error: connection lost
connection failed
Not connected
Not connected
Not connected
Not connected
Not connected
scandone
no ArtLuch.RU-IoT found, reconnect after 1s
Not connected
Not connected
Not connected
Not connected
Not connected
Not connected
Not connected
Not connected
reconnect
Not connected
Not connected
Not connected
Not connected
Not connected
Not connected
Not connected
scandone
no ArtLuch.RU-IoT found, reconnect after 1s
Not connected
Not connected
Not connected
Not connected
Not connected
Not connected
reconnect
Not connected
Not connected
Not connected
Not connected
Not connected
Not connected
Not connected
scandone
state: 0 -> 2 (b0)
Not connected
Not connected
Not connected
state: 2 -> 3 (0)
Not connected
Not connected
Not connected
Not connected
state: 3 -> 5 (10)
add 0
aid 1
cnt 
Not connected
Not connected
Not connected
Not connected
Not connected

connected with ArtLuch.RU-IoT, channel 12
dhcp client start...
Not connected
Not connected
Not connected
Not connected
Not connected
ip:192.168.3.90,mask:255.255.255.0,gw:192.168.3.1
connection OK
certificate doesn't match
requesting URL: /test/
headers received
reply:
 => test OK <=

connection OK
certificate doesn't match
requesting URL: /test/
headers received
reply:
 => test OK <=

connection OK
certificate doesn't match
requesting URL: /test/
headers received
reply:
 => test OK <=

But when I use 2.5.0 I found the same issue:

scandone
Not connected
Not connected
Not connected
Not connected
scandone
state: 0 -> 2 (b0)
Not connected
Not connected
Not connected
Not connected
state: 2 -> 3 (0)
Not connected
Not connected
Not connected
state: 3 -> 5 (10)
add 0
aid 1
cnt 
Not connected
Not connected
Not connected
Not connected
Not connected

connected with ArtLuch.RU-IoT, channel 12
dhcp client start...
Not connected
Not connected
Not connected
Not connected
ip:192.168.3.90,mask:255.255.255.0,gw:192.168.3.1
:ref 1
:wr 218 0
:wrc 218 218 0
:ack 218
:rn 536
:rd 5, 536, 0
:rdi 536, 5
:rd 89, 536, 5
:rdi 531, 89
:rd 5, 536, 94
:rdi 442, 5
:rd 437, 536, 99
:rdi 437, 437
:c0 437, 536
:rn 536
:rd 434, 536, 0
:rdi 536, 434
:rch 536, 245
:rd 5, 781, 434
:rdi 102, 5
:rd 333, 781, 439
:rdi 97, 97
:c 97, 536, 781
:rdi 245, 236
:rd 5, 245, 236
:rdi 9, 5
:rd 4, 245, 241
:rdi 4, 4
:c0 4, 245
:wr 75 0
:wrc 75 75 0
:wr 6 0
:wrc 6 6 0
:wr 37 0
:wrc 37 37 0
:ack 75
:ack 43
:rn 43
:rd 5, 43, 0
:rdi 43, 5
:rd 1, 43, 5
:rdi 38, 1
:rd 5, 43, 6
:rdi 37, 5
:rd 32, 43, 11
:rdi 32, 32
:c0 32, 43
connection OK
certificate matches
requesting URL: /test/
:wr 125 0
:wrc 125 125 0
:ack 125
:rn 266
:rd 5, 266, 0
:rdi 266, 5
:rd 261, 266, 5
:rdi 261, 261
:c0 261, 266
headers received
reply:
 => test OK <=

:ur 1
:close
:del
:ref 1
:wr 218 0
:wrc 218 218 0
:ack 218
:rn 536
:rd 5, 536, 0
:rdi 536, 5
:rd 89, 536, 5
:rdi 531, 89
:rd 5, 536, 94
:rdi 442, 5
:rd 437, 536, 99
:rdi 437, 437
:c0 437, 536
:rn 781
:rd 434, 781, 0
:rdi 536, 434
:rd 5, 781, 434
:rdi 102, 5
:rd 333, 781, 439
:rdi 97, 97
:c 97, 536, 781
:rdi 245, 236
:rd 5, 245, 236
:rdi 9, 5
:rd 4, 245, 241
:rdi 4, 4
:c0 4, 245
:wr 75 0
:wrc 75 75 0
:wr 6 0
:wrc 6 6 0
:wr 37 0
:wrc 37 37 0
:ack 75
:ack 43
:rn 43
:rd 5, 43, 0
:rdi 43, 5
:rd 1, 43, 5
:rdi 38, 1
:rd 5, 43, 6
:rdi 37, 5
:rd 32, 43, 11
:rdi 32, 32
:c0 32, 43
connection OK
certificate matches
requesting URL: /test/
:wr 125 0
:wrc 125 125 0
:ack 125
:rn 266
:rd 5, 266, 0
:rdi 266, 5
:rd 261, 266, 5
:rdi 261, 261
:c0 261, 266
headers received
reply:
 => test OK <=

:ur 1
:close
:del
:ref 1
:wr 218 0
:wrc 218 218 0
:ack 218
:rn 536
:rd 5, 536, 0
:rdi 536, 5
:rd 89, 536, 5
:rdi 531, 89
:rd 5, 536, 94
:rdi 442, 5
:rd 437, 536, 99
:rdi 437, 437
:c0 437, 536
:rn 781
:rd 434, 781, 0
:rdi 536, 434
:rd 5, 781, 434
:rdi 102, 5
:rd 333, 781, 439
:rdi 97, 97
:c 97, 536, 781
:rdi 245, 236
:rd 5, 245, 236
:rdi 9, 5
:rd 4, 245, 241
:rdi 4, 4
:c0 4, 245
:wr 75 0
:wrc 75 75 0
:wr 6 0
:wrc 6 6 0
:wr 37 0
:wrc 37 37 0
:ack 75
:ack 43
:rn 43
:rd 5, 43, 0
:rdi 43, 5
:rd 1, 43, 5
:rdi 38, 1
:rd 5, 43, 6
:rdi 37, 5
:rd 32, 43, 11
:rdi 32, 32
:c0 32, 43
connection OK
certificate matches
requesting URL: /test/
:wr 125 0
:wrc 125 125 0
:ack 125
:rn 266
:rd 5, 266, 0
:rdi 266, 5
:rd 261, 266, 5
:rdi 261, 261
:c0 261, 266
headers received
reply:
 => test OK <=

:ur 1
:close
:del
:ref 1
:wr 218 0
:wrc 218 218 0
:ack 218
:rn 536
:rd 5, 536, 0
:rdi 536, 5
:rd 89, 536, 5
:rdi 531, 89
:rd 5, 536, 94
:rdi 442, 5
:rd 437, 536, 99
:rdi 437, 437
:c0 437, 536
:rn 781
:rd 434, 781, 0
:rdi 536, 434
:rd 5, 781, 434
:rdi 102, 5
:rd 333, 781, 439
:rdi 97, 97
:c 97, 536, 781
:rdi 245, 236
:rd 5, 245, 236
:rdi 9, 5
:rd 4, 245, 241
:rdi 4, 4
:c0 4, 245
:wr 75 0
:wrc 75 75 0
:wr 6 0
:wrc 6 6 0
:wr 37 0
:wrc 37 37 0
:ack 75
:ack 43
:rn 43
:rd 5, 43, 0
:rdi 43, 5
:rd 1, 43, 5
:rdi 38, 1
:rd 5, 43, 6
:rdi 37, 5
:rd 32, 43, 11
:rdi 32, 32
:c0 32, 43
connection OK
certificate matches
requesting URL: /test/
:wr 125 0
:wrc 125 125 0
:ack 125
:rn 266
:rd 5, 266, 0
:rdi 266, 5
:rd 261, 266, 5
:rdi 261, 261
:c0 261, 266
headers received
reply:
 => test OK <=

:ur 1
:close
:del
:ref 1
:wr 218 0
:wrc 218 218 0
:ack 218
:rn 536
:rd 5, 536, 0
:rdi 536, 5
:rd 89, 536, 5
:rdi 531, 89
:rch 536, 536
:rd 5, 1072, 94
:rdi 442, 5
:rd 871, 1072, 99
:rdi 437, 437
:c 437, 536, 1072
:rdi 536, 434
:rd 5, 536, 434
:rdi 102, 5
:rd 97, 536, 439
:rdi 97, 97
:c0 97, 536
:rn 245
:rd 236, 245, 0
:rdi 245, 236
:rd 5, 245, 236
:rdi 9, 5
:rd 4, 245, 241
:rdi 4, 4
:c0 4, 245
:wr 75 0
:wrc 75 75 0
:wr 6 0
:wrc 6 6 0
:wr 37 0
:wrc 37 37 0
:ack 75
bcn_timout,ap_probe_send_start
ap_probe_send over, rest wifi status to disassoc
state: 5 -> 0 (1)
rm 0
pm close 7

Soft WDT reset

>>>stack>>>

ctx: sys
sp: 3fffed00 end: 3fffffb0 offset: 01b0
3fffeeb0:  40232eff 3ffed84c 00000012 0000011e  
3fffeec0:  402334b0 3ffed84c 00000000 402355e0  
3fffeed0:  40232edd 3ffed9c8 00000002 3ffee938  
3fffeee0:  3fffdc10 00000000 3ffffe90 402047cb  
3fffeef0:  0000003c 3ffefb9c 3ffffe90 402031a9  
3fffef00:  0000001e 3ffefb9c 3ffffe90 40204697  
3fffef10:  3ffecd20 3ffefb9c 3ffffe90 402038fc  
3fffef20:  3ffecd20 40100ecf 3ffefb9c 40202ac0  
3fffef30:  40100f0a 00000000 00000002 3ffee938  
3fffef40:  3fffdc10 00000000 3ffefb9c 40248a94  
3fffef50:  40000f49 3fffdab0 3fffdab0 40000f49  
3fffef60:  40000e19 40001878 00000002 00000000  
3fffef70:  3fffff10 aa55aa55 000000fa 40104a7c  
3fffef80:  40104a82 00000002 00000000 40104424  
3fffef90:  4010000d 00000002 00000000 37630d51  
3fffefa0:  40100d0c 3fffef3c 40100cb9 3ffffd68  
3fffefb0:  3fffffc0 00000000 00000000 feefeffe  
3fffefc0:  feefeffe feefeffe feefeffe feefeffe  
3fffefd0:  feefeffe feefeffe feefeffe feefeffe  
3fffefe0:  feefeffe feefeffe feefeffe feefeffe  
3fffeff0:  feefeffe feefeffe feefeffe feefeffe  
3ffff000:  feefeffe feefeffe feefeffe feefeffe  
3ffff010:  feefeffe feefeffe feefeffe feefeffe  
3ffff020:  feefeffe feefeffe feefeffe feefeffe  
3ffff030:  feefeffe feefeffe feefeffe feefeffe  
3ffff040:  feefeffe feefeffe feefeffe feefeffe  
3ffff050:  feefeffe feefeffe feefeffe feefeffe  
3ffff060:  feefeffe feefeffe feefeffe feefeffe  
3ffff070:  feefeffe feefeffe feefeffe feefeffe  
3ffff080:  feefeffe feefeffe feefeffe feefeffe  
3ffff090:  feefeffe feefeffe feefeffe feefeffe  
3ffff0a0:  feefeffe feefeffe feefeffe feefeffe  
3ffff0b0:  feefeffe feefeffe feefeffe feefeffe  
3ffff0c0:  feefeffe feefeffe feefeffe feefeffe  
3ffff0d0:  feefeffe feefeffe feefeffe feefeffe  
3ffff0e0:  feefeffe feefeffe feefeffe feefeffe  
3ffff0f0:  feefeffe feefeffe feefeffe feefeffe  
3ffff100:  feefeffe feefeffe feefeffe feefeffe  
3ffff110:  feefeffe feefeffe feefeffe feefeffe  
3ffff120:  feefeffe feefeffe feefeffe feefeffe  
3ffff130:  feefeffe feefeffe feefeffe feefeffe  
3ffff140:  feefeffe feefeffe feefeffe feefeffe  
3ffff150:  feefeffe feefeffe feefeffe feefeffe  
3ffff160:  feefeffe feefeffe feefeffe feefeffe  
3ffff170:  feefeffe feefeffe feefeffe feefeffe  
3ffff180:  feefeffe feefeffe feefeffe feefeffe  
3ffff190:  feefeffe feefeffe feefeffe feefeffe  
3ffff1a0:  feefeffe feefeffe feefeffe feefeffe  
3ffff1b0:  feefeffe feefeffe feefeffe feefeffe  
3ffff1c0:  feefeffe feefeffe feefeffe feefeffe  
3ffff1d0:  feefeffe feefeffe feefeffe feefeffe  
3ffff1e0:  feefeffe feefeffe feefeffe feefeffe  
3ffff1f0:  feefeffe feefeffe feefeffe feefeffe  
3ffff200:  feefeffe feefeffe feefeffe feefeffe  
3ffff210:  feefeffe feefeffe feefeffe feefeffe  
3ffff220:  feefeffe feefeffe feefeffe feefeffe  
3ffff230:  feefeffe feefeffe feefeffe feefeffe  
3ffff240:  feefeffe feefeffe feefeffe feefeffe  
3ffff250:  feefeffe feefeffe feefeffe feefeffe  
3ffff260:  feefeffe feefeffe feefeffe feefeffe  
3ffff270:  feefeffe feefeffe feefeffe feefeffe  
3ffff280:  feefeffe feefeffe feefeffe feefeffe  
3ffff290:  feefeffe feefeffe feefeffe feefeffe  
3ffff2a0:  feefeffe feefeffe feefeffe feefeffe  
3ffff2b0:  feefeffe feefeffe feefeffe feefeffe  
3ffff2c0:  feefeffe feefeffe feefeffe feefeffe  
3ffff2d0:  feefeffe feefeffe feefeffe feefeffe  
3ffff2e0:  feefeffe feefeffe feefeffe feefeffe  
3ffff2f0:  feefeffe feefeffe feefeffe feefeffe  
3ffff300:  feefeffe feefeffe feefeffe feefeffe  
3ffff310:  feefeffe feefeffe feefeffe feefeffe  
3ffff320:  feefeffe feefeffe feefeffe feefeffe  
3ffff330:  feefeffe feefeffe feefeffe feefeffe  
3ffff340:  feefeffe feefeffe feefeffe feefeffe  
3ffff350:  feefeffe feefeffe feefeffe feefeffe  
3ffff360:  feefeffe feefeffe feefeffe feefeffe  
3ffff370:  feefeffe feefeffe feefeffe feefeffe  
3ffff380:  feefeffe feefeffe feefeffe feefeffe  
3ffff390:  feefeffe feefeffe feefeffe feefeffe  
3ffff3a0:  feefeffe feefeffe feefeffe feefeffe  
3ffff3b0:  feefeffe feefeffe feefeffe feefeffe  
3ffff3c0:  feefeffe feefeffe feefeffe feefeffe  
3ffff3d0:  feefeffe feefeffe feefeffe feefeffe  
3ffff3e0:  feefeffe feefeffe feefeffe feefeffe  
3ffff3f0:  feefeffe feefeffe feefeffe feefeffe  
3ffff400:  feefeffe feefeffe feefeffe feefeffe  
3ffff410:  feefeffe feefeffe feefeffe feefeffe  
3ffff420:  feefeffe feefeffe feefeffe feefeffe  
3ffff430:  feefeffe feefeffe feefeffe feefeffe  
3ffff440:  feefeffe feefeffe feefeffe feefeffe  
3ffff450:  feefeffe feefeffe feefeffe feefeffe  
3ffff460:  feefeffe feefeffe feefeffe feefeffe  
3ffff470:  feefeffe feefeffe feefeffe feefeffe  
3ffff480:  feefeffe feefeffe feefeffe feefeffe  
3ffff490:  feefeffe feefeffe feefeffe feefeffe  
3ffff4a0:  feefeffe feefeffe feefeffe feefeffe  
3ffff4b0:  feefeffe feefeffe feefeffe feefeffe  
3ffff4c0:  feefeffe feefeffe feefeffe feefeffe  
3ffff4d0:  feefeffe feefeffe feefeffe feefeffe  
3ffff4e0:  feefeffe feefeffe feefeffe feefeffe  
3ffff4f0:  feefeffe feefeffe feefeffe feefeffe  
3ffff500:  feefeffe feefeffe feefeffe feefeffe  
3ffff510:  feefeffe feefeffe feefeffe feefeffe  
3ffff520:  feefeffe feefeffe feefeffe feefeffe  
3ffff530:  feefeffe feefeffe feefeffe feefeffe  
3ffff540:  feefeffe feefeffe feefeffe feefeffe  
3ffff550:  00000005 00000000 00000020 4010156e  
3ffff560:  3ffe9475 40104973 3ffeceb0 feefeffe  
3ffff570:  04c229c5 5d41b67a fb26d6de 21d1c3ed  
3ffff580:  273546de 6c443f63 5d8e35e0 cd79a376  
3ffff590:  5c5c5c5c 5c5c5c5c 5c5c5c5c 5c5c5c5c  
3ffff5a0:  5c5c5c5c 5c5c5c5c 5c5c5c5c 5c5c5c5c  
3ffff5b0:  995d5bc6 7675ef47 0cc3cf9b b1a43473  
3ffff5c0:  e6584ec7 abaf315e 8555a0a6 89a98ece  
3ffff5d0:  db5d372f 03e14f9d ef69767b 7516a926  
3ffff5e0:  41f901e2 0780d2a9 2b0725d1 73a28e27  
3ffff5f0:  0f8aa838 41126224 7f3e7fee f19a635b  
3ffff600:  426373f9 8a3af595 c021011c c6a61c49  
3ffff610:  26aa353b 08694984 25389c16 d22efecb  
3ffff620:  7f5e7c06 52957415 a446e91f 9181e8b3  
3ffff630:  845d6d64 f6a69c7e 94bd4371 3636b7c6  
3ffff640:  80000000 00000000 00000000 00000000  
3ffff650:  00000000 00000000 00000000 00000300  
3ffff660:  fd514cd5 e5fd2df5 4355d917 47d9501e  
3ffff670:  203d2d38 1a267188 ef4b97dd 3b7bac66  
3ffff680:  1f2bc69e e706dd50 e374569f 00000080  
3ffff690:  03030000 010000d1 f77ba1d0 00003082  
3ffff6a0:  d13cc05e 0b8ff56c 3a9caa45 9fd7ebf1  
3ffff6b0:  51750000 1ee2ee9a a8c02bc0 5acca9cc  
3ffff6c0:  30c0acc0 2fc02cc0 afc023c0 adc0aec0  
3ffff6d0:  28c009c0 27c024c0 14c02dc0 13c00ac0  
3ffff6e0:  32c025c0 31c02ec0 2ac004c0 29c026c0  
3ffff6f0:  0f009c00 0ec005c0 9dc0a0c0 9dc09cc0  
3ffff700:  3d002f00 a1003c00 12c003c0 35c008c0  
3ffff710:  03dd08e3 f4261874 9f7c0955 3c4b0a88  
3ffff720:  97e86941 c497cf36 88b30ea8 216e2217  
3ffff730:  8dc92fb2 d4b0aa91 1de9bac2 3d7ee7fc  
3ffff740:  96bd6a95 7fb818c3 cb7c64e4 51c99d12  
3ffff750:  cb433d81 7f4bfe50 294c796d b4a175e5  
3ffff760:  7791706a c3db9679 f094e3b7 2ed8b0aa  
3ffff770:  67cb50a8 0f63836a 8cb5336b 58e3d616  
3ffff780:  397cbac3 debcb23f c147c2aa 2d2bc213  
3ffff790:  a490c6db d5efff9b 64d2f84d 33ecfaff  
3ffff7a0:  3b24a096 61385cee a94c910b ca98eca6  
3ffff7b0:  8fa59c20 a6e23ba3 b4a157ad 0c64de58  
3ffff7c0:  5f4eea9f ff08b034 611cb5e7 afc08009  
3ffff7d0:  290102c7 90b0af40 d2221771 0a8b720c  
3ffff7e0:  057de58b 5632ff4f d9a21f0d 9bfaee7e  
3ffff7f0:  e24f2a98 efdf8c77 35b3a1dc 23834e45  
3ffff800:  abf82de0 e36fd00d 3971fe67 57163c82  
3ffff810:  bde62449 d26cdd59 9f2a8f6f b680b6e1  
3ffff820:  e691ea3c 40ed8ec8 18d2befc 1444f7c3  
3ffff830:  1fb290c2 30b49499 27ef09fe 47031f80  
3ffff840:  4f67d7d7 5ead1ec7 501653bc 69521c54  
3ffff850:  0a6ec7c0 4a743447 9eddc547 ed9e5175  
3ffff860:  d7e3f27e b639eac7 4d11e2f3 937b3922  
3ffff870:  fcde1f62 d1e0363a cebab1ee b88d1d1c  
3ffff880:  a2c6cbbd 68de7b99 1d62fad4 d3825818  
3ffff890:  09c69453 13ce11b4 61d327ee 4978e771  
3ffff8a0:  59092fdd 173d5684 129ade05 ee4fd729  
3ffff8b0:  f60aca0b 62d82035 8391d252 529e4f38  
3ffff8c0:  a54eab87 084d7c62 dd6e7e60 12f6ff32  
3ffff8d0:  cd7ba6d9 dc20ddee 9b50e3a1 81d2878b  
3ffff8e0:  f63395db 763f2b50 18a24876 12bcdb18  
3ffff8f0:  d9ad0723 9aa86809 2da1557c a753e2bb  
3ffff900:  8ddbdab7 b058b86c c1c2ee46 9d245fa9  
3ffff910:  0c083662 a07024ef 40254690 5acb6f28  
3ffff920:  3ffff918 8e59fccf 1913c8fe 8580fd44  
3ffff930:  2f3d92b3 57e6a26a 0b4f84c5 a676954f  
3ffff940:  e320de1a 850d0b58 1c8a7662 02eed49c  
3ffff950:  5f8887a5 9e6a2088 c063be94 e320de1a  
3ffff960:  0b4f84c5 c063be94 2f3d92b3 850d0b58  
3ffff970:  3ffffab0 8e59fccf a07024ef 1913c8fe  
3ffff980:  9e6a2088 57e6a26a f3bcc908 6a09e667  
3ffff990:  84caa73b 00000000 fe94f82b 000000fe  
3ffff9a0:  0000005c 00000001 401048be 3ffed638  
3ffff9b0:  3ffed5c0 9b05688c fb41bd6b 1f83d9ab  
3ffff9c0:  401038c1 00040000 7fffffff 00000000  
3ffff9d0:  401044c3 3ffed638 00040000 00000000  
3ffff9e0:  3ffed638 40103e36 3ffed638 4021a5d8  
3ffff9f0:  3ffffa20 3ffffab0 00002200 4000050c  
3ffffa00:  401043cd 3ffed638 3ffecbe0 00000002  
3ffffa10:  0000007f 00000006 3fff9324 402275b5  
3ffffa20:  40104688 00080000 7fffffff ffffffff  
3ffffa30:  401027b3 3ffecbe0 00000052 00002009  
3ffffa40:  00000000 3ffed360 50532200 4000050c  
3ffffa50:  3fffc278 40102634 3fffc200 00000022  
3ffffa60:  3ffffa70 00000001 3fff0150 00000030  
3ffffa70:  402309f8 00000030 00000018 ffffffff  
3ffffa80:  402309c2 00000000 00080240 00000000  
3ffffa90:  00000002 00000000 3ffed380 3ffed84c  
3ffffaa0:  00080240 fffffffe 00000001 3ffee098  
3ffffab0:  3ffef56c 3fff0134 3fff0134 00000030  
3ffffac0:  3fffc278 40102634 3fffc200 00000022  
3ffffad0:  3ffffae0 00000000 3ffe95c1 00000008  
3ffffae0:  4020e899 00000030 00000010 ffffffff  
3ffffaf0:  4020e899 00000023 3fffdcc0 4020e86c  
3ffffb00:  3fff9df6 0000f8c4 4023e78f 00000001  
3ffffb10:  ffffffff 00000000 3ffe95c1 00000008  
3ffffb20:  4023e7de 3ffecc08 3ffef56c 00000001  
3ffffb30:  4023e8ea 3ffecc08 3ffef56c 3ffecc08  
3ffffb40:  00000002 00000000 00000020 4010156e  
3ffffb50:  00000003 00000000 0000000a 00000000  
3ffffb60:  00000003 00000000 0000000a 00000000  
3ffffb70:  00000000 00000002 000005e0 00000000  
3ffffb80:  4010377d 3ffed5f0 0000003c 00000000  
3ffffb90:  4010377d 000000fe 0000001c 00000001  
3ffffba0:  401048be 3ffed5f0 3ffed5c0 3ffed5f0  
3ffffbb0:  000005e0 00000000 4010377d 3ffed5f0  
3ffffbc0:  0000003c 00000000 4010377d 000000fb  
3ffffbd0:  00000000 00000000 00000020 4010156e  
3ffffbe0:  3ffe9470 40104958 3ffecd20 3ffed214  
3ffffbf0:  00000001 40103b19 3ffecd20 3ffed214  
3ffffc00:  40103f78 3ffed5f0 3ffed5c0 00000000  
3ffffc10:  00000000 40103e36 3ffed5f0 401038be  
3ffffc20:  401044c3 40103e36 3ffed5f0 3ffecd20  
3ffffc30:  4010438e 3ffed5f0 3ffecd20 00000000  
3ffffc40:  0000007f 401038be 00040000 00000000  
3ffffc50:  40104688 00080000 7fffffff 00000000  
3ffffc60:  401027b3 401027de 53000000 4000050c  
3ffffc70:  00000000 40102634 53000000 4000050c  
3ffffc80:  00000000 00000000 0000001f 40105255  
3ffffc90:  4000050c 00000000 0000001f 40105255  
3ffffca0:  40229415 00000030 00000010 ffffffff  
3ffffcb0:  4021c67b 3fff017c 3fff017c 00000005  
3ffffcc0:  00000005 00004145 00000000 fffffffe  
3ffffcd0:  ffffffff 3fffc6fc 00000001 3fff8814  
3ffffce0:  00000000 00000008 00000001 00000030  
3ffffcf0:  0041d721 00000008 00000001 00000030  
3ffffd00:  0041710d 00000008 00000001 00000030  
3ffffd10:  00000000 00000006 3fff9574 00000000  
3ffffd20:  00000000 4bc6a7f0 6d0e5604 00000000  
3ffffd30:  00000000 00000000 4bc6a7f0 00000000  
3ffffd40:  3ffeeeb0 000000f8 000000f8 40100518  
3ffffd50:  00000025 00000000 3ffefb94 40100c70  
3ffffd60:  0221cf86 40201945 3ffe8510 0041efbf  
3ffffd70:  00000008 00000001 402061f8 3fffefa0  
3ffffd80:  00000008 00000001 00000064 402062d6  
3ffffd90:  00000000 40254710 00000064 40206319  
3ffffda0:  00000000 00000000 3ffffe90 40202c9b  
3ffffdb0:  00000008 0041efbf 3ffffe90 4020474e  
3ffffdc0:  00000025 00000005 9bc46988 00000000  
3ffffdd0:  4021cc80 4021cc28 3fff8814 4021c736  
3ffffde0:  3fff8d14 3ffe869e 3fff8814 00000000  
3ffffdf0:  00000001 00000001 3ffffe90 40204980  
3ffffe00:  00000001 3ffe869e 3ffffe90 40204b8f  
3ffffe10:  00000000 3ffffe70 402061f8 3fffefa0  
3ffffe20:  00000000 00000000 00000000 402014d7  
3ffffe30:  00000d50 3ffefe1c 3ffffe90 40203874  
3ffffe40:  000001bb 40201945 3fffff0c 3ffeee34  
3ffffe50:  000001bb 3ffffe90 3ffe869e 3ffeee34  
3ffffe60:  000001bb 3ffffe90 3ffe869e 40204c56  
3ffffe70:  40206ad8 366eed23 3ffffe90 40204556  
3ffffe80:  3fffdad0 00000000 3ffe84e0 40202778  
3ffffe90:  402069a0 00000000 00003a98 0001d2bf  
3ffffea0:  00000000 3ffefe1c 3fff8814 3fff000c  
3ffffeb0:  00000000 00000000 3fff8814 00000000  
3ffffec0:  00000000 3fff97dc 3ffefb74 00000000  
3ffffed0:  00000000 3fff017c 3fff7134 3fff9574  
3ffffee0:  3fff715c 00000000 00000000 00000000  
3ffffef0:  00004145 00000255 3ffe0000 00000000  
3fffff00:  00000000 00000000 00000000 00000000  
3fffff10:  00000000 00000000 00000000 40100a4e  
3fffff20:  402334b0 3ffed84c 00000000 400155e0  
3fffff30:  00000000 3ffed9c8 00000000 00000000  
3fffff40:  3fffda00 00000000 00000000 4020599c  
3fffff50:  00000000 00000000 3ffeedbc 00000000  
3fffff60:  402462d2 3ffeee04 00000000 00000001  
3fffff70:  402474eb 40202b94 3ffeedbc 40205c80  
3fffff80:  3ffef56c 40202b94 3ffeedbc 3ffeee34  
3fffff90:  3fffdad0 00000000 3ffeee04 402028b1  
3fffffa0:  3fffdad0 00000000 3ffeee04 402062a4  
<<<stack<<<

 ets Jan  8 2013,rst cause:2, boot mode:(1,6)


 ets Jan  8 2013,rst cause:4, boot mode:(1,6)

wdt reset

stack trace:

Decoding stack results
0x402047cb: BearSSL::WiFiClientSecure::_run_until(unsigned int, bool) at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/libraries/ESP8266WiFi/src/WiFiClientSecureBearSSL.cpp line 520
0x402031a9: ClientContext::_write_some() at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/libraries/ESP8266WiFi/src/include/ClientContext.h line 471
0x40204697: std::__shared_count(__gnu_cxx::_Lock_policy)0>::__shared_count  , std::allocator  >(unsigned char*, std::default_delete , std::allocator ) at /Users/atsarev/Library/Arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-3-20ed2b9/xtensa-lx106-elf/include/c++/4.8.2/bits/shared_ptr_base.h line 488
0x402038fc: BearSSL::insecure_subject_dn_append(void*, void const*, size_t) at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/libraries/ESP8266WiFi/src/WiFiClientSecureBearSSL.cpp line 596
0x40202ac0: _GLOBAL__sub_I__ZN23ESP8266WiFiGenericClass11_persistentE() at /Users/atsarev/Library/Arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-3-20ed2b9/xtensa-lx106-elf/include/c++/4.8.2/bits/stl_list.h line 389
0x4021a5d8: sntp_recv at apps/sntp/sntp.c line 326
0x402275b5: api_order at src/ec/ec_all_m15.c line 47
0x4020e899: _svfprintf_r at ../../../../../../dl/newlib-xtensa/newlib/libc/stdio/nano-vfprintf.c line 479
0x4020e899: _svfprintf_r at ../../../../../../dl/newlib-xtensa/newlib/libc/stdio/nano-vfprintf.c line 479
0x4020e86c: __ssprint_r at ../../../../../../dl/newlib-xtensa/newlib/libc/stdio/nano-vfprintf.c line 339
0x40229415: run_code at src/ec/ec_prime_i15.c line 505
0x4021c67b: sha2big_round at src/hash/sha2big.c line 120
0x40100518: _umm_free at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/cores/esp8266/umm_malloc/umm_malloc.c line 1300
0x40201945: _malloc_r at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/cores/esp8266/heap.c line 20
0x402061f8: loop_task(ETSEvent*) at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/cores/esp8266/core_esp8266_main.cpp line 131
0x40206319: __yield() at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/cores/esp8266/core_esp8266_main.cpp line 97
0x40202c9b: WiFiClient::peekBytes(unsigned char*, unsigned int) at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/libraries/ESP8266WiFi/src/WiFiClient.cpp line 302
0x4020474e: BearSSL::WiFiClientSecure::_run_until(unsigned int, bool) at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/libraries/ESP8266WiFi/src/WiFiClientSecureBearSSL.cpp line 447
0x4021cc80: sha2big_round at src/hash/sha2big.c line 127
0x4021cc28: sha2big_round at src/hash/sha2big.c line 127
0x4021c736: sha2big_round at src/hash/sha2big.c line 124
0x40204980: BearSSL::WiFiClientSecure::_wait_for_handshake() at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/libraries/ESP8266WiFi/src/WiFiClientSecureBearSSL.cpp line 524
0x40204b8f: BearSSL::WiFiClientSecure::_connectSSL(char const*) at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/libraries/ESP8266WiFi/src/WiFiClientSecureBearSSL.cpp line 936
0x402061f8: loop_task(ETSEvent*) at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/cores/esp8266/core_esp8266_main.cpp line 131
0x402014d7: delay at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/cores/esp8266/core_esp8266_wiring.c line 46
0x40203874: std::_Sp_counted_deleter  ::_Deleter   >, std::allocator , (__gnu_cxx::_Lock_policy)0>::_M_destroy() at /Users/atsarev/Library/Arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-3-20ed2b9/xtensa-lx106-elf/include/c++/4.8.2/ext/new_allocator.h line 110
0x40201945: _malloc_r at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/cores/esp8266/heap.c line 20
0x40204556: BearSSL::WiFiClientSecure::_installClientX509Validator() at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/libraries/ESP8266WiFi/src/WiFiClientSecureBearSSL.cpp line 868
0x40202778: httpTest() at /Users/atsarev/dev/SmartBox/src/HTTPClient_old/HTTPClient_old.ino line 46
0x40100a4e: timer1_isr_handler at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/cores/esp8266/core_esp8266_timer.c line 35
0x4020599c: HardwareSerial::available() at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/cores/esp8266/HardwareSerial.cpp line 98
0x40202b94: WiFiClient::connect(char const*, unsigned short) at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/libraries/ESP8266WiFi/src/WiFiClient.cpp line 126
0x40205c80: Print::println(String const&) at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/cores/esp8266/Print.cpp line 184
0x40202b94: WiFiClient::connect(char const*, unsigned short) at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/libraries/ESP8266WiFi/src/WiFiClient.cpp line 126
0x402028b1: ESP8266WiFiGenericClass::mode(WiFiMode) at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/libraries/ESP8266WiFi/src/ESP8266WiFiGeneric.cpp line 381
0x402062a4: init_done() at /Users/atsarev/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/cores/esp8266/core_esp8266_main.cpp line 181

@earlephilhower earlephilhower added this to the 2.6.0 milestone May 1, 2019
@thjean
Copy link

thjean commented May 2, 2019

I experienced the same (or at least a very similar) issue with SW WDT resets when the WiFi connection is lost during the client.connect() call. Connecting to an url with a long response time generated this issue on a regular base. After quite a lot of testing, I was able to narrow down the root cause of my crashes to the WiFi loss during a WiFiClientSecure connection. I did not double-check if a WiFiClient connection is affected as well.
I was finally able to reproduce the issue with this simple sketch:

#include <ESP8266WiFi.h>

#ifndef STASSID
#define STASSID "SSID"
#define STAPSK  "PSK"
#endif

const char* ssid     = STASSID;
const char* password = STAPSK;

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

  Serial.println();
  Serial.printf("Version info: %s\r\n", ESP.getFullVersion().c_str());
 
  Serial.print("Connecting to ");
  Serial.println(ssid);

  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
}


void loop() {
  delay(2500);
  do_connect("xxxxx.xxx", 443);      // url that takes some time to connect
}

void do_connect(const char* host, int port) {
  uint32_t start, stop;
  
  Serial.print("\r\nconnecting to ");
  Serial.print(host);
  Serial.print(':');
  Serial.println(port);

  WiFiClientSecure client;
  client.setInsecure();
  client.setBufferSizes(1024, 512);

  start = millis();
  if (!client.connect(host, port)) {
    stop = millis();
    Serial.printf("connection failed, timeout: %d ms\r\n", stop - start);
  }

  if (client.connected()) {
    stop = millis();
    Serial.printf("Connection done in %d ms, disconnecting\r\n", stop - start);
  }
  client.stop();
}

With core revision SDK:2.2.1(cfd48f3)/Core:unix-2.6.0-dev=-194000/lwIP:STABLE-2_1_2_RELEASE/glue:1.1-5-g25d5e81/BearSSL:6778687 the sketch/debug output just before the crash is

[hostByName] request IP for: xxxx.xx
[hostByName] Host: xxxx.xx IP: 85.214.240.94
:ref 1
BSSL:_connectSSL: start connection
:wr 222 0
:wrc 222 222 0
:ack 222
state: 5 -> 2 (6c0)
rm 0
pm close 7
wifi evt: 1
STA disconnect: 6

Soft WDT reset

>>>stack>>>

ctx: sys
sp: 3fffecf0 end: 3fffffb0 offset: 01b0

and the decoded exception is

0x4020384f: BearSSL::WiFiClientSecure::flush(unsigned int) at D:\Data\thjean\Arduino\hardware\esp8266com\esp8266\libraries\ESP8266WiFi\src/WiFiClientSecureBearSSL.cpp line 210
0x40201d2d: WiFiClient::stop(unsigned int) at D:\Data\thjean\Arduino\hardware\esp8266com\esp8266\libraries\ESP8266WiFi\src/WiFiClient.cpp line 326
0x40252ad4: sleep_reset_analog_rtcreg_8266 at ?? line ?
0x402036f7: BearSSL::WiFiClientSecure::stop(unsigned int) at D:\Data\thjean\Arduino\hardware\esp8266com\esp8266\libraries\ESP8266WiFi\src/WiFiClientSecureBearSSL.cpp line 197
0x40202464: WiFiClient::stopAll() at D:\Data\thjean\Arduino\hardware\esp8266com\esp8266\libraries\ESP8266WiFi\src/WiFiClient.cpp line 386 (discriminator 2)
0x40201486: ESP8266WiFiGenericClass::_eventCallback(void*) at d:\data\thilges\arduino\hardware\esp8266com\esp8266\tools\xtensa-lx106-elf\xtensa-lx106-elf\include\c++\4.8.2\bits/range_access.h line 48
0x4023f93a: pp_tx_idle_timeout at ?? line ?
0x4024a408: wifi_set_status_led_output_level at ?? line ?
0x40104290: call_user_start_local at ?? line ?
0x40104296: call_user_start_local at ?? line ?
0x4010000d: call_user_start at ?? line ?
0x40100548: cont_ret at D:\Data\thjean\Arduino\hardware\esp8266com\esp8266\cores\esp8266/cont.S line 142
0x401004f5: cont_continue at D:\Data\thjean\Arduino\hardware\esp8266com\esp8266\cores\esp8266/cont.S line 51
0x40100d8a: pp_post at ?? line ?
0x40104187: lmacRxDone at ?? line ?
0x40101aa5: trc_NeedRTS at ?? line ?
0x40101c7a: trc_NeedRTS at ?? line ?
0x401020ba: wDev_ProcessFiq at ?? line ?
0x40104a69: ets_timer_disarm at ?? line ?
0x4021c870: br_sha2small_round at /home/earle/Arduino/hardware/esp8266com/esp8266/tools/sdk/ssl/bearssl/src/hash/sha2small.c line 103 (discriminator 2)
0x4021c5c4: br_sha2small_round at /home/earle/Arduino/hardware/esp8266com/esp8266/tools/sdk/ssl/bearssl/src/hash/sha2small.c line 85
0x401020ba: wDev_ProcessFiq at ?? line ?
0x40100d8a: pp_post at ?? line ?
0x40104187: lmacRxDone at ?? line ?
0x40101aa5: trc_NeedRTS at ?? line ?
0x40104a69: ets_timer_disarm at ?? line ?
0x40101c7a: trc_NeedRTS at ?? line ?
0x40100d8a: pp_post at ?? line ?
0x401020ba: wDev_ProcessFiq at ?? line ?
0x40101c7a: trc_NeedRTS at ?? line ?
0x40257320: node_remove_from_list at ?? line ?
0x40100d8a: pp_post at ?? line ?
0x40104187: lmacRxDone at ?? line ?
0x40101aa5: trc_NeedRTS at ?? line ?
0x40101c7a: trc_NeedRTS at ?? line ?
0x401020ba: wDev_ProcessFiq at ?? line ?
0x4021cb97: sha2small_out at /home/earle/Arduino/hardware/esp8266com/esp8266/tools/sdk/ssl/bearssl/src/hash/sha2small.c line 249
0x40101e54: wDev_ProcessFiq at ?? line ?
0x4021ebea: br_ssl_hs_client_run at /home/earle/Arduino/hardware/esp8266com/esp8266/tools/sdk/ssl/bearssl/src/ssl/ssl_hs_client.c line 981
0x4021ebea: br_ssl_hs_client_run at /home/earle/Arduino/hardware/esp8266com/esp8266/tools/sdk/ssl/bearssl/src/ssl/ssl_hs_client.c line 981
0x40258325: node_remove_from_list at ?? line ?
0x40258324: node_remove_from_list at ?? line ?
0x402573a0: node_remove_from_list at ?? line ?
0x402403f3: pp_attach at ?? line ?
0x40240442: pp_attach at ?? line ?
0x4024054e: pp_attach at ?? line ?
0x40100d8a: pp_post at ?? line ?
0x4023f4eb: ppTxPkt at ?? line ?
0x402328bb: ieee80211_output_pbuf at ?? line ?
0x4010480f: wdt_feed at ?? line ?
0x4021caa9: sha2small_update at /home/earle/Arduino/hardware/esp8266com/esp8266/tools/sdk/ssl/bearssl/src/hash/sha2small.c line 224
:  (inlined by) br_sha224_update at /home/earle/Arduino/hardware/esp8266com/esp8266/tools/sdk/ssl/bearssl/src/hash/sha2small.c line 265
0x40210371: glue2esp_linkoutput at /local/users/gauchard/arduino/arduino_esp8266/origin/tools/sdk/lwip2/builder/glue-esp/lwip-esp.c line 299
0x40102f91: lmacIsIdle at ?? line ?
0x40102f91: lmacIsIdle at ?? line ?
0x401040d2: lmacTxFrame at ?? line ?
0x401040d2: lmacTxFrame at ?? line ?
0x40100d8a: pp_post at ?? line ?
0x40104187: lmacRxDone at ?? line ?
0x40100d8a: pp_post at ?? line ?
0x40101aa5: trc_NeedRTS at ?? line ?
0x40100d8a: pp_post at ?? line ?
0x40101c7a: trc_NeedRTS at ?? line ?
0x40101c7a: trc_NeedRTS at ?? line ?
0x401020ba: wDev_ProcessFiq at ?? line ?
0x401020ba: wDev_ProcessFiq at ?? line ?
0x40101e54: wDev_ProcessFiq at ?? line ?
0x40104e5c: system_get_time at ?? line ?
0x40205e93: optimistic_yield at D:\Data\thjean\Arduino\hardware\esp8266com\esp8266\cores\esp8266/core_esp8266_main.cpp line 111 (discriminator 1)
0x40252f28: sleep_reset_analog_rtcreg_8266 at ?? line ?
0x4020aa76: printf at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/printf.c line 61
0x402073fc: _umm_free at D:\Data\thjean\Arduino\hardware\esp8266com\esp8266\cores\esp8266\umm_malloc/umm_malloc.cpp line 1304
0x40207b20: free at D:\Data\thjean\Arduino\hardware\esp8266com\esp8266\cores\esp8266\umm_malloc/umm_malloc.cpp line 1764
0x402067e9: malloc at D:\Data\thjean\Arduino\hardware\esp8266com\esp8266\cores\esp8266/heap.cpp line 95
0x40205d7c: esp_yield at D:\Data\thjean\Arduino\hardware\esp8266com\esp8266\cores\esp8266/core_esp8266_main.cpp line 91
0x402573a0: node_remove_from_list at ?? line ?
0x40205e5e: yield at D:\Data\thjean\Arduino\hardware\esp8266com\esp8266\cores\esp8266/core_esp8266_main.cpp line 100
0x40205ea1: optimistic_yield at D:\Data\thjean\Arduino\hardware\esp8266com\esp8266\cores\esp8266/core_esp8266_main.cpp line 115
0x4020375e: BearSSL::WiFiClientSecure::_run_until(unsigned int, bool) at D:\Data\thjean\Arduino\hardware\esp8266com\esp8266\libraries\ESP8266WiFi\src/WiFiClientSecureBearSSL.cpp line 446
0x4021e9d4: br_ssl_hs_client_run at /home/earle/Arduino/hardware/esp8266com/esp8266/tools/sdk/ssl/bearssl/src/ssl/ssl_hs_client.c line 958
0x4021e97c: pgm_read_word_inlined at /home/earle/Arduino/hardware/esp8266com/esp8266/tools/xtensa-lx106-elf/xtensa-lx106-elf/include/sys/pgmspace.h line 67
:  (inlined by) br_ssl_hs_client_init_main at /home/earle/Arduino/hardware/esp8266com/esp8266/tools/sdk/ssl/bearssl/src/ssl/ssl_hs_client.c line 904
0x4021e48a: br_ssl_engine_hs_reset at /home/earle/Arduino/hardware/esp8266com/esp8266/tools/sdk/ssl/bearssl/src/ssl/ssl_engine.c line 1305
0x40203a10: BearSSL::WiFiClientSecure::_wait_for_handshake() at D:\Data\thjean\Arduino\hardware\esp8266com\esp8266\libraries\ESP8266WiFi\src/WiFiClientSecureBearSSL.cpp line 546
0x40203c73: BearSSL::WiFiClientSecure::_connectSSL(char const*) at D:\Data\thjean\Arduino\hardware\esp8266com\esp8266\libraries\ESP8266WiFi\src/WiFiClientSecureBearSSL.cpp line 972
0x4020ed59: __sfputs_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 433
0x40218b08: ip4_output_if_opt_src at /local/users/gauchard/arduino/arduino_esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/ip4.c line 1007
0x4025318b: sleep_reset_analog_rtcreg_8266 at ?? line ?
0x402067e9: malloc at D:\Data\thjean\Arduino\hardware\esp8266com\esp8266\cores\esp8266/heap.cpp line 95
0x40218b50: ip4_output_if_opt at /local/users/gauchard/arduino/arduino_esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/ip4.c line 820
0x402195d0: mem_malloc at /local/users/gauchard/arduino/arduino_esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/mem.c line 210
0x40218b76: ip4_output_if at /local/users/gauchard/arduino/arduino_esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/ip4.c line 793
0x402196db: ip_chksum_pseudo at /local/users/gauchard/arduino/arduino_esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/inet_chksum.c line 395
0x40215ad2: tcp_output at /local/users/gauchard/arduino/arduino_esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/tcp_out.c line 1361
0x40214dbd: tcp_create_segment at /local/users/gauchard/arduino/arduino_esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/tcp_out.c line 190
0x40104bac: ets_timer_arm_new at ?? line ?
0x40205d7c: esp_yield at D:\Data\thjean\Arduino\hardware\esp8266com\esp8266\cores\esp8266/core_esp8266_main.cpp line 91
0x40206353: delay at D:\Data\thjean\Arduino\hardware\esp8266com\esp8266\cores\esp8266/core_esp8266_wiring.cpp line 54
0x402023dc: WiFiClient::connect(IPAddress const&, unsigned short) at D:\Data\thjean\Arduino\hardware\esp8266com\esp8266\libraries\ESP8266WiFi\src/include/ClientContext.h line 136
:  (inlined by) WiFiClient::connect(IPAddress const&, unsigned short) at D:\Data\thjean\Arduino\hardware\esp8266com\esp8266\libraries\ESP8266WiFi\src/WiFiClient.cpp line 170
0x40203d7f: BearSSL::WiFiClientSecure::connect(char const*, unsigned short) at D:\Data\thjean\Arduino\hardware\esp8266com\esp8266\libraries\ESP8266WiFi\src/WiFiClientSecureBearSSL.cpp line 230
0x40208490: std::function ::swap(std::function &) at ?? line ?
0x40203548: BearSSL::WiFiClientSecure::_clearAuthenticationSettings() at D:\Data\thjean\Arduino\hardware\esp8266com\esp8266\libraries\ESP8266WiFi\src/WiFiClientSecureBearSSL.cpp line 103
0x40201188: do_connect(char const*, int) at D:\Data\thjean\Arduino\ESP\WiFiClientSecure_Connect2/WiFiClientSecure_Connect2.ino line 53
0x40208358: std::function ::swap(std::function &) at ?? line ?
0x40204bc4: HardwareSerial::write(unsigned char const*, unsigned int) at D:\Data\thjean\Arduino\hardware\esp8266com\esp8266\cores\esp8266/HardwareSerial.h line 158
0x4020519c: Print::println() at D:\Data\thjean\Arduino\hardware\esp8266com\esp8266\cores\esp8266/Print.cpp line 178
0x40205210: Print::println(Printable const&) at D:\Data\thjean\Arduino\hardware\esp8266com\esp8266\cores\esp8266/Print.cpp line 238
0x402011fc: loop at D:\Data\thjean\Arduino\ESP\WiFiClientSecure_Connect2/WiFiClientSecure_Connect2.ino line 37
0x40205e2c: loop_wrapper() at D:\Data\thjean\Arduino\hardware\esp8266com\esp8266\cores\esp8266/core_esp8266_main.cpp line 125

It's interesting to note that using the current head revision as of today
SDK:2.2.1(cfd48f3)/Core:2.5.0-106-g17500226=20500106/lwIP:STABLE-2_1_2_RELEASE/glue:1.1-7-g82abda3/BearSSL:a143020 does no longer lead to the SW WDT reset when a WiFi disconnect occurs. The debug output shows that the firmware reconnects and continues running without crashing. So there may already be a fix or workaround available with the current head revision.

[hostByName] request IP for: xxxx.xx
[hostByName] Host: xxxx.xx IP: xx.xx.xx.xx
:ref 1
BSSL:_connectSSL: start connection
:wr 222 0
:wrc 222 222 0
state: 5 -> 2 (6c0)
rm 0
pm close 7
wifi evt: 1
STA disconnect: 6
:wustmo
:close
BSSL:_wait_for_handshake: failed
BSSL:Couldn't connect. Error = 'Unknown error code.'
connection failed, timeout: 15796 ms
:ur 1
:del
reconnect
state: 2 -> 0 (0)
scandone
state: 0 -> 2 (b0)
state: 2 -> 3 (0)
state: 3 -> 5 (10)
add 0
aid 1
cnt 

connected with SSID, channel 11
dhcp client start...
wifi evt: 0
ip:192.168.73.38,mask:255.255.255.0,gw:192.168.73.1
wifi evt: 3

connecting to xxxx.xx:443
[hostByName] request IP for: xxxx.xx
[hostByName] Host: xxxx.xx IP: xx.xx.xx.xx
:ref 1
BSSL:_connectSSL: start connection

@mnunespt
Copy link

Hi,
I've a similar problem with versions 2.5.0 and 2.5.1
If i keep connection to WLAN alive, but kill gateway or connection to internet, the WifiClienteSecure hangs without error trigger.
I wish that a error triggers when internet connection lost.
Can anyone help please? Many thanks.

@earlephilhower
Copy link
Collaborator

earlephilhower commented May 15, 2019

Please try the latest GIT head. #6065 included a fix that enables a fst SSL disconnect response and, I think, will error out quickly and not hang. Please report back so we can track.

@earlephilhower earlephilhower added the waiting for feedback Waiting on additional info. If it's not received, the issue may be closed. label May 15, 2019
@thjean
Copy link

thjean commented May 16, 2019

The fix seems to be effective for the case "WiFi disconnects while SSL-connect is ongoing", I do no longer observe SW WDT resets.

Using version SDK:2.2.1(cfd48f3)/Core:unix-2.6.0-dev=-194000/lwIP:STABLE-2_1_2_RELEASE/glue:1.1-5-g25d5e81/BearSSL:6778687 (begin of April), I can reproducibly see SW WDT resets when WiFi disconnects during the ongoing SSL connect with the sketch attached below.
With the current git head SDK:2.2.1(cfd48f3)/Core:2.5.1-10-g2dff28ab=20501010/lwIP:STABLE-2_1_2_RELEASE/glue:1.1-7-g82abda3/BearSSL:a143020, the connect times out as expected. With debug set to SSL, the debug output is

BSSL:_connectSSL: start connection
state: 5 -> 0 (0)
rm 0
BSSL:_wait_for_handshake: failed
BSSL:Couldn't connect. Error = 'Unknown error code.' 

The git head revision does no longer show the SW WDT resets since around begin of May.

I used this sketch for reproducing the issue and testing the fix. A ticker disconnects the WiFi while the SSL-connect is ongoing.

#include <ESP8266WiFi.h>
#include "Ticker.h"

#ifndef STASSID
#define STASSID "yourSSID"
#define STAPSK  "yourPSK"
#endif

const char* ssid     = STASSID;
const char* password = STAPSK;

Ticker gWifiDisconnectTimer;

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

  Serial.println();
  Serial.printf("Version info: %s\r\n", ESP.getFullVersion().c_str());
 
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
  }
}

void disconnectWiFi () {
  WiFi.disconnect();
  WiFi.begin(ssid, password);
}

void loop() {
  delay(5000);
  do_connect("api.github.com", 443);
}

void do_connect(const char* host, int port) {
  uint32_t start, stop;
  
  Serial.print("\r\nconnecting to ");
  Serial.print(host);
  Serial.print(':');
  Serial.println(port);

  WiFiClientSecure client;
  client.setInsecure();
  client.setBufferSizes(1024, 1024);

  gWifiDisconnectTimer.once_ms(500, disconnectWiFi);

  start = millis();
  if (!client.connect(host, port)) {
    stop = millis();
    Serial.printf("connection failed, timeout: %d ms\r\n", stop - start);
  }

  if (client.connected()) {
    stop = millis();
    Serial.printf("Connection done in %d ms, disconnecting\r\n", stop - start);
  }
  client.stop();

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
  }
}

@sislakd
Copy link
Contributor

sislakd commented May 16, 2019

I found an interesting bug causing hang of WiFiClient and WiFiClientSecure which could be related - see #6104.

@mnunespt
Copy link

Please try the latest GIT head. #6065 included a fix that enables a fst SSL disconnect response and, I think, will error out quickly and not hang. Please report back so we can track.

Many many thanks, that solution works like a charm. I've been fighting this for weeks. Have made a workaround, but this solved my problem. I believe it can help many more people.
Thanks once again.

@earlephilhower
Copy link
Collaborator

All credit goes to @sislakd for this specific fix. I'll close this bug for now since it seems to have multiple confirmations.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
waiting for feedback Waiting on additional info. If it's not received, the issue may be closed.
Projects
None yet
Development

No branches or pull requests

5 participants