Грешке у системима изградње због промена у контролним сумама архиве на ГитХуб-у

ГитХуб је променио начин на који генерише аутоматски генерисане „.тар.гз“ и „.тгз“ архиве на страницама издања, што је довело до промена у њиховим контролним сумама и масовних грешака у аутоматизованим системима изградње који проверавају архиве преузете са ГитХуб-а у односу на претходне како би потврдили интегритет .сачуване контролне суме, на пример, смештене у метаподатке пакета или у скрипте за прављење.

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

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

Као одговор на почетне жалбе на грешке, ГитХуб је првобитно навео чињеницу да трајни контролни суми за архиве никада нису били загарантовани. Након што се показало да ће бити потребна огромна количина посла да се ажурирају метаподаци у различитим екосистемима како би се обновила функционалност погођених система изградње, представници ГитХуб-а су се предомислили, вратили промену и вратили стари метод генерисања архива.

Гит програмери још нису донели одлуку и само разговарају о могућим акцијама. Размотрене опције су укључивале враћање на коришћење подразумеваног гзип услужног програма; додавање ознаке „--стабле“ да би се одржала компатибилност са старим архивама; повезивање уграђене имплементације са посебним архивским форматом; коришћење гзип услужног програма за старе урезивања и инлине имплементацију за урезивање почевши од одређеног датума; гарантујући стабилност формата само за некомпримоване архиве.

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

Извор: опеннет.ру

Додај коментар