matteocrippa / leafminer

A FOSS bitcoin miner for ESP8266 and ESP32
MIT License
73 stars 12 forks source link

ESP8266 Crashes at seemingly random intervals after mining starts #24

Open wmikrut opened 6 months ago

wmikrut commented 6 months ago

After a short period of time the ESP8266 crashes and restarts. Mine on an pool and wait a few minutes to reproduce the issue.

I see that shares are being submitted and can verify that those sahes are making it through my local stratum proxy to the pool.

Here is 10 minutes of run time from PlatformIO serial monitor with decoder. I am running a local stratum proxy and I definitely see valid shares being submitted to the pool.

Could this be an issue with parsing a network response? Each time it fails it seems to be on network_listen() at src\network/network.cpp:416

I have experienced this with v11 and v12.

esp8266.log

cromes85 commented 6 months ago

@matteocrippa Avez vous une possibilité pour cela?

matteocrippa commented 6 months ago

nope, will try during a night this week

cromes85 commented 6 months ago

Rien d'urgent pour moi... je voudrais pouvoir aider... Mais mon domaine est plus le python...

Le mar. 19 mars 2024, 22:42, Matteo Crippa @.***> a écrit :

nope, will try during a night this week

— Reply to this email directly, view it on GitHub https://github.com/matteocrippa/leafminer/issues/24#issuecomment-2008183433, or unsubscribe https://github.com/notifications/unsubscribe-auth/AENQRJQ5N7KHGXTAJTUUSJ3YZCWMZAVCNFSM6AAAAABE2ZRYR2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMBYGE4DGNBTGM . You are receiving this because you commented.Message ID: @.***>

wmikrut commented 6 months ago

I know why the crash is occurring.

I ran the miner with a stratum proxy and was watching the screen. Whenever the proxy notified about a new job available:

2024-03-20 14:03:41,301 INFO proxy client_service.handle_event # New job 201819d for prevhash 78501535, clean_jobs=False

The miner crashes and restarts.
This is why it seems random, new notifications come all the time.

cromes85 commented 6 months ago

@wmikrut comment pensez vous que l'on pourrait résoudre cela? how do you think we could resolve this?

matteocrippa commented 6 months ago

Good catch, so probably is going out of memory when it calculates the coinbase

cromes85 commented 6 months ago
#ifndef UNIT_TEST

#include <Arduino.h>

#if defined(ESP32)
#include "freertos/task.h"
#endif // ESP32

#include "leafminer.h"
#include "utils/log.h"
#include "model/configuration.h"
#include "network/network.h"
#include "network/accesspoint.h"
#include "utils/blink.h"
#include "miner/miner.h"
#include "current.h"
#include "utils/button.h"
#include "storage/storage.h"
#include "network/autoupdate.h"
#include "massdeploy.h"
#if defined(HAS_LCD)
#include "screen/screen.h"
#endif // HAS_LCD

char TAG_MAIN[] = "Main";
Configuration configuration = Configuration();
bool force_ap = false;

void setup()
{
  Serial.begin(115200);
  delay(3000); // augmentation pour test
  l_info(TAG_MAIN, "LeafMiner - v.%s - (C: %d)", _VERSION, CORE);

#if defined(ESP8266)
  l_info(TAG_MAIN, "ESP8266 - Disable WDT");
  ESP.wdtDisable();
  *((volatile uint32_t *)0x60000900) &= ~(1);
#else
  l_info(TAG_MAIN, "ESP32 - Disable WDT");
  disableCore0WDT();
#endif // ESP8266

  storage_setup();

  force_ap = button_setup();

  storage_load(&configuration);

  if (configuration.wifi_ssid == "" || force_ap)
  {
#if defined(MASS_WIFI_SSID) && defined(MASS_WIFI_PASS) && defined(MASS_POOL_URL) && defined(MASS_POOL_PASSWORD) && defined(MASS_POOL_PORT) && defined(MASS_WALLET)
    configuration.wifi_ssid = MASS_WIFI_SSID;
    configuration.wifi_password = MASS_WIFI_PASS;
    configuration.pool_url = MASS_POOL_URL;
    configuration.pool_password = MASS_POOL_PASSWORD;
    configuration.pool_port = MASS_POOL_PORT;
    configuration.wallet_address = MASS_WALLET;
#else
    accesspoint_setup();
    return;
#endif // MASS_WIFI_SSID && MASS_WIFI_PASS && MASS_SERVER_DOMAIN && MASS_SERVER_PASSWORD && MASS_WALLET
  }

#if !defined(HAS_LCD)
  Blink::getInstance().setup();
  delay(500);
  Blink::getInstance().blink(BLINK_START);
#else
  screen_setup();
#endif // HAS_LCD

  autoupdate();

  if (network_getJob() == -1)
  {
    l_error(TAG_MAIN, "Failed to connect to network");
    l_info(TAG_MAIN, "Fallback to AP mode");
    force_ap = true;
    accesspoint_setup();
    return;
  }

#if defined(ESP32)
  btStop();
  xTaskCreate(currentTaskFunction, "stale", 1024, NULL, 1, NULL);
  xTaskCreate(buttonTaskFunction, "button", 1024, NULL, 2, NULL);
  xTaskCreate(mineTaskFunction, "miner0", 6000, (void *)0, 10, NULL);
  xTaskCreate(networkTaskFunction, "network", 10000, NULL, 3, NULL);
#if CORE == 2
  xTaskCreate(mineTaskFunction, "miner1", 6000, (void *)1, 11, NULL);
#endif
#endif

#if defined(ESP8266)
  network_listen();
#endif
}

void loop()
{
  if (configuration.wifi_ssid == "" || force_ap)
  {
    accesspoint_loop();
    return;
  }

#if defined(ESP8266)
  miner(0);
#endif // ESP8266
}

#endif

for test, increase of the delay at line 32 in the main.cpp file

wmikrut commented 6 months ago

I'm not sure it's an out of memory condition. I loaded your Job context with breakpoints and the whole process completes every time. I don't think its a WDT issue because WDT was disabled in main... I re-enabled it and saw the same result.

Could it be as simple as a stack overflow? job.cpp.txt esp8266.log

cromes85 commented 6 months ago

Et la version 10 fonctionnait? And version 10 worked?

wmikrut commented 6 months ago

I compiled all the way back to v5. There is no v6 Source.

v5 does not crash on new work notifications. v7 and on does crash on new work notifications.

cromes85 commented 6 months ago

@wmikrut and it seems that it updates automatically?

wmikrut commented 6 months ago

I've been running it for 15 minutes now with no crashes. However, there have been importand fixes in later releases.

I'll keep digging and see if I can spot where it's binding up.

cromes85 commented 6 months ago

OK top, Can you send me the functional version in bin without automatic update in the meantime? in *.bin format?

matteocrippa commented 6 months ago

Just pushed a few changes, quick tested and seems way more stable for me for a Weimos D1, give a try to 0.0.13 (or just way the autoupdate forcing a reboot)

