Sukūrimo sistemų gedimai dėl archyvo kontrolinių sumų pakeitimų „GitHub“.

„GitHub“ pakeitė būdą, kuriuo leidimo puslapiuose generuojami automatiškai generuojami „.tar.gz“ ir „.tgz“ archyvai, todėl pasikeitė jų kontrolinės sumos ir įvyko didžiulių gedimų automatizuotose kūrimo sistemose, kurios tikrina iš „GitHub“ atsisiųstus archyvus, palyginti su ankstesniais, kad patvirtintų vientisumą. saugomos kontrolinės sumos, pavyzdžiui, įdėtos į paketo metaduomenis arba kūrimo scenarijus.

Pradedant nuo 2.38 leidimo, „Git“ įrankių rinkinyje pagal numatytuosius nustatymus buvo integruotas gzip diegimas, kuris leido suvienodinti šio glaudinimo metodo palaikymą visose operacinėse sistemose ir pagerinti archyvo kūrimo našumą. „GitHub“ pakeitimą priėmė po to, kai atnaujino „git“ versiją savo infrastruktūroje. Problemą sukėlė tai, kad suspausti archyvai, sukurti naudojant įtaisytąjį zlib pagrįstą gzip diegimą, dvejetainiai skiriasi nuo archyvų, sukurtų naudojant gzip programą, todėl vykdant failą skirtingų git versijų sukurtų archyvų kontrolinės sumos skiriasi. komanda „git archive“.

Atitinkamai, atnaujinus git „GitHub“, leidimo puslapiuose buvo rodomi šiek tiek kitokie archyvai, kurie nebuvo patvirtinti naudojant senas kontrolines sumas. Problema pasireiškė įvairiose kūrimo sistemose, nuolatinio integravimo sistemose ir paketų kūrimo iš šaltinio kodo įrankiais. Pavyzdžiui, buvo sugadintas maždaug 5800 FreeBSD prievadų, kurių šaltinio kodai buvo atsisiųsti iš GitHub, surinkimas.

Atsakydamas į pradinius skundus dėl gedimų, „GitHub“ iš pradžių nurodė faktą, kad nuolatinės archyvų kontrolinės sumos niekada nebuvo garantuotos. Po to, kai buvo įrodyta, kad norint atnaujinti metaduomenis įvairiose ekosistemose, norint atkurti paveiktų kūrimo sistemų funkcionalumą, prireiks didžiulio darbo, „GitHub“ atstovai persigalvojo, atšaukė pakeitimą ir grąžino senąjį archyvų generavimo metodą.

„Git“ kūrėjai dar nepriėmė sprendimo ir tik aptaria galimus veiksmus. Svarstytos parinktys apėmė grįžimą prie numatytosios gzip priemonės naudojimo; pridedant vėliavėlę „--stable“, kad būtų išlaikytas suderinamumas su senais archyvais; integruoto diegimo susiejimas su atskiru archyvo formatu; naudojant gzip įrankį seniems įsipareigojimams ir tiesioginį įgyvendinimą įsipareigojimams, prasidedantiems nuo tam tikros datos; garantuojant formato stabilumą tik nesuspaustiems archyvams.

Sprendimo priėmimo sudėtingumas paaiškinamas tuo, kad grįžimas į išorinės programos iškvietimą visiškai neišsprendžia kontrolinės sumos nekintamumo problemos, nes pakeitus išorinę gzip programą, gali pasikeisti ir archyvo formatas. Šiuo metu buvo pasiūlytas peržiūrėti pataisų rinkinys, kuris grąžina seną veikimą pagal numatytuosius nustatymus (iškviečia išorinę gzip programą) ir naudoja integruotą diegimą, jei sistemoje nėra gzip programos. Pataisymai taip pat prideda prie dokumentacijos paminėjimo, kad „git archyvo“ išvesties stabilumas nėra garantuotas ir formatas gali keistis ateityje.

Šaltinis: opennet.ru

Добавить комментарий