𝗛𝗲𝘁𝘇𝗲 𝗯𝗹𝗶𝗰𝗸𝗲𝗻 𝘁𝘂𝗿 𝘁𝗵𝗲 𝗔𝘁𝗼𝗺𝗶𝗰𝗶𝘁𝘆 𝗩𝗶𝗼𝗹𝗮𝘁𝗶𝗼𝗻 𝗖𝗵𝗲𝗰𝗸𝗲𝗿:
Unser vierter Rust-Checker in der laufenden Chain-Fox-Thread-Serie zu Nebenläufigkeits- und Sicherheitsproblemen in Rust-Projekten.
Subtile Nebenläufigkeitsfehler können Ihre Systeme heimlich untergraben. Unser nächstes Tool bringt sie ans Licht.
Dies markiert die Fortsetzung unseres tiefen Einblicks in die Chain-Fox-Checker für Rust.🧵

𝗪𝗵𝗮𝘁 𝗱𝗼𝗲𝘀 𝘁𝗵𝗶𝘀 𝗰𝗵𝗲𝗰𝗸𝗲𝗿 𝗱𝗼
Es erkennt potenzielle Wettlaufbedingungen, die durch überlappende atomare Operationen in mehrthreadigen Rust-Programmen verursacht werden.
Atomare Operationen, die isoliert sicher erscheinen, können die Logik verletzen, wenn sie ohne ordnungsgemäße Synchronisation kombiniert werden.
Das Problem
Wenn mehrere atomare Operationen auf dieselbe Variable zugreifen und diese Zugriffe von atomaren Operationen eines anderen Threads unterbrochen werden, kann dies die Programm-Invarianten brechen.
Dies führt zu Logikfehlern, die schwer zu reproduzieren und noch schwieriger zu debuggen sind.
𝗪𝗵𝘆 𝗶𝘁 𝗺𝗮𝘁𝘁𝗲𝗿𝘀
Diese Fehler führen nicht zum Absturz Ihres Programms.
Sie verursachen, dass es sich falsch verhält.
In Blockchain-Systemen oder nebenläufigen Anwendungen kann das zu verlorenen Nachrichten, gebrochenem Konsens oder veralteten Zuständen führen.
𝗛𝗼𝘄 𝘁𝗵𝗲 𝗰𝗵𝗲𝗰𝗸𝗲𝗿 𝘄𝗼𝗿𝗸𝘀
Der Atomicity Violation Checker analysiert die Mid-level Intermediate Representation (MIR) Ihres Rust-Codes.
Er identifiziert Muster, bei denen atomare Operationen keine ordnungsgemäße Synchronisation aufweisen.
Er berichtet:
• Die Arten der atomaren Operationen
• Die Code-Standorte, an denen sie auftreten.
𝗥𝗲𝗮𝗹-𝘄𝗼𝗿𝗹𝗱 𝗶𝗺𝗽𝗮𝗰𝘁
Das ist nicht nur Theorie. Hier ist ein Fehler, den wir in parity-ethereum entdeckt haben.
𝗙𝗶𝘅 𝗮𝘁𝗼𝗺𝗶𝗰𝗶𝘁𝘆 𝘃𝗶𝗼𝗹𝗮𝘁𝗶𝗼𝗻 𝗶𝗻 𝗻𝗲𝘁𝘄𝗼𝗿𝗸-𝗱𝗲𝘃𝗽𝟮𝗽 von Chain-Fox · Pull Request #11277
openethereum/parity-ethereum
𝗪𝗵𝘆 𝗶𝘁 𝗶𝘀 𝗰𝗿𝘂𝗰𝗶𝗮𝗹 𝗳𝗼𝗿 𝗥𝘂𝘀𝘁 𝗱𝗲𝘃𝗲𝗹𝗼𝗽𝗲𝗿𝘀
• Rust bietet Speichersicherheit, aber die Nebenläufigkeit bleibt ein logisches Minenfeld
• Atomare Operationen können stillschweigend über Threads interagieren
• Unser Checker erkennt, was der Compiler nicht kann
Erstellen Sie mit Vertrauen korrekten nebenläufigen Code
𝗕𝗶𝘀 𝗵𝗲𝗿 𝗵𝗮𝗯𝗲𝗻 𝘄𝗶𝗿 𝗳𝗼𝗿 𝗥𝘂𝘀𝘁-𝗖𝗵𝗲𝗰𝗸𝗲𝗿 𝗲𝗶𝗻𝗲 𝗦𝗲𝗿𝗶𝗲 𝗳𝗼𝗿𝗺𝗮𝗹𝗶𝘀𝗶𝗲𝗿𝘁:
• Double-Lock Checker
• Conflict-Lock Checker
• Condvar Misuse Checker
• Atomicity Violation Checker
Weitere werden folgen. Den nächsten werden wir in unserem kommenden Thread behandeln.
87
4.791
Der Inhalt dieser Seite wird von Dritten bereitgestellt. Sofern nicht anders angegeben, ist OKX nicht der Autor der zitierten Artikel und erhebt keinen Anspruch auf das Urheberrecht an den Materialien. Der Inhalt wird ausschließlich zu Informationszwecken bereitgestellt und gibt nicht die Ansichten von OKX wieder. Er stellt keine wie auch immer geartete Befürwortung dar und sollte nicht als Anlageberatung oder Aufforderung zum Kauf oder Verkauf digitaler Vermögenswerte betrachtet werden. Soweit generative KI zur Bereitstellung von Zusammenfassungen oder anderen Informationen verwendet wird, können solche KI-generierten Inhalte ungenau oder inkonsistent sein. Bitte lesen Sie den verlinkten Artikel für weitere Details und Informationen. OKX ist nicht verantwortlich für Inhalte, die auf Websites Dritter gehostet werden. Der Besitz digitaler Vermögenswerte, einschließlich Stablecoins und NFTs, ist mit einem hohen Risiko verbunden und kann starken Schwankungen unterliegen. Sie sollten sorgfältig abwägen, ob der Handel mit oder der Besitz von digitalen Vermögenswerten angesichts Ihrer finanziellen Situation für Sie geeignet ist.