cromes85 commented 6 months ago

Greeaaattt

wmikrut commented 6 months ago

It is definitely more stable and now I think I can see a potential memory issue that would be easy to fix.

Every so often the stratum server comes along and assigns a new job and parm 9 will be clean jobs false. From what I gather it means that the server is telling the miner - "Finish your nonces then start on this new job." Mainly so you're not waiting for work.

Under normal circumstances this is fine because hardware miners are quick and jump from job to job.

Now the ESP8266 is much slower and can't handle a lot of queued work. I've see after 3-6 notifications of work being queued the chip freezes up completely.

I've added some quick code to say when work is already queued up, skip queuing up additional jobs. Until Clean Jobs True comes down, we can can working on the current job until we run out of nonces and start on the next job.

When true comes down reset everything and start over.

wmikrut commented 6 months ago

Definitely much more stable with the limiting of queued jobs. The program is no longer dumping or freezing up.

After an hour it was still running.

It stopped only because by wifi router is garbage and the connection dropped. This is not an item related to this thread, just an FYI.

The program picked it up and reconnected, but it never re-subscribed or authorized the new connection so I kept getting the Connection is not subscribed error.

A future item - subscribe(), authorize(), difficulty() on a new connection. Or, on second thought, perhaps a full reset of the chip would take care of the issue IE: ESP.restart()

wmikrut commented 6 months ago

I forked the project so you can look at some of the code I am playing with on my dev branch.

matteocrippa commented 6 months ago

I prepared a branch v/0.0.14, but didn't had time to test it yet with some changes according to the feedback you shared. In general any 1 core device will skip enqueuing any extra job and just replace the current on clean_jobs is true. Also add logic to try to force reset the session if connection is failing

wmikrut commented 6 months ago

What caught my attention was line 83 in current.cpp current_job_next = new Job(notification, *current_subscribe, current_difficulty);

This was firing every time new work was sent down from the proxy with clean jobs = false. There are times I see a clean jobs false come down 30-40x before a true comes down.

It was only a guess that perhaps the new Job was somehow allocating memory and/or stack space. I don't know for sure... but I do know what once I stopped the new Job from running on every notification it stopped freezing up.

wmikrut commented 6 months ago

We can close this issue. I have moved on to v14 for testing.

wmikrut commented 6 months ago

I've been running v14 for 30 minutes now. Not a single error!

21:49:24.498 > [I] Miner: [0] > [247b563] > 0x00188f0f - diff 0.000043553264 21:49:24.498 > [I] Network: >>> {"id":232,"method":"mining.submit","params":["wmikrut.ex1","247b563","745449","65fe4245","00188f0f"]} 21:49:24.514 > 21:49:24.639 > [I] Network: <<< [mining.submit] {"error": null, "id": 232, "result": true} 21:49:24.639 > [I] Network: Share accepted 21:49:24.639 > [I] Current: Hash accepted: 200

That's a lot of work for the 8266! Can't wait to let it run overnight.

On Fri, Mar 22, 2024 at 4:41 PM Matteo Crippa @.***> wrote:

I prepared a branch v/0.0.14, but didn't had time to test it yet with some changes according to the feedback you shared. In general any 1 core device will skip enqueuing any extra job and just replace the current on clean_jobs is true. Also add logic to try to force reset the session if connection is failing

— Reply to this email directly, view it on GitHub https://github.com/matteocrippa/leafminer/issues/24#issuecomment-2015970121, or unsubscribe https://github.com/notifications/unsubscribe-auth/AALJJSQ2UQKE5CZTGWMYJRLYZSQPZAVCNFSM6AAAAABE2ZRYR2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMJVHE3TAMJSGE . You are receiving this because you were mentioned.Message ID: @.***>

matteocrippa commented 5 months ago

Can we close this?

cromes85 commented 5 months ago

Pas encore svp

Le sam. 30 mars 2024, 22:16, Matteo Crippa @.***> a écrit :

Can we close this?

— Reply to this email directly, view it on GitHub https://github.com/matteocrippa/leafminer/issues/24#issuecomment-2028470545, or unsubscribe https://github.com/notifications/unsubscribe-auth/AENQRJXXRE5MAS5DYZLUWY3Y24MQ3AVCNFSM6AAAAABE2ZRYR2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMRYGQ3TANJUGU . You are receiving this because you commented.Message ID: @.***>

PSLLSP commented 5 months ago

I tried to flash ESP8266MOD with LeafMiner 0.0.13 and it was not stable. It mined for several minutes and then it stopped to mine. When it was mining and I was watching serial console then I noticed that miner often connects to WiFi, like it loses signal or it was disconnected. From my point of view, this issue was not addressed in LeafMiner 0.0.13 and should not be closed. Or there is other issue with ESP8266MOD, it it just not stable miner...

I flashed firmware in this way:

esptool.py --baud 115200 write_flash 0x0000 firmware_esp8266.bin
ffrediani commented 5 months ago

Hello I have just flashed a ESP8266 v3 (NodeMCU) and I am not sure this issue I am watching. If not related I can open a separate issue. After flashing it with 0.0.15 and configured it with the SSID, password and wallet address the one thing I've changed was to not show anything on the LCD as this unit had none.

After rebooting it connects and starts mining. I can see shares being submited to vkbit.com, however if I try to simply ping its IP address it responds intermittently, not sure if it is disconnecting and reconnecting the network. Also I am unable to access the Web interface pointing the browser to its IP address.

matteocrippa commented 5 months ago

@ffrediani it's correct, web gui is available only at the first boot or if you erase the flash, keeping a web ui up and running will kill the already limited performances of an esp8266. The behaviour of not being pingable is somehow correct too because we retain a connection, but it's more an open tcp+stratum to the server, as you mentioned you can see it running on vbkit.

If you want there's a branch v0.0.16 with some patches, but it's still a work in progress

ffrediani commented 5 months ago

@matteocrippa thanks. Isn't there any way to prioritize the processes (the one runs the web interface over the mining one) when required ? So it could decrease the hashrate as necessary in order to reply to the web client for a short period while it is being accessed ?

In any way, even not pinging it or trying to access the web interface I can see that it disconnects and re-connects to the Wifi Access Point every in a while. Is this expected ? If so, if this is happening while it is solving a block it may not be able to submit a share.

Yeah I can try the 0.0.16, however I was not able to find the .bin in Github and can't compile it myself. Any particular URL I can download from ?

ffrediani commented 5 months ago

Yeah, seems that after a while mining the ESP8266 disconnects or crashes and doesn't recover anymore until rebooted. Do you think 0.0.16 would have any chance to avoid this behavior ?

matteocrippa commented 4 months ago

0.0.16 has some patches in that direction but didn't have time to fully test it, for sure it's more stable than 0.0.15 for esp8266. You can install only building manually for now, till it's released via CI.

ffrediani commented 4 months ago

Well, at the moment there is not much too loose as 0.0.15 on the ESP8266 (NodeMCU) is crashing every in a while and only a reboot brings it back to life. If anyone can make the binary available somewhere I can upgrade here.

