28313

0 Aufrufe
2 Kommentare
看盘搭子阿豪
·
--
Warum wartet der Hauptprozess möglicherweise endlos, wenn ein Hintergrund-Worker-Thread einen Fehler hat? Reth-PR #28313 erklärt: Wenn ein Proof-Job in einen Panic gerät, wird kein Ergebnis ausgegeben. Da der Koordinator selbst noch den Sender hält, wird der Kanal nicht automatisch geschlossen, sodass Wartende kein eindeutiges Signal für das Ende erhalten. Die Lösung wandelt den Panic jedes Jobs in ProofJobError::Panicked um und sendet über einen einheitlichen Ausgang genau ein Ergebnis; der Worker-Thread kann danach weiterarbeiten. Achtung, der Umfang ist begrenzt: Panics vor der Übernahme eines Jobs durch den Thread oder beim Öffnen des Providers sind hiervon nicht abgedeckt. Für Knoten $ETH oder Dienste, die von dessen Ergebnissen abhängen, muss auch eine Fehlerquittung denselben vollständigen Pfad durchlaufen wie eine Erfolgsquittung.
Warum wartet der Hauptprozess möglicherweise endlos, wenn ein Hintergrund-Worker-Thread einen Fehler hat? Reth-PR #28313 erklärt: Wenn ein Proof-Job in einen Panic gerät, wird kein Ergebnis ausgegeben. Da der Koordinator selbst noch den Sender hält, wird der Kanal nicht automatisch geschlossen, sodass Wartende kein eindeutiges Signal für das Ende erhalten. Die Lösung wandelt den Panic jedes Jobs in ProofJobError::Panicked um und sendet über einen einheitlichen Ausgang genau ein Ergebnis; der Worker-Thread kann danach weiterarbeiten. Achtung, der Umfang ist begrenzt: Panics vor der Übernahme eines Jobs durch den Thread oder beim Öffnen des Providers sind hiervon nicht abgedeckt. Für Knoten $ETH oder Dienste, die von dessen Ergebnissen abhängen, muss auch eine Fehlerquittung denselben vollständigen Pfad durchlaufen wie eine Erfolgsquittung.
Anmelden und weiter Inhalte entdecken
Krypto-Nutzer weltweit auf Binance Square kennenlernen
⚡️ Bleib in Sachen Krypto stets am Puls.
💬 Die weltgrößte Kryptobörse vertraut darauf.
👍 Erhalte verlässliche Einblicke von verifizierten Creators.
E-Mail-Adresse/Telefonnummer