Node Crash
The new version doesn't seem to crash as often, but someone reported to me that it recently crashed for them. Here is part of their debug.log when it crashed:
Shutting down threads. Please be patient.
Thread 780 killed on uncaught exception Sys_error("Bad file descriptor")
Thread 784 killed on uncaught exception Sys_error("Bad file descriptor")
Thread 785 killed on uncaught exception Sys_error("Bad file descriptor")
Thread 786 killed on uncaught exception Sys_error("Bad file descriptor")
Thread 787 killed on uncaught exception Sys_error("Bad file descriptor")
Thread 2 killed on uncaught exception Sys_error("Bad file descriptor")
...
2:calling compute_staking_chances nextstakechances
...
It's clear that Thread 2 is the staking thread. The other ones are probably threads corresponding to network connections. The uncaught Sys_error exceptions are probably showing up now because sigpipe is being ignored. Taking a quick look at the code, I do think there are many output_byte and flush commands that are not handling Sys_error. In particular the "seoc" serialization related code can often lead to this.
Another point someone (else) brought up to me recently as it that using the Unix.write command (instead of output_byte) would give better control over recognizing when sending bytes to a socket fails:
Complete thread:
- Node Crash -
Brown,
2021-11-25, 09:54
- Node Crash - BlakeKeiller, 2021-11-26, 13:16