ffrediani commented 4 months ago

@matteocrippa is there any way to prioritize the processes (the one runs the web interface over the mining one) when required ? So it could decrease the hashrate as necessary in order to reply to the web client for a short period while it is being accessed and be able to show the web interface for troubleshooting and upgrade ?

matteocrippa commented 4 months ago

No plan for such a feature for solo mining, it's already kinda success that an ESP8266 can barely mine. Introducing something like this risk to be a major pain somehow. So far the Serial monitor is a good way to troubleshoot and debug, web can be used just for the first setup for non tech users.

ffrediani commented 4 months ago

It is not a feature. Feature is an extra or new thing, but prioritizing processes, if possible for ESP8266, is already something that is already there.

I managed to compile 0.0.16 in PlatformIO and upload it. I am monitoring on the serial monitor. If I find anything before the crash I will share. Thanks. Ciao.

matteocrippa commented 4 months ago

0.0.16 is available as binary too if you need. Sadly turns into a feature because it will require some logic rewriting to achieve something that can introduce lower performances, on ESP8266 in particular I was trying to strip out all the possible extra to have the best performance due to the limited cpu power.

ffrediani commented 4 months ago

Hi

I have been using 0.0.16 for about 2 days. I left it running connected to the PC with a Serial Monitor. It had some issues about 2 times, but it recovers by rebooting and starting over again so the mining process doesn't die and all stops. When I connected it to a simple USB power supply to the wall, it starts mining but after a while it dies and as it is connected to the USB power supply it is not possible to watch the serial.

How the fact to be connected to the serial monitor can change its behavior in a way that it didn't die once ? Any particular debug/troubleshooting or data collection I can make in order to find out more?

PSLLSP commented 4 months ago

How the fact to be connected to the serial monitor can change its behavior in a way that it didn't die one when connected to it ?

Maybe serial console, that TX buffer is not read by PC and buffer overflows? What happens when serial buffer is full??

ffrediani commented 4 months ago

Hi. I've connected again to serial console to watch it and left it running for a while. After some random time it simply stopped mining but didn't throw any errors. Find below the last couple of messages I see in the serial console. Let me know if there is anything else I can collect or do in order to get more information that identifies the problem.

[D] Network: <<< len: 37 [I] Network: <<< [mining.submit] {"id":275,"error":null,"result":true} [I] Network: Share accepted [I] Current: Hash accepted: 234 [D] Network: <<< len: 0 [D] Miner: [0] > Hash 0.000052475481 > 0.000016000000 [I] Miner: [0] > [6211ad] > 0x004becb1 - diff 0.000052475481 [I] Network: >>> {"id":277,"method":"mining.submit","params":[".ESP8266-NodeMCU","6211ad","11221363","662fcbc0","004becb1"]}

[D] Network: <<< len: 37 [I] Network: <<< [mining.submit] {"id":277,"error":null,"result":true} [I] Network: Share accepted [I] Current: Hash accepted: 235 [D] Network: <<< len: 721 [I] Network: <<< [mining.notify] {"id":null,"method":"mining.notify","params":["6242b1","a3afdcbb1af9ab21edb6f35751204f96dda3ab240001667e0000000000000000","02000000010000000000000000000000000000000000000000000000000000000000000000ffffffff1503abd60c564b4249542e434f4d","ffffffff025074a31200000000160014e55dea92fb04b1d68e692a016f29989966d538eb0000000000000000266a24aa21a9ed461f6b6de58a3aec52ec7d1e9fb573fea92fe609fe87cd350de0b8a9dec285b800000000",["dd22d0b2a0243176f7f0eef6f8ee570f53d76a16c57caa8cc37371123c4a67d7","766881d6e824159d63f7d43613e12c0611329d06e22fd461a6504b0c292594c7","cd4b33e458e3318cdbb5d4ad7a140ff286072481620b6622713deda12f7392c7","e65fa7836e99d150e7c35ded5f47a975437204cd44395c85c83ddd32e843df04"],"20000000","170331db","662fcddb",true]}

[D] Current: Job: 6211ad is cleaned and replaced with 6242b1 [I] Job: Random value: 1044545964

ffrediani commented 4 months ago

To add up managed to catch up a different error on the serial console. On this time however it "recover" by starting over again on reboot:

[I] Job: Random value: 1964889275 [I] Current: Job: 62483c ready to be mined [D] Network: <<< len: 54 [I] Network: <<< [mining.submit.fail] {"id":8,"result":null,"error":[21,"Job not found",""]} [E] Network: Share rejected [E] Network: Late responses, skip them [D] Network: <<< len: 63 [I] Network: <<< [mining.set_difficulty] {"id":null,"method":"mining.set_difficulty","params":[0.00001]} [I] Current: New difficulty: 0.000010000000 [D] Network: Difficulty set to: 0.0000100000 [D] Network: <<< len: 783

[I] Network: <<< [mining.notify] {"id":null,"method":"mining.notify","params":["624857","ce1c8a9a80ef4ed23a53a2fb74117cd532dbc4ed000164fa0000000000000000","02000000010000000000000000000000000000000000000000000000000000000000000000ffffffff1503afd60c564b4249542e434f4d","ffffffff038fdd17000000000016001427e04fe106a94b902e0f35ce87e0531b0ff47f3395398d1200000000160014e55dea92fb04b1d68e692a016f29989966d538eb0000000000000000266a24aa21a9ed181cd5416c2d26099b6873b2514ef6ae3d0d9e0438f2a4bec2d813958d05fdaa00000000",["eb85016e05b7149817abc553d40fb18f3f7a1fc547a07ef9f015253d53ca36b5","ab96f6c6e5a76f22b77a1e58dc4a28aa381fa727b21f60ac02b29b2a8a50e079","ec5bc63184fef71824c363b89ab350e63cfd0b43e60b0fa0b09947a96323044b","fba15909307f25533d3f723f4fa8463bd30c21684e9da0ed014a8badcae97744"],"20000000","170331db","662fdb00",true]}

[D] Current: Job: 62483c is cleaned and replaced with 624857 [I] Job: Random value: owork: <<< len: 54 [I] Network: <<< [mining.submit.fail] {"id":9,"result":null,"error":[21,"Job not found",""]} [E] Network: Share rejected [E] Network: Late responses, skip them [D] 00000000 40104919 3ffefb30

3ffffa40: 0000003c 00000000 40104919 000000ff
3ffffa50: 0000001c 00000001 40105a61 3ffef104919 000000ff
3ffffa50: 0000001c 00000001 40105a61 3ffef104919 000000ff
3ffffa50: 0000001c 00000001 40105a61 3ffef104919 000000ff
3ffffa50: 0000001c 00000001 40105a61 3ffef104919 000000ff
3ffffa50: 0000001c 00000001 40105a61 3ffef104919 000000ff
3ffffa50: 0000001c 00000001 40105a61 3ffef104919 000000ff
(several lines like the ones above) ... ... 3ffffd10: 3fffffd00: 3fff363c 00000099 3fff36ad 00000000

