Hermit, alat za kontrolirano testiranje i otkrivanje grešaka

pustinjak

Pustinjak, kao spremnik koji se može reproducirati, daje ideju o tome kako bi bilo kada bi sistemski stog pružao ponovljivost kao apstrakciju

Facebook predstavljen nedavno putem publikacije, lansiranje pustinjak, koji tvori a okruženje za determinističko izvođenje programa, što omogućuje postizanje istog rezultata i ponavljanje procesa izvršenja pri različitim pokretanjima koristeći iste ulazne podatke.

Tijekom normalnog izvođenja, različiti vanjski faktori utječu na izlaz, kao što su trenutno vrijeme, funkcije raspoređivanja niti, adrese virtualne memorije, podaci iz generatora pseudoslučajnih brojeva i razni jedinstveni identifikatori.

Hermit omogućuje pokretanje programa u spremniku gdje ti faktori ostaju konstantni u narednim izvođenjima. Ponovljiva izvedba, koja u potpunosti reproducira konfiguraciju nestabilnog okruženja, može se koristiti za dijagnozu grešaka, otklanjanje grešaka više koraka s iteracijama, stvaranjem fiksnog okruženja za regresijsko testiranje, testiranje otpornosti na stres, rješavanje problema u više niti i ponovljive sustave izrade.

Hermit forsira determinističko izvršavanje proizvoljnih programa i djeluje kao reproducibilni omotač. To jest, hermetički izolira program od izvora nedeterminizma kao što su vremenski raspored, ispreplitanje niti, generiranje slučajnih brojeva, itd. Zajamčeni determinizam moćan je alat i služi kao temelj za niz aplikacija, uključujući istovremeno testiranje stresa, snimanje/ponovno reproduciranje, ponovljive građevine i automatsku dijagnozu pogrešaka istovremenosti i više.

Hermit ne može izolirati gostujući program od izvora nedeterminizma, kao što su promjene datotečnog sustava ili odgovori vanjskih mreža. Umjesto toga, da bi se osigurao potpuni determinizam, korisnik mora osigurati fiksnu osnovnu sliku datotečnog sustava (na primjer, s Dockerom) i onemogućiti vanjske mreže.

O pustinjaku

pustinjak omogućuje snagu stvara ponovljivo okruženje presretanjem sistemskih poziva, od kojih se neki zamjenjuju vlastitim rukovateljima koji proizvode konstantan izlaz, a neki se preusmjeravaju na kernel, nakon čega se nepostojani podaci uklanjaju iz izlaza.

Za presretanje poziva Sustavu, koristi se okvir sanjarenje, čiji kod objavljuje i Facebook. Kako biste spriječili da promjene datotečnog sustava i mrežni zahtjevi utječu na napredak izvršenja, izvođenje se izvodi pomoću nepokretne slike datotečnog sustava i s onemogućenim pristupom vanjskim mrežama. Pristupom generatoru pseudoslučajnih brojeva, Hermit proizvodi unaprijed definirani niz koji se ponavlja svaki put kada se izvrši.

Najsloženiji izvor nedeterminizma je u raspoređivaču niti. Način na koji kernel raspoređuje niti ovisi o mnogim vanjskim čimbenicima, uključujući broj fizičkih CPU-a ili drugih niti koje se izvode na sustavu i zahtijevaju CPU vrijeme.

Od složenijih nepostojanih utjecaja na učinak, ističe planer niti, čije ponašanje ovisi o mnogim vanjskim čimbenicima, poput broja CPU jezgri i prisutnosti drugih pokrenutih niti.

Kako bi se osiguralo ponovljivo ponašanje planera, sve su niti serijalizirane, povezane s jednom jezgrom CPU-a i to redoslijedom kojim se kontrola prenosi na niti. Svakoj dretvi dopušteno je izvršiti fiksni broj instrukcija, nakon čega se izvođenje zaustavlja i prenosi na drugu drevu (za ograničenje se koristi CPU PMU (Performance Monitoring Unit) koji zaustavlja izvođenje nakon određenog broja uvjetnih grananja).

dijagnosticirati problemi s nitima zbog trkaćeg stanja, Hermit ima način rada za otkrivanje operacija koje nisu bile u redu i izazvao blokadu. Kako bi se identificirali takvi problemi, radi se usporedba između stanja u kojima je registriran ispravan rad i nenormalan prekid izvršenja.

Konačno, ako ste zainteresirani da možete saznati više o tome, trebali biste to znati kod projekta napisan je u Rustu i distribuira se pod BSD licencom.

Detalje možete provjeriti u sljedeći link.


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Odgovoran za podatke: AB Internet Networks 2008 SL
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.