Хермит, алат за контролисано тестирање и откривање грешака

Пустиња

Хермит, као репродуцибилни контејнер, даје идеју о томе како би било када би системски стек обезбедио поновљивост као апстракцију

Фацебоок представљен недавно кроз публикацију, лансирање Пустиња, који формира а окружење за детерминистичко извршавање програма, што омогућава постизање истог резултата и понављање процеса извршења на различитим лансирањима користећи исте улазне податке.

Током нормалног извршавања, различити спољни фактори утичу на излаз, као што су тренутно време, функције распоређивања нити, адресе виртуелне меморије, подаци из генератора псеудослучајних бројева и различити јединствени идентификатори.

Пустињак омогућава покретање програма у контејнеру где ови фактори остају константни у наредним серијама. Поновљиво извршење, које у потпуности репродукује конфигурацију променљивог окружења, може се користити за дијагнозу грешака, отклањање грешака више корака са итерацијама, креирањем фиксног окружења за регресионо тестирање, тестирање стреса, решавање проблема са више нити и поновљиве системе изградње.

Пустињак форсира детерминистичко извршавање произвољних програма и делује као омотач који се може репродуковати. Односно, он херметички изолује програм од извора недетерминизма као што су тајминг, преплитање нити, генерисање случајних бројева итд. Гарантовани детерминизам је моћан алат и служи као основа за бројне апликације, укључујући тестирање на стрес истовремености, снимање/поновну репродукцију, репродуцибилне градње и аутоматску дијагнозу грешака истовремености и још много тога.

Хермит не може да изолује гостујући програм од извора недетерминизма, као што су промене система датотека или одговори са спољних мрежа. Уместо тога, да би обезбедио потпуни детерминизам, корисник мора да обезбеди фиксну основну слику система датотека (на пример, са Доцкер-ом) и онемогући спољне мреже.

О пустињаку

Пустиња омогућава моћ ствара поновљиво окружење пресретања системских позива, од којих се неки замењују сопственим руковаоцима који производе константан излаз, а неки се преусмеравају на језгро, након чега се нетрајни подаци уклањају из излаза.

За пресретање позива систему, користи се оквир сањарење, чији код објављује и Фејсбук. Да бисте спречили да промене система датотека и мрежни захтеви утичу на напредак извршавања, извршење се врши помоћу непокретне слике система датотека и са онемогућеним приступом спољним мрежама. Приступањем генератору псеудослучајних бројева, Хермит производи унапред дефинисану секвенцу која се понавља сваки пут када се изврши.

Најсложенији извор недетерминизма је у планеру нити. Начин на који језгро распоређује нити зависи од многих спољних фактора, укључујући број физичких ЦПУ-а или других нити које се покрећу на систему које захтевају ЦПУ време.

Од сложенијих нетрајних утицаја на перформансе, хигхлигхтс планер нити, чије понашање зависи од многих спољних фактора, као што су број језгара ЦПУ-а и присуство других покренутих нити.

Да би се обезбедило поновљиво понашање планера, све нити су серијализоване, везане за једно ЦПУ језгро и то редоследом којим се контрола преноси на нити. Свакој нити је дозвољено да изврши фиксни број инструкција, након чега се извршење зауставља и преноси на другу нит (за ограничење се користи ЦПУ ПМУ (Перформанце Мониторинг Унит) који зауставља извршење након одређеног броја условних гранања).

За дијагнозу проблеми са нитима због стања трке, пустињак има режим за откривање операција које нису биле у реду и изазвао блокаду. Да би се идентификовали такви проблеми, врши се поређење стања у којима је регистрован исправан рад и ненормалан прекид извршења.

Коначно, ако сте заинтересовани да сазнате више о томе, требало би да то знате код пројекта написан је на Русту и дистрибуира се под БСД лиценцом.

Можете проверити детаље у следећи линк.


Оставите свој коментар

Ваша емаил адреса неће бити објављена. Обавезна поља су означена са *

*

*

  1. Odgovorni za podatke: AB Internet Networks 2008 SL
  2. Сврха података: Контрола нежељене поште, управљање коментарима.
  3. Легитимација: Ваш пристанак
  4. Комуникација података: Подаци се неће преносити трећим лицима, осим по законској обавези.
  5. Похрана података: База података коју хостује Оццентус Нетворкс (ЕУ)
  6. Права: У било ком тренутку можете ограничити, опоравити и избрисати своје податке.