3ffffd10: 3f 0x3fff20b8, len 40, room 8 tail 0 chksum 0x2b csum 0x2b v0009f7e0

~ld

��n�r��n|� l � lb brl�nb�n l�rl�l� �[I] Main: LeafMiner - v.0.0.16 - (C: 1)

[I] Main: Compiled: Apr 27 2024 17:14:19 [I] Main: Free memory: 36248 [I] Main: ESP8266 - Disable WDT [I] Storage: Setup: OK [I] Configuration: wifi_ssid: MySSID [I] Configuration: wifi_password: mypassword [I] Configuration: wallet_address: wallet-address.ESP8266-NodeMCU

[I] Configuration: pool_password: x [I] Configuration: pool_url: pool.vkbit.com [I] Configuration: pool_port: 1073741680 [I] Configuration: blink_enabled: on [I] Configuration: blink_brightness: 256 [I] Configuration: lcd_on_start: off [I] Configuration: miner_type: [I] Configuration: auto_update: on [I] Blink: Setup [I] Blink: Blinking 5 times

[I] AutoUpdate: Connecting to MySSID... [D] AutoUpdate: payload: { "current": "0.0.16", "link": "https://github.com/matteocrippa/leafminer/releases/download/v{{version}}/firmware_{{device}}.bin", "devices": [ "esp8266", "esp32", "esp32-s2", "esp32-s3", "geekmagic-smalltv", "lilygo-t-display-s3" ] }

[D] AutoUpdate: Remote Version: 0.0.16 [D] AutoUpdate: No Updates, Version: 0.0.16 [I] Network: Connecting to MySSID...

ffrediani commented 4 months ago

Managed to catch another error which also recovered by a reboot

[I] Current: Hash accepted: 821 [D] Network: <<< len: 0 [D] Miner: [0] > Hash 0.000074538038 > 0.000016000000 [I] Miner: [0] > [663d05] > 0x0036c176 - diff 0.000074538038 [I] Network: >>> {"id":954,"method":"mining.submit","params":["wallet-address.ESP8266-NodeMCU","663d05","66321160","662ff998","0036c176"]}

[D] Network: <<< len: 37 [I] Network: <<< [mining.submit] {"id":954,"error":null,"result":true} [I] Network: Share accepted [I] Current: Hash accepted: 822 [D] Network: <<< len: 721 [I] Network: <<< [mining.notify] {"id":null,"method":"mining.notify","params":["6662c1","78a55fdce045fcec0a8ebf1027d9eee88af815010000c74e0000000000000000","02000000010000000000000000000000000000000000000000000000000000000000000000ffffffff1503bed60c564b4249542e434f4d","ffffffff02fe92a31200000000160014e55dea92fb04b1d68e692a016f29989966d538eb0000000000000000266a24aa21a9ed4f526208d9c69ee7153714537088d8f99037e3d423eedded7e05560147a5fdd100000000",["65e63f9daece411de58adb9543f2db626f6aead247b459718a016a1082b9d5b6","9ac7ed2108745edfff66d944f1a7c5871c25429aeceff11228c4104735fefac6","07c0f640c728a68e394bd60085a253cf935bd6566d1b6b7132cfc41bc12f3035","5ee51d4725fd666e4616691947cfe3ee7e036abbe3af82fdcb185318ad89d9b2"],"20000000","170331db","662ffb20",true]}

[D] Current: Job: 663d05 is cleaned and replaced with 6662c1 [I] Job: Random value: 267434342 [I] Current: Job: 6662c1 ready to be mined

User exception (panic/abort/assert)

--------------- CUT HERE FOR EXCEPTION DECODER ---------------

Panic core_esp8266_main.cpp:191 __yield

stack>>> ctx: cont sp: 3ffff560 end: 3fffffc0 offset: 0010 3ffff570: 00000001 62d0e560 3fff12d0 40229b7d
3ffff580: 000007ff 3ffff5e8 3fff12d0 4022685d
3ffff590: 00000527 00000020 00000000 40226961
3ffff5a0: 3fff12d0 00000020 3fff469c 3fff45dc
3ffff5b0: 3fff45f4 00000020 3fff469c 3fff45dc
3ffff5c0: 3fff45f4 3fff460c 000002d1 402157fe ... ... 3ffffce0: 0000009b 3ffe8368 0000009b 40237901
3ffffcf0: 00000000 00000000 00000001 4010047c
3ffffd00: 3fff363c 0000009a 3fff36ac 00000000
3ffffd10: 3fff36ad��n�r��n|� l � lb brl�nb�n l�rl�l� ���n�r��n|� l � lb brl�nb�n l�rl�l� ���n�r��n|� l � lb brl�nb�n l�rl�l� ���n�r��n|� l � lb brl�nb�n l�rl�l� ���n�r��n|� l � lb brl�nb�n l�rl�l� ���n�r��n|� l � lb brl�nb�n l�rl�l� ���n�r��n|� l � lb brl�nb�n l�rl�l� ���n�r��n|� l � lb brl�nb�n l�rl�l� ���n�r��n|� l � lb brl�nb�n l�rl�l� ���n�r��n|� l � lb brl�nb�n l�rl�l� �_brightness: 256

[I] Configuration: lcd_on_start: off [I] Configuration: miner_type: [I] Configuration: auto_update: on [I] Blink: Setup [I] Blink: Blinking 5 times

matteocrippa commented 4 months ago

Seems mostly related to the change of the job, btw good that it reboots and does not stay stuck It would be perfect to decode the crash https://github.com/dankeboy36/esp-exception-decoder

ffrediani commented 4 months ago

@matteocrippa yeah, most of the time it reboots which is Ok to keep going, however one of the reports above it simply stops, doesn't show any errors and only recovery when a Poweroff/Poweron. I just got back to the PC and again it was stopped without any errors. Just the last message "Job: Random value: 62289229" and that's it.

Strangely it happens mostly (but not only) when it is connected directly to a power supply where is not possible to get serial output.

ffrediani commented 4 months ago

Hello @matteocrippa I see that on the changelog of comming 0.0.17 version there is nothing else other than the version change. Did you, by any chance, find anything relavant that was causing it to stop mining after random times after boot by?

I have been running 0.0.16 here on the serial console and most of the time it just gets stuck with no error shown, stops mining wihtout a reboot or anything else and just a poweroff/poweron reovers it. I was going to suggest maybe adding a watchdog to check if it stoppped mining and reboot or restart the job, if that make sense for now.

Anyway, I have flashed 0.0.17 already to the ESP8266 and I'm testing it. Will provide feedback soon.

matteocrippa commented 4 months ago

I'm working locally with 0.0.17, I will push changes remote just in case of any relevant improvement. Sadly nothing so far. I'm also testing the WDT approach specifically for ESP8266, let's see

matteocrippa commented 4 months ago

I managed to capture the crash

