Tänään tarkastelemme atomicity Violation Checkeriä:
Neljäs Rust-tarkistusohjelmamme meneillään olevassa Chain-Fox-ketjusarjassa, joka käsittelee samanaikaisuus- ja turvallisuuskysymyksiä Rust-projekteissa.
Hienovaraiset samanaikaisuusvirheet voivat hiljaa heikentää järjestelmiäsi. Seuraava työkalumme tuo ne päivänvaloon.
Tämä on jatkoa syväsukelluksellemme Chain-Fox -tammiin Rustille. 🧵

Mitä tämä tarkistus tekee?
Se havaitsee mahdolliset kilpailuolosuhteet, jotka johtuvat lomitettujen atomioperaatioiden monisäikeisissä Rust-ohjelmissa
Atomioperaatiot, jotka näyttävät turvallisilta erillään, voivat rikkoa logiikkaa, kun ne yhdistetään ilman asianmukaista synkronointia.
Ongelma
Kun useat atomioperaatiot käyttävät samaa muuttujaa ja nämä käyttökerrat lomitetaan toisen säikeen atomioperaatioihin, se voi rikkoa ohjelman invariantit.
Tämä johtaa logiikkavirheisiin, joita on vaikea toistaa ja vielä vaikeampi korjata.
Miksi sillä on merkitystä
Nämä virheet eivät kaada ohjelmaasi
Ne saavat sen käyttäytymään väärin
Lohkoketjujärjestelmissä tai samanaikaisissa sovelluksissa tämä voi johtaa viestien katoamiseen, konsensuksen rikkoutumiseen tai vanhentuneeseen tilaan.
Kuinka tarkistus toimii
Atomicity Violation Checker analysoi Rust-koodisi keskitason välitason esityksen MIR:n
Se tunnistaa malleja, joissa atomioperaatioista puuttuu asianmukainen synkronointi
Se raportoi seuraavaa:
• Atomioperaatioiden tyypit
• Koodien sijainnit, joissa ne esiintyvät
Todellinen vaikutus
Tämä ei ole vain teoriaa. Tässä on virhe, jonka löysimme parity-ethereumissa
Korjaa atomisuusrikkomus network-devp2p:ssä Chain-Fox · Vedä pyyntö #11277
openethereum/parity-ethereum
Miksi se on ratkaisevan tärkeää Rust-kehittäjille
• Ruoste antaa muistille turvaa, mutta samanaikaisuus on edelleen logiikan miinakenttä
• Atomioperaatiot voivat olla hiljaa vuorovaikutuksessa säikeiden välillä
• Tarkistusohjelmamme havaitsee sen, mitä kääntäjä ei pysty
Rakenna oikeaa samanaikaista koodia luottavaisin mielin
Tähän mennessä olemme selittäneet neljä Rust-tammia Chain-Fox-sarjassa
• Kaksoislukituksen tarkistus
• Ristiriitojen lukituksen tarkistus
• Condvarin väärinkäytön tarkistus
• Atomisuusrikkomusten tarkistus
Lisää on tulossa. Käsittelemme seuraavaa tulevassa ketjussamme.
87
4,81 t.
Tällä sivulla näytettävä sisältö on kolmansien osapuolten tarjoamaa. Ellei toisin mainita, OKX ei ole lainatun artikkelin / lainattujen artikkelien kirjoittaja, eikä OKX väitä olevansa materiaalin tekijänoikeuksien haltija. Sisältö on tarkoitettu vain tiedoksi, eikä se edusta OKX:n näkemyksiä. Sitä ei ole tarkoitettu minkäänlaiseksi suositukseksi, eikä sitä tule pitää sijoitusneuvontana tai kehotuksena ostaa tai myydä digitaalisia varoja. Siltä osin kuin yhteenvetojen tai muiden tietojen tuottamiseen käytetään generatiivista tekoälyä, tällainen tekoälyn tuottama sisältö voi olla epätarkkaa tai epäjohdonmukaista. Lue aiheesta lisätietoa linkitetystä artikkelista. OKX ei ole vastuussa kolmansien osapuolten sivustojen sisällöstä. Digitaalisten varojen, kuten vakaakolikoiden ja NFT:iden, omistukseen liittyy suuri riski, ja niiden arvo voi vaihdella merkittävästi. Sinun tulee huolellisesti harkita, sopiiko digitaalisten varojen treidaus tai omistus sinulle taloudellisessa tilanteessasi.