Ehitamise süsteemide tõrked GitHubi arhiivi kontrollsummade muudatuste tõttu

GitHub muutis viisi, kuidas ta genereerib väljalaskelehtedel automaatselt genereeritud .tar.gz- ja .tgz-arhiive, mis tõi kaasa muutused nende kontrollsummades ja suuri tõrkeid automatiseeritud ehitussüsteemides, mis kontrollivad GitHubist allalaaditud arhiive varasemate arhiividega, et kinnitada terviklikkust. salvestatud kontrollsummad, näiteks paigutatud paketi metaandmetesse või ehitusskriptidesse.

Alates versioonist 2.38 sisaldas Giti tööriistakomplekt vaikimisi sisseehitatud gzipi juurutust, mis võimaldas selle tihendusmeetodi toe ühtlustada kõigis operatsioonisüsteemides ja parandada arhiivi loomise jõudlust. GitHub võttis muudatuse vastu pärast giti versiooni värskendamist oma infrastruktuuris. Probleemi põhjustas asjaolu, et sisseehitatud zlib-põhise gzip-rakenduse poolt loodud tihendatud arhiivid erinevad binaarselt utiliidi gzip loodud arhiividest, mille tulemusel tekkisid giti erinevate versioonide poolt loodud arhiivide jaoks erinevad kontrollsummad. käsk "git arhiiv".

Sellest tulenevalt hakati pärast GitHubis Git-i värskendamist väljalaskelehtedel kuvama veidi teistsuguseid arhiive, mis ei läbinud vanade kontrollsummade abil kontrolli. Probleem avaldus erinevates komplekteerimissüsteemides, pidevas integreerimissüsteemides ja lähtekoodist pakettide koostamise tööriistades. Näiteks läks katki umbes 5800 FreeBSD pordi komplekt, mille lähtekoodid laaditi alla GitHubist.

Vastuseks esialgsetele kaebustele tõrgete kohta viitas GitHub esialgu tõsiasjale, et arhiivide püsivaid kontrollsummasid ei tagatud kunagi. Pärast seda, kui näidati, et metaandmete värskendamine erinevates ökosüsteemides nõuab palju tööd, et taastada mõjutatud ehitussüsteemide funktsionaalsus, muutsid GitHubi esindajad meelt, muutsid muudatuse tagasi ja tagastasid vana arhiivide loomise meetodi.

Giti arendajad pole veel otsusele jõudnud ja arutavad vaid võimalikke tegevusi. Arvestatud suvandite hulka kuulusid naasmine vaikeutiliidi gzip kasutamiseks; lipu "--stable" lisamine, et säilitada ühilduvus vanade arhiividega; sisseehitatud teostuse sidumine eraldi arhiivivorminguga; gzip utiliidi kasutamine vanade sissekannete jaoks ja sisemise juurutamise kasutamine teatud kuupäevast algavate sissekannete jaoks; vormingu stabiilsuse tagamine ainult tihendamata arhiivide puhul.

Otsuse tegemise keerukus on seletatav asjaoluga, et välise utiliidi kõne juurde tagasipööramine ei lahenda täielikult kontrollsumma muutumatuse probleemi, kuna välise gzip-programmi muudatus võib kaasa tuua ka arhiivivormingu muutumise. Praegu on ülevaatamiseks pakutud paikade komplekt, mis tagastab vaikimisi vana käitumise (kutsub välja välise gzip-utiliidi) ja kasutab sisseehitatud rakendust, kui süsteemis puudub gzip-utiliit. Plaastrid lisavad dokumentatsiooni ka mainimise, et "git arhiivi" väljundi stabiilsus ei ole garanteeritud ja vorming võib tulevikus muutuda.

Allikas: opennet.ru

Lisa kommentaar