22:47:11.527 > [I] Job: Random value: 1262036342
22:47:11.533 > [I] Job: Hex value: 4B392576
22:47:11.533 > [D] Job: Coinbase hash: 9906fbc5f64f7d7057ab41116b1b6289791a4f4ec1df1659ef8e530d5ea3a37b
22:47:11.543 > [D] Job: Merkle root: 9906fbc5f64f7d7057ab41116b1b6289791a4f4ec1df1659ef8e530d5ea3a37b
22:47:11.549 > [I] Current: Job: a0ed2c ready to be mined
22:47:11.554 > 
22:47:11.554 > User exception (panic/abort/assert)
22:47:11.560 > --------------- CUT HERE FOR EXCEPTION DECODER ---------------
22:47:11.565 > 
22:47:11.565 > Panic core_esp8266_main.cpp:191 __yield
22:47:11.565 > 
22:47:11.565 > >>>stack>>>
22:47:11.565 > 
22:47:11.565 > ctx: cont
22:47:11.571 > sp: 3ffff560 end: 3fffffc0 offset: 0010
22:47:11.571 > 3ffff570:  00000000 5d2f1a9f 3fff1310 40229e79  
22:47:11.634 > 3ffff580:  000007ff 3ffff5e8 3fff1310 40226b59  
22:47:11.724 > 3ffff590:  0000123c 00000020 00000000 40226c5d  
22:47:11.724 > 3ffff5a0:  3fff1310 00000020 3fffaf84 3fffb4e4  
22:47:11.724 > 3ffff5b0:  3fffb4fc 00000020 3fffaf84 3fffb4e4  
22:47:11.724 > 3ffff5c0:  3fffb4fc 3fffb514 00000205 40215ac5  
22:47:11.724 > 3ffff5d0:  3fffaf84 00000000 00000205 00000001  
22:47:11.724 > 3ffff5e0:  00000001 00004208 6469227b 756e3a22  
22:47:11.724 > 3ffff5f0:  222c6c6c 6874656d 3a22646f 6e696d22  
22:47:11.724 > 3ffff600:  2e676e69 69746f6e 2c227966 72617022  
22:47:11.724 > 3ffff610:  22736d61 61225b3a 32646530 222c2263  
22:47:11.724 > 3ffff620:  64366634 66346330 61326233 33663432  
22:47:11.724 > 3ffff630:  35656666 38643164 64343661 36663538  
22:47:11.724 > 3ffff640:  30393633 62383938 31303030 66323136  
22:47:11.724 > 3ffff650:  30303030 30303030 30303030 30303030  
22:47:11.724 > 3ffff660:  30222c22 30303032 30303030 30303031  
22:47:11.724 > 3ffff670:  30303030 30303030 30303030 30303030  
22:47:11.724 > 3ffff680:  30303030 30303030 30303030 30303030  
22:47:11.724 > 3ffff690:  30303030 30303030 30303030 30303030  
22:47:11.724 > 3ffff6a0:  30303030 30303030 30303030 66666630  
22:47:11.724 > 3ffff6b0:  66666666 30353166 64646433 35633037  
22:47:11.724 > 3ffff6c0:  34623436 35393432 34653234 34663433  
22:47:11.724 > 3ffff6d0:  222c2264 66666666 66666666 34383330  
22:47:11.724 > 3ffff6e0:  37313764 30303030 30303030 36313030  
22:47:11.724 > 3ffff6f0:  34313030 30653732 31656634 39613630  
22:47:11.724 > 3ffff700:  30396234 66306532 65633533 30653738  
22:47:11.724 > 3ffff710:  62313335 34666630 33336637 37386339  
22:47:11.724 > 3ffff720:  32313838 30303030 30303030 30303631  
22:47:11.724 > 3ffff730:  30393431 38316436 66363863 38336365  
22:47:11.724 > 3ffff740:  30316666 62303632 65396464 36653964  
22:47:11.724 > 3ffff750:  31653263 64663231 30303461 30303030  
22:47:11.724 > 3ffff760:  30303030 30303030 36323030 34326136  
22:47:11.724 > 3ffff770:  31326161 64653961 36663265 66336331  
22:47:11.724 > 3ffff780:  31643137 64666564 39616633 66643939  
22:47:11.724 > 3ffff790:  39363361 35373335 39366335 39383630  
22:47:11.728 > 3ffff7a0:  39393937 34623236 62656238 36333864  
22:47:11.728 > 3ffff7b0:  65343739 39666338 30303030 30303030  
22:47:11.733 > 3ffff7c0:  5d5b2c22 3032222c 30303030 2c223030  
22:47:11.739 > 3ffff7d0:  30373122 64313333 222c2262 32333636  
22:47:11.744 > 3ffff7e0:  65346161 61662c22 5d65736c 6632007d  
22:47:11.750 > 3ffff7f0:  30303030 30303030 30303030 30303030  
22:47:11.750 > 3ffff800:  30222c22 30303032 30303030 30303031  
22:47:11.755 > 3ffff810:  30303030 30303030 30303030 30303030  
22:47:11.761 > 3ffff820:  30303030 30303030 30303030 30303030  
22:47:11.766 > 3ffff830:  30303030 30303030 30303030 30303030  
22:47:11.771 > 3ffff840:  30303030 30303030 30303030 66666630  
22:47:11.771 > 3ffff850:  66666666 30353166 64646433 35633037  
22:47:11.777 > 3ffff860:  34623436 35393432 34653234 34663433  
22:47:11.782 > 3ffff870:  222c2264 66666666 66666666 34383330  
22:47:11.788 > 3ffff880:  37313764 30303030 30303030 36313030  
22:47:11.793 > 3ffff890:  34313030 30653732 31656634 39613630  
22:47:11.793 > 3ffff8a0:  30396234 66306532 65633533 30653738  
22:47:11.799 > 3ffff8b0:  62313335 34666630 33336637 37386339  
22:47:11.804 > 3ffff8c0:  32313838 30303030 30303030 30303631  
22:47:11.810 > 3ffff8d0:  30393431 38316436 66363863 38336365  
22:47:11.815 > 3ffff8e0:  30316666 62303632 65396464 36653964  
22:47:11.815 > 3ffff8f0:  31653263 64663231 30303461 30303030  
22:47:11.820 > 3ffff900:  30303030 30303030 36323030 34326136  
22:47:11.826 > 3ffff910:  31326161 64653961 36663265 66336331  
22:47:11.831 > 3ffff920:  31643137 64666564 39616633 66643939  
22:47:11.837 > 3ffff930:  39363361 35373335 39366335 39383630  
22:47:11.842 > 3ffff940:  39393937 34623236 62656238 36333864  
22:47:11.842 > 3ffff950:  65343739 39666338 30303030 30303030  
22:47:11.848 > 3ffff960:  5d5b2c22 3032222c 30303030 2c223030  
22:47:11.853 > 3ffff970:  30373122 64313333 222c2262 32333636  
22:47:11.858 > 3ffff980:  32316161 61662c22 5d65736c 4023007d  
22:47:11.962 > 3ffff990:  40103ad8 3ffea348 00000004 40235499  
22:47:11.962 > 3ffff9a0:  3ffff9cc 00000000 00000066 3ffea34d  
22:47:12.263 > 3ffff9b0:  3ffea34e 3ffe8368 3ffffa70 4023aad4  
22:47:12.263 > 3ffff9c0:  00000000 00000042 00000000 00000000  
22:47:12.263 > 3ffff9d0:  00000042 00000046 00302073 ffffffff  
22:47:12.263 > 3ffff9e0:  40225720 3fff316c 3ffe8600 00000007  
22:47:12.263 > 3ffff9f0:  0000005b 0000007e 00000000 fffffffe  
22:47:12.263 > 3ffffa00:  00ffffff 3fffc6fc 0000001c 3ffe8600  
22:47:12.263 > 3ffffa10:  3fff316c 40225714 00000000 00000030  
22:47:12.263 > 3ffffa20:  3ffffb50 3ffffb30 0000000c 00000000  
22:47:12.263 > 3ffffa30:  3ffffb50 3ffffb30 00000008 00000042  
22:47:12.263 > 3ffffa40:  00000000 00000020 00000010 40100ed1  
22:47:12.263 > 3ffffa50:  00000007 3fff3484 00000000 3ffea348  
22:47:12.263 > 3ffffa60:  00000047 3ffe8368 00000047 40237bf9  
22:47:12.263 > 3ffffa70:  3fff358a 00000218 00000000 ffff0208  
22:47:12.263 > 3ffffa80:  3fff3544 00000046 00000001 4010047c  
22:47:12.263 > 3ffffa90:  3ffffb60 3ffffb50 3ffea73c 00000000  
22:47:12.263 > 3ffffaa0:  3ffea73d 00000003 3ffea73c 4022b865  
22:47:12.263 > 3ffffab0:  00000002 fffff6ff 3ffffdb0 4022b865  
22:47:12.263 > 3ffffac0:  00000046 00000000 00000001 3ffea348  
22:47:12.263 > 3ffffad0:  40225714 3fff13f8 3ffeae18 40225720  
22:47:12.263 > 3ffffae0:  000002f4 00000020 3ffe8638 40100b3d  
22:47:13.275 > 3ffffaf0:  00000047 00000020 3fff3544 3ffea348  
22:47:13.275 > 3ffffb00:  00000047 00000020 3fff3544 40100e9a  
22:47:13.275 > 3ffffb10:  3fffdad0 3fff3544 3fff13f8 402163fc  
22:47:13.275 > 3ffffb20:  3ffffb50 3ffffb30 00000008 4010287c  
22:47:13.275 > 3ffffb30:  3ffeba02 4027612b 3ffffb80 00004bc6  
22:47:13.275 > 3ffffb40:  00000000 00ffffff 3ffffb80 40217ae0  
22:47:13.275 > 3ffffb50:  40217ac4 3fff1310 4027701f 00000001  
22:47:13.275 > 3ffffb60:  00000001 00000000 00000014 00000100  
22:47:13.275 > 3ffffb70:  0000005c 00000001 40105a61 3ffefbc8  
22:47:13.275 > 3ffffb80:  00000002 00000000 00000020 4010047c  
22:47:13.275 > 3ffffb90:  40102cad 3ffffc83 00000002 4010287c  
22:47:13.275 > 3ffffba0:  3ffeba02 40105afb 3ffef198 3ffe8368  
22:47:13.275 > 3ffffbb0:  00000001 40104cd6 3ffefbc8 4023a684  
22:47:13.275 > 3ffffbc0:  40105147 02c8cad1 3ffefd24 401035e4  
22:47:13.275 > 3ffffbd0:  40105549 3ffefbc8 3ffef198 00040000  
22:47:13.275 > 3ffffbe0:  40104c0f 00000034 00000002 00040000  
22:47:13.275 > 3ffffbf0:  00002200 40104a08 00040000 00000001  
22:47:13.275 > 3ffffc00:  40103ad8 00080000 4023a5c0 4023a684  
22:47:13.275 > 3ffffc10:  3ffec2b0 00000000 00000004 02c8cad1  
22:47:13.275 > 3ffffc20:  3ffec280 2c9f0300 4000050c 3fffc278  
22:47:13.755 > 3ffffc30:  401037c0 3fffc200 00000022 4023aad4  
22:47:13.755 > 3ffffc40:  4022b276 00000030 00000010 ffffffff  
22:47:13.755 > 3ffffc50:  4022b85f 00000000 00000063 00000000  
22:47:13.755 > 3ffffc60:  007f8000 0000007e 00000000 fffffffe  
22:47:13.755 > 3ffffc70:  ffffffff 3fffc6fc 0000005c 3fffacae  
22:47:13.755 > 3ffffc80:  00000005 3fffacaf 00000000 00000030  
22:47:13.755 > 3ffffc90:  3ffea683 3ffe8368 00000000 3fffacfc  
22:47:13.755 > 3ffffca0:  3ffffdd0 3ffffdb0 0000000c 4024516c  
22:47:13.755 > 3ffffcb0:  3ffffdd0 3ffffdb0 00000008 0000008c  
22:47:13.755 > 3ffffcc0:  00000000 3fff18f4 3fff3488 40246ad8  
22:47:13.755 > 3ffffcd0:  00f42400 b1487099 00000000 3ffea348  
22:47:13.755 > 3ffffce0:  00000091 3ffe8368 00000091 40237bf9  
22:47:13.755 > 3ffffcf0:  00000000 00000000 00000001 4010047c  
22:47:13.755 > 3ffffd00:  3fffac24 00000090 3fffac94 00000000  
22:47:13.755 > 3ffffd10:  3fffac95 0000001f 3fffac94 40229e66  
22:47:13.755 > 3ffffd20:  3fff18f4 00000000 00000000 4022b865  
22:47:13.755 > 3ffffd30:  00000002 00000009 fffffffd 4022b865  
22:47:13.755 > 3ffffd40:  00000090 00000000 00000000 3ffea348  
22:47:13.755 > 3ffffd50:  40225714 3fff13f8 3ffeae18 40225720  
22:47:13.755 > 3ffffd60:  000011d0 00000020 3ffe8638 40100b3d  
22:47:13.755 > 3ffffd70:  00000091 00000020 3fffac24 3ffea348  
22:47:13.942 > 3ffffd80:  00000091 00000020 3fffac24 40100e9a  
22:47:13.942 > 3ffffd90:  3fffb4fc 3fffac24 3fff13f8 402163fc  
22:47:13.942 > 3ffffda0:  3ffffdd0 3ffffdb0 00000008 00000000  
22:47:13.942 > 3ffffdb0:  00000000 00000000 3ffffe20 00004bc6  
22:47:13.942 > 3ffffdc0:  00000000 00000000 3ffffe20 40217ae0  
22:47:13.942 > 3ffffdd0:  40217ac4 3fff1310 3ffffe20 3fffb4e4  
22:47:13.942 > 3ffffde0:  3fffb4fc 3fffb514 3ffffe20 40214742  
22:47:13.942 > 3ffffdf0:  3fffff20 3fffb514 3fffff50 40215bc3  
22:47:13.942 > 3ffffe00:  3fff341c 3fffb4ec 3fffb504 3fffb51c  
22:47:13.942 > 3ffffe10:  0002dbc8 47935121 b932c24a ee6745f6  
22:47:13.942 > 3ffffe20:  6469227b 2c373a22 74656d22 22646f68  
22:47:13.942 > 3ffffe30:  696d223a 676e696e 6275732e 2274696d  
22:47:13.942 > 3ffffe40:  6170222c 736d6172 225b3a22 71316362  
22:47:13.942 > 3ffffe50:  336b706a 30726a33 30757361 78707937  
22:47:13.942 > 3ffffe60:  65773070 78306b61 33737463 79646c39  
22:47:13.942 > 3ffffe70:  39686d33 652e6668 32387073 2c223636  
22:47:13.942 > 3ffffe80:  65306122 22323338 4636222c 30314243  
22:47:13.942 > 3ffffe90:  2c224241 33363622 31616132 222c2232  
22:47:13.942 > 3ffffea0:  32303030 38636264 0a7d5d22 40225700  
22:47:13.942 > 3ffffeb0:  000011d0 00000020 3ffe8638 40100b3d  
22:47:14.176 > 3ffffec0:  00000032 00000020 3fffac24 3ffe8c3c  
22:47:14.176 > 3ffffed0:  00000032 00000020 3fffac24 40100e9a  
22:47:14.176 > 3ffffee0:  00000000 3fffac24 3fff13f8 402163fc  
22:47:14.176 > 3ffffef0:  3fffff20 3fffff00 00000008 40b51cc3  
22:47:14.176 > 3fffff00:  8689d668 0016bd3f 00000000 3fffb4ec  
22:47:14.176 > 3fffff10:  0002dbc8 00000000 3fffff54 3fff15dc  
22:47:14.176 > 3fffff20:  00000000 00000000 00000000 3fff10a8  
22:47:14.176 > 3fffff30:  00000000 3f2db04f ea900105 40207f5a  
22:47:14.176 > 3fffff40:  ea900105 3f2db04f 000001f4 4022a690  
22:47:14.176 > 3fffff50:  0002dbc8 27a8f8d4 b41cf0b3 eb66e929  
22:47:14.176 > 3fffff60:  b5e9faee 1cfa12ad d38565e5 cee1daab  
22:47:14.176 > 3fffff70:  0000113e 00000000 000c000f 00000000  
22:47:14.176 > 3fffff80:  3ffeae04 00000000 00000001 3fff15dc  
22:47:14.176 > 3fffff90:  3fffdad0 00000000 3fffdab0 402075be  
22:47:14.176 > 3fffffa0:  feefeffe 00000000 3fffdab0 40229f76  
22:47:14.176 > 3fffffb0:  feefeffe feefeffe feefeffe 4010129d  
22:47:14.176 > <<<stack<<<
22:47:14.176 > 
22:47:14.176 > 0x40229e79 in yield at ??:?
22:47:14.176 > 0x40226b59 in Stream::timedRead() at /Users/matteocrippa/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/Stream.cpp:40
22:47:14.176 > 0x40226c5d in Stream::readBytesUntil(char, char*, unsigned int) at /Users/matteocrippa/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/Stream.cpp:237
22:47:14.176 > 0x40215ac5 in network_listen() at src/network/network.cpp:418
22:47:14.176 > 0x4023007d in ClientContext::getLocalPort() const at /Users/matteocrippa/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266WiFi/src/include/ClientContext.h:226
22:47:14.176 >  (inlined by) WiFiClient::localPort() at /Users/matteocrippa/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266WiFi/src/WiFiClient.cpp:376
22:47:14.176 > 0x40103ad8 in wDev_ProcessFiq at ??:?
22:47:14.176 > 0x40235499 in _printf_float at /workdir/repo/newlib/newlib/libc/stdio/nano-vfprintf_float.c:320 (discriminator 6)
22:47:14.176 > 0x4023aad4 in _svfprintf_r at /workdir/repo/newlib/newlib/libc/stdio/nano-vfprintf.c:662
22:47:14.176 > 0x40225720 in HardwareSerial::write(unsigned char const*, unsigned int) at /Users/matteocrippa/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/HardwareSerial.h:194
22:47:14.176 > 0x40225714 in HardwareSerial::write(unsigned char const*, unsigned int) at /Users/matteocrippa/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/HardwareSerial.h:191
22:47:14.176 > 0x40100ed1 in malloc at /Users/matteocrippa/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/umm_malloc/umm_malloc.cpp:912
22:47:14.176 > 0x40237bf9 in _vsnprintf_r at /workdir/repo/newlib/newlib/libc/stdio/vsnprintf.c:71 (discriminator 4)
22:47:14.176 > 0x4010047c in ets_post at /Users/matteocrippa/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/core_esp8266_main.cpp:238
22:47:14.176 > 0x4022b865 in uart_write at /Users/matteocrippa/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/uart.cpp:545
22:47:14.176 > 0x4022b865 in uart_write at /Users/matteocrippa/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/uart.cpp:545
22:47:14.176 > 0x40225714 in HardwareSerial::write(unsigned char const*, unsigned int) at /Users/matteocrippa/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/HardwareSerial.h:191
22:47:14.176 > 0x40225720 in HardwareSerial::write(unsigned char const*, unsigned int) at /Users/matteocrippa/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/HardwareSerial.h:194
22:47:14.176 > 0x40100b3d in umm_free_core at /Users/matteocrippa/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/umm_malloc/umm_malloc.cpp:642
22:47:14.176 > 0x40100e9a in free at /Users/matteocrippa/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/umm_malloc/umm_malloc.cpp:688
22:47:14.176 > 0x402163fc in l_info(char const*, char const*, ...) at src/utils/log.cpp:30
22:47:14.176 > 0x4010287c in pp_post at ??:?
22:47:14.176 > 0x4027612b in ppTxPkt at ??:?
22:47:14.176 > 0x40217ae0 in ClientContext::write(char const*, unsigned int) at /Users/matteocrippa/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266WiFi/src/include/ClientContext.h:378
22:47:14.176 >  (inlined by) WiFiClient::write(unsigned char const*, unsigned int) at /Users/matteocrippa/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266WiFi/src/WiFiClient.cpp:220
22:47:14.176 > 0x40217ac4 in WiFiClient::write(unsigned char const*, unsigned int) at /Users/matteocrippa/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266WiFi/src/WiFiClient.cpp:214
22:47:14.176 > 0x4027701f in pp_attach at ??:?
22:47:14.176 > 0x40105a61 in lmacTxFrame at ??:?
22:47:14.176 > 0x4010047c in ets_post at /Users/matteocrippa/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/core_esp8266_main.cpp:238
22:47:14.176 > 0x40102cad in rcUpdateTxDone at ??:?
22:47:14.176 > 0x4010287c in pp_post at ??:?
22:47:14.176 > 0x40105afb in lmacTxFrame at ??:?
22:47:14.176 > 0x40104cd6 in lmacRecycleMPDU at ??:?
22:47:14.176 > 0x4023a684 in __ssputs_r at /workdir/repo/newlib/newlib/libc/stdio/nano-vfprintf.c:232
22:47:14.176 > 0x40105147 in lmacRecycleMPDU at ??:?
22:47:14.176 > 0x401035e4 in rcReachRetryLimit at ??:?
22:47:14.176 > 0x40105549 in lmacMSDUAged at ??:?
22:47:14.176 > 0x40104c0f in lmacProcessTxSuccess at ??:?
22:47:14.176 > 0x40104a08 in lmacProcessTXStartData at ??:?
22:47:14.176 > 0x40103ad8 in wDev_ProcessFiq at ??:?
22:47:14.176 > 0x4023a5c0 in __ssputs_r at /workdir/repo/newlib/newlib/libc/stdio/nano-vfprintf.c:179
22:47:14.176 > 0x4023a684 in __ssputs_r at /workdir/repo/newlib/newlib/libc/stdio/nano-vfprintf.c:232
22:47:14.176 > 0x401037c0 in wDev_ProcessFiq at ??:?
22:47:14.176 > 0x4023aad4 in _svfprintf_r at /workdir/repo/newlib/newlib/libc/stdio/nano-vfprintf.c:662
22:47:14.176 > 0x4022b276 in uart_do_write_char at /Users/matteocrippa/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/uart.cpp:500
22:47:14.176 >  (inlined by) uart_tx_fifo_full at /Users/matteocrippa/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/uart.cpp:506
22:47:14.176 >  (inlined by) uart_do_write_char at /Users/matteocrippa/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/uart.cpp:513
22:47:14.176 > 0x4022b85f in uart_write at /Users/matteocrippa/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/uart.cpp:547
22:47:14.176 > 0x4024516c in etharp_output_LWIP2 at /local/users/gauchard/arduino/arduino_esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/etharp.c:885
22:47:14.176 > 0x40246ad8 in ip4_output_if_opt_src at /local/users/gauchard/arduino/arduino_esp8266/origin/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/ip4.c:1765
22:47:14.176 > 0x40237bf9 in _vsnprintf_r at /workdir/repo/newlib/newlib/libc/stdio/vsnprintf.c:71 (discriminator 4)
22:47:14.176 > 0x4010047c in ets_post at /Users/matteocrippa/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/core_esp8266_main.cpp:238
22:47:14.176 > 0x40229e66 in yield at /Users/matteocrippa/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/core_esp8266_main.cpp:193
22:47:14.176 > 0x4022b865 in uart_write at /Users/matteocrippa/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/uart.cpp:545
22:47:14.176 > 0x4022b865 in uart_write at /Users/matteocrippa/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/uart.cpp:545
22:47:14.176 > 0x40225714 in HardwareSerial::write(unsigned char const*, unsigned int) at /Users/matteocrippa/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/HardwareSerial.h:191
22:47:14.176 > 0x40225720 in HardwareSerial::write(unsigned char const*, unsigned int) at /Users/matteocrippa/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/HardwareSerial.h:194
22:47:14.176 > 0x40100b3d in umm_free_core at /Users/matteocrippa/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/umm_malloc/umm_malloc.cpp:642
22:47:14.176 > 0x40100e9a in free at /Users/matteocrippa/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/umm_malloc/umm_malloc.cpp:688
22:47:14.176 > 0x402163fc in l_info(char const*, char const*, ...) at src/utils/log.cpp:30
22:47:14.176 > 0x40217ae0 in ClientContext::write(char const*, unsigned int) at /Users/matteocrippa/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266WiFi/src/include/ClientContext.h:378
22:47:14.176 >  (inlined by) WiFiClient::write(unsigned char const*, unsigned int) at /Users/matteocrippa/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266WiFi/src/WiFiClient.cpp:220
22:47:14.176 > 0x40217ac4 in WiFiClient::write(unsigned char const*, unsigned int) at /Users/matteocrippa/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266WiFi/src/WiFiClient.cpp:214
22:47:14.176 > 0x40214742 in request(char const*) at src/network/network.cpp:119
22:47:14.176 > 0x40215bc3 in network_send(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int const&) at src/network/network.cpp:404
22:47:14.176 > 0x40225700 in HardwareSerial::availableForWrite() at /Users/matteocrippa/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/HardwareSerial.h:182
22:47:14.176 > 0x40100b3d in umm_free_core at /Users/matteocrippa/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/umm_malloc/umm_malloc.cpp:642
22:47:14.176 > 0x40100e9a in free at /Users/matteocrippa/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/umm_malloc/umm_malloc.cpp:688
22:47:14.176 > 0x402163fc in l_info(char const*, char const*, ...) at src/utils/log.cpp:30
22:47:14.176 > 0x40207f5a in miner(unsigned int) at src/miner/miner.cpp:47
22:47:14.176 > 0x4022a690 in esp_delay<__delay(long unsigned int)::<lambda()> > at /Users/matteocrippa/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/coredecls.h:69
22:47:14.176 >  (inlined by) esp_delay<__delay(long unsigned int)::<lambda()> > at /Users/matteocrippa/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/coredecls.h:78
22:47:14.176 >  (inlined by) __delay at /Users/matteocrippa/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/core_esp8266_wiring.cpp:39
22:47:14.176 > 0x402075be in loop at src/main.cpp:107
22:47:14.176 > 0x40229f76 in loop_wrapper() at /Users/matteocrippa/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/core_esp8266_main.cpp:258
22:47:14.176 > 0x4010129d in cont_wrapper at /Users/matteocrippa/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/cont.S:81
22:47:14.176 > 
22:47:14.176 > 
22:47:14.176 > --------------- CUT HERE FOR EXCEPTION DECODER ---------------
22:47:14.176 > 
22:47:14.176 >  ets Jan  8 2013,rst cause:2, boot mode:(3,6)
22:47:14.176 > 
22:47:14.176 > load 0x4010f000, len 3424, room 16 
22:47:14.176 > tail 0
22:47:14.176 > chksum 0x2e
22:47:14.176 > load 0x3fff20b8, len 40, room 8 
22:47:14.178 > tail 0
22:47:14.178 > chksum 0x2b
22:47:14.178 > csum 0x2b
22:47:14.178 > v0009fcc0
22:47:14.178 > ~ld
ffrediani commented 4 months ago

Hi Matteo In fact 0.0.17 hasn't shown anyting much different. Actually it seems it lasts less time than 0.0.16. Whenever you push it we'll see again.

Regards the crash you shared yes I got similar ones, with the cut part for the decoder, for these ones it reboots and keeps going. The main problem seems to be when this doesn't happen and it simply stops with no errors or anything to give a clue about. Let's see if a watchdog may help then.