Приложение Яндекс.Диск пыталось удалить системные файлы из-за ошибки разработчиков

Яндекс убивает системные папки

Ну чтож, друзья, каюсь, не обратил внимание на эту интересную новость, пока не…пострадал сам. Сперва я не сопоставил несколько фактов, но после детального изучения некоторых материалов я пришёл к выводу, что меня коснулась неприятная история.

Симптоматика проблемы:

  1. Слетела система О_О. Пришлось восстанавливаться из точки бэкапа.
  2. Слетела активация Windows 7. Вот такое окно стало появляться после запуска любой из стандартных программ (notepad, calc, mspaint).

    Слетела активация
    Слетела активация
  3. Убились видео-драйверы, перестали работать несколько программ. (Outpost Firewall Pro). Я всё никак не мог понять, почему он сбойнул. Всё время им пользовался, никаких проблем не было. Перестала работать Anno 1404 (стратегия), может что-то ещё, пока не заметил.

Что произошло

Просто напросто очередная версия Yandex.Disk во время своего обновления решила удалить старую версию. Но не только её одну. По нарастающей, полетели и каталог пользователя и системный каталог. Вот фрагмент лога, который можно найти в каталоге: C:\Users\Username\AppData\Local\Yandex\Yandex.Disk\YandexDiskInstaller.log

Яндекс убивает системные папки
Яндекс убивает системные папки

Как видите, запланировано удаление весьма…широкого списка каталогов. Представляете, что будет после перезагрузки? Кстати, каталоги планировщика можно найти тут (скрин снят на другом компьютере):

В редакторе реестра запланировано удаление каталогов
В редакторе реестра запланировано удаление каталогов

Я так понимаю, чтобы избежать проблемы после этой бажной версии 1.1.5, нужно не перезагружаться и очистить список этих каталогов. Раздел: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager

Как эту ситуацию комментируют в Yandex

В одном из последних обновлений Яндекс.Диска для Windows мы допустили ошибку в модуле деинсталляции приложения. Проблема могла проявляться у тех пользователей, которые установили приложение для всех пользователей системы или с правами «Администратора», при ручном удалении или автоапдейте с версии 1.1.5. на 1.1.6 или 1.1.7. Иногда ошибка приводила к удалению системных файлов, в крайних случаях – к неработоспособности операционной системы. Каждый новый релиз Яндекс.Диска проверяется ручными и автоматическими тестами, но в этот раз мы не смогли обнаружить неисправность из-за цепочки несчастливых совпадений. По нашим данным, нестабильную версию установили менее 1% пользователей приложения для Windows. Как только проблема была локализована, мы оперативно выпустили новый релиз, который не содержит подобных ошибок и блокирует неисправный модуль предыдущей версии. Обновление программы до стабильной версии в подавляющем большинстве случаев происходит сейчас автоматически и не несет никаких рисков. Тем не менее, мы рекомендуем всем пользователям Windows-приложения проверить, установлена ли у вас стабильная версия 1.1.8 и выше. Для этого необходимо выбрать следующие пункты меню Диска: “Справка” – “О программе” – “Проверить обновления”. Ни в коем случае не удаляйте приложение, не убедившись, что у вас уже установлена версия 1.1.8.

Блог Yandex

В качестве компенсации за причинённый ущерб Yandex дарит дисковое пространство:

Также мы решили сделать подарок всем пользователям, у которых была установлена некорректная версия программы — независимо от того, нарушила она работу компьютера или нет. До конца дня они получат по 200 ГБ дополнительного места на Яндекс.Диске на неограниченный срок.

Блог Yandex

Дополнение к общей картине. Вот как, оказывается, происходит внедрение новой версии Yandex.Disk:

Процесс разработки и тестирования десктопных приложений Диска устроен достаточно классическим образом. Еще на этапе разработки каждый день запускаются автотесты. После сборки релиз уходит на двухнедельное тестирование, которое проходит в несколько итераций, по циклу, пока не будут исправлены все критические ошибки. После функционального тестирования проводится окончательное регрессионное тестирование, которое занимает еще несколько дней. И ручное, и автоматическое тестирование проводится на множестве устройств и на всех версиях операционной системы. Затем новый релиз раскатывается внутри компании. Если и на этом этапе не выявилось критических проблем, сборка раскатывается. В процессе раскатывания системные администраторы наблюдают за датчиками мониторингов и отслеживают любые изменения в нагрузке на сервис и отклонения от статистики. Служба поддержки в период после выкладки релиза внимательно отслеживает проблемы, о которых сообщают пользователи, и передает их разработчикам и менеджерам. Проблема, которая случилась в этот раз, является цепочкой несчастливых совпадений. В команде сменился основной разработчик версии под Windows и он вне плана внес изменения в инсталлер/деинсталлер приложения, допустив ошибку, которая проявляется не всегда и только под админской учеткой в Windows. Постоянный тестировщик приложения прямо перед началом тестирования был госпитализирован (такой вот реальный форс-мажор), поэтому тестированием занимался другой сотрудник, менее знакомый с продуктом. В списке изменений исправлений в инсталлере не было, и акцент в тестировании был сделан на другие компоненты. Регрессионным тестированием и автотестами ошибка не выявилась. Приложением целую неделю пользовались все сотрудники Яндекса. Обычно этого времени хватает, чтобы обнаружить существенные баги. Однако на этот раз никто на проблему не наткнулся. Как только пришли первые отзывы в саппорт, мы начали искать проблему, после чего оперативно выпустили версию приложения, исправляющую проблемы с инсталлером.

Хабр

Как вы думаете, что теперь ждёт ведущего разработчика?

Теперь я вот и думаю, как поступить? Мой бук точно теперь требует переустановки. Запускал с правами админа. Без файрволла работать не вариант сейчас. Все-таки нужно придумывать какую-то систему хранения критически важной информации.

А так же иметь “чистую среду”, например в виде виртуальной машины, для разных ответственных вещей.

Как вы относитесь к этой ситуации с Яндекс.диском?

View Results

Loading ... Loading ...

P.P.S. Народ! Не забываем, что у нас есть рубрика “Интервью с сисадмином”, приглашаются абсолютно все желающие поделиться с коллегами своим опытом! Пишите! Особенно здорово, если есть кто-то, кто занимается в сфере профессиональной аутсорсинг разработки 1С, программированием, администрированием сетей! Ну и всем остальным тоже добро пожаловать! Пишите!

Интересно? Поделись с другом
Litl-Admin.ru

Comments:

Comments: 4
  1. menpavel

    Яндекс обосрался. Бывает. Сайт пхп неизвестное количество времени распространял троянца. Яблофон “случайно” сохранял координаты перемещений пользователей. В общем, все нормально. Случилось не самое страшное.

    Процитирую на память цитату с БАШа: “первым делом, первым делом бэкапы, ну а девушки потом”.

    1. litladmin (author)

      Координаты вообще-то сохраняют все смартфоны. И отсылают их под видом обновлений.

      Был кстати ещё один баг, не помню в каком продукте. Там из-за опечатки было

      rm -rf /usr /foo/bar

      Понимаешь да? Пробел лишний! Что произойдёт? ;)

  2. Толстопард

    Это был bumblebee :)
    Shit happens, что ж поделать. В таких случаях виноваты не программисты, а QA.

    1. litladmin (author)

      Уважаемый, поясните, что значит QA?
      P.S. Да, это был бамблби!

Leave a Reply