metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2015-04-20 05:14 pm

bit rot

Только что обнаружил что-то, по симптомам очень похожее на bit rot.
Рабочий компьютер, тестовый CI сервис ругается, что не может собрать проект. Причем собирает он всегда из репозитория, на других CI серверах все ок. Заглядываю в исходники - а там в нескольких строках биты случайно покорежены:
буква 'e' (код 0x65) заменена на букву 'd' (код 0x64)
буква 'e' (код 0x65) заменена на букву 'u' (код 0x75)
буква 'a' (код 0x61) заменена на букву 'A' (код 0x41)
буква 'o' (код 0x6F) заменена на букву 'O' (код 0x4F)
и еще переносы в другие контрольные символы превращены.

И главное - меркуриал этого не видит. Вообще не видит - время и размер файла не изменились, ему пофиг, соответственно, он внутрь не заглядывает.

Надо на этом компе, что ли, память и диски проверять срочно.

[identity profile] zerthurd.livejournal.com 2015-04-20 02:34 pm (UTC)(link)
Попробовал такое с гитом повторить, не получается. А с меркуриалом получилось сразу. Уже только за такое им не следует пользоваться.

[identity profile] metaclass.livejournal.com 2015-04-20 04:29 pm (UTC)(link)
Пишут, что by design - первая проверка делается по времени файла всегда.

[identity profile] eternal-leave.livejournal.com 2015-04-20 06:58 pm (UTC)(link)
Дооо, гитовая проверка по содержимому особенно доставляет, когда у тебя 4к файлов в репе.

[identity profile] http://users.livejournal.com/_slw/ 2015-04-20 08:24 pm (UTC)(link)
а что репа такая маленькая?

[identity profile] eternal-leave.livejournal.com 2015-04-21 10:10 am (UTC)(link)
Жизнь несправедлива и жестока потому что.

[identity profile] zerthurd.livejournal.com 2015-04-20 09:07 pm (UTC)(link)
Далеко не у всех 4к файлов в репе, а у кого столько есть, тот может включить проверку только по mtime. Меркуриал же имеет плохое поведение по умолчанию, а это непростительно и является тяжким грехом.