Перейти к содержимому

Донат
На хостинг
ISK за переводы
до 75kk за 1000зн.
Хроники EVE
Сборник
Новичкам
Полезная информация
Фотография

О проблеме с boot.ini


  • Закрытая тема Тема закрыта
17 ответов в теме

#1
AllSeeingI

AllSeeingI

    Clone Grade Lambda

  • Tech III Pilots
  • PipPipPipPipPipPip
  • 5107 сообщений
325
  • EVE Ingame:IlluminatedOne
  • Client:Eng
"Меня зовут Dr. Erlendur S. Thorsteinsson, и я уже почти год руковожу отделом разработок EVE Online (EVE Online Software Group). Из моей предыдущей работы в антивирусной индустрии (да и из относительно недолгой работы в CCP) я вынес необходимость объяснять пользователям суть происходящего, в случае если что-то идёт не по плану.

Вскоре после запуска EVE Online: Trinity в 22:04 GMT в среду 5 декабря, мы начали получать сообщения о том, что переходный пакет Classic -> Premium (с новой графикой) удалял файл C:\boot.ini, который является загрузочным файлом Windows. В некоторых случаях Windows не могла восстановить резервную копию этого файла, и отказывалась загружаться. В этом девблоге я расскажу вам, в чём была проблема.

В последние недели подготовки обновления Trinity одной из наших основных задач было создание обновления, которое могли бы быстро скачать все игроки, даже те, у которых не очень широкий интернет-канал. Посему мы прилагали существенные усилия к подкотовке переходного патча от Classic-клиента к Premium-клиенту (Classic to Premium graphics content upgrade), и старались сделать этот переходных пакет настолько компактным, насколько это возможно.

Сначала мы собирались использовать наш обычный установщик патчей для создания пакета; но, как выяснилось, он (установщик) хорошо подходит для создания "обычных" патчей, т.е. для правки существующих файлов, но совершенно не годится для упаковки новых файлов. Так как переходных пакет обновлял только 2 файла - boot.ini и manifest.dat - а затем копировал аж 1.43 гигабайт новых файлов (resDX9*.stuff), мы использовали другую программу для создания пакетов обновлений, которая позволила нам ужать все файлы в 584 мегабайта. Установочный скрипт для развёртывания переходного пакета был написан 30 ноября в 14:59 GMT. Первый бета-релиз пакета увидел свет на сервере Singularity в воскресение 2 декабря, а финальный релиз - 45017 - был выложен вместе с открытием сервера Tranquility в 22:04 GMT 5 декабря.

Из сообщений во время установки вам могло показаться, что наша ошибка была в указании удаляемого файла как "\boot.ini" вместо простого "boot.ini" (первый вариант удалит файл из корня текущего диска, второй - только из рабочей директории). Так вот - это не совсем верное заключение; нашей ошибкой было то, что мы подразумевали, что файл будет удалён из текущей директории, и посему не указали полный путь к файлу. Вот полный код установочного скрипта, вызвавший проблему:

Section "EVE-ONLINE"

SetOutPath "$INSTDIR"

Delete "boot.ini"
Delete "manifest.dat"

File "boot.ini"
File "manifest.dat"
File "resDX9*.stuff"

SectionEnd


Мы думали, что после строки SetOutPath "$INSTDIR" все последующие комманды будут автоматически выполняться в папке с установленной игрой.

Комманда File действительно подхватывала нужную директорию; а вот комманда Delete - нет. В документации к системе создания установщика было сказано, что Delete может использовать полный путь к файлу; как выяснилось, Delete должна использовать полный путь (иначе файл удаляется из корны диска), и корректный код для Delete-секции должен быть таким:

Delete "$INSTDIR\boot.ini"
Delete "$INSTDIR\manifest.dat"


Мы исправлили процедуру установки таким образом, что файлы boot.ini и manifest.dat не удаляются, а перезаписываются. Пакет с ошибочной процедурой установки был удалён через несколько часов после релиза, около 03:40 GMT. Правки в скрипт были внесены утром 6 декабря, в 06:08 GMT, и, после тестирования, переходный пакет снова был выложен.

Вы можете задаться вопросами:

Почему файл boot.ini называется также, как и системный файл Windows?

Ответ - в унаследованном коде. Файл впервые появился в серверном коде игры в 2001 году, а в 2002 перекочевал на клиент - 6 лет прошло. Сейчас мы пересматриваем имена всех файлов, и изменяем те из них, которые названы также, как и системные файлы Windows.

Почему Windows не защищает свои системные файлы?

Хороший вопрос, который я задавал себе уже несколько раз в течение последних пары дней - хотел бы я знать ответ. Мы не станем винить Microsoft - это была наша ошибка. Впредь будем аккуратнее.

Почему (потенциальную) ошибку не увидели раньше?

Скриптовый язык установщика сложен. К тому же, последние несколько недель перед релизом Trinity мы работали днями и ночами, и ошибка просто ускользнула от нас.

Почему ошибка не проявилась во время тестирования?

Отчасти по той же причине - были так заняты проверкой графического движка, что не заметили что файл удаляется. К тому же, мы увидели, что на наших тестовых машинах мы не могли увидеть эту ошибку - на всех Windows установлена на 1м разделе (а Windows восстанавливает boot.ini если она установлена на 1м разделе диска). Мы, естественно, уже пересмотрели наши процедуры тестирования таким образом, чтобы ловить подобные промахи в будущем.

Когда проблема была обнаружена, многие программисты были вызваны на работу посреди ночи, и работали до тех пор, пока ошибка не была выявлена и исправлена. Затем мы сделали всё, чтобы помочь пользователям справится с проблемой (через петиции и по телефону). К нам обратилось 215 человек (170 по петициям, 45 по телефону).

Мы искренне сожалеем о возникновении этой проблемы, и благодарим вас за терпение и поддержку."

Оригинал девблога.

Сообщение отредактировал AllSeeingI: 12 December 2007 - 12:28

  • 0
Listen up! "Teamwork" means staying out of my way! - Seifer, Final Fantasy VIII.

#2
markel

markel

    Clone Grade Nu

  • Tech III Pilots
  • PipPipPipPipPipPipPipPip
  • 7980 сообщений
997
  • Client:Eng
Откорректируй пожалуйста: Затем мы сделали всё, чтобы помоЧ ь пользователям справится с проблемой (через петиции и по телефону). К нам обратилось 215 человек (170 по петициям, 45 по телефону).
  • 0

"Слышь ты - ноулайфер! Я в валенках, фуфайке и шапке-ушанке лежу в болоте с лягушками и пью самогон!"

 


#3
AllSeeingI

AllSeeingI

    Clone Grade Lambda

  • Tech III Pilots
  • PipPipPipPipPipPip
  • 5107 сообщений
325
  • EVE Ingame:IlluminatedOne
  • Client:Eng
2markel: поправил, спасибо.
  • 0
Listen up! "Teamwork" means staying out of my way! - Seifer, Final Fantasy VIII.

#4
-ZED-

-ZED-

    Кудесник меча и орала

  • Tech II Pilots
  • PipPipPipPip
  • 973 сообщений
44
  • EVE Ingame:Alexandr Great
  • Corp:PRF
  • Ally:X.W.X
Опять ССР честно раскаялись в своих косяках, прямо так хочется их любить и уважать... но чо то не получается, как ни стараюсь :blink:
  • 0
War never changes

#5
Mbvanu

Mbvanu

    Мбвануп

  • Tech II Pilots
  • PipPipPipPipPip
  • 2217 сообщений
36
  • EVE Ingame:Mbvanu
  • Corp:SPPL
  • Ally:SOLAR WING
интересно, как ССР будет оправдываться, когда их новый клиент будет сжигать видяху на корню....поживем увидим....

а пока единственный рецепт, устанавливать патчи через день-два после их выхода....
  • 0

К слову сказать, "здравый смысл" для экономистов -- слово ругательное.
Вот поэтому-то я так и не защитил кандидатскую... не хочется быть в одном ряду с такими "учёными", знаете ли.
Приятно, когда твои оппоненты пропагандируют твои взгляды... даже если они сами этого не понимают".

Вот и складывается отношение, что экономика не наука, а экономисты - жулики и бездари.

Реальная экономика (теория)
Реальная экономика и прогнозы
Третья мировая война

#6
Элендан

Элендан

    Clone Grade Iota

  • Tech II Pilots
  • PipPipPipPipPip
  • 1768 сообщений
47
  • EVE Ingame:Elendan
  • Client:Eng

интересно, как ССР будет оправдываться, когда их новый клиент будет сжигать видяху на корню....поживем увидим....

Тут уж по-любому компенсация за порчу материальных ценностей не доведенным до ума ПО будет. Но будем надеяться, что такого не произойдет.
  • 0

#7
BoosterRooster

BoosterRooster

    Clone Grade Alpha

  • Tech II Pilots
  • Pip
  • 31 сообщений
0
  • EVE Ingame:-
  • Corp:-
  • Ally:-
так и хочется сказать : многа букафф не асислил.
но не переводчику а ССП с ихними проблемами.
они что расказывая про какието бут ини реальн осчитают что тут все програмисты играют
вот я например до того как прочитал эту стать,а точнее попытался вникнуть и забил после второго абзатца,НЕ ЗНАЛ ДАЖЕ ЧТО ЕСТЬ ТАКИЕ ФАЙЛЫ И ЗНАТЬ НЕ ХОЧУ что есть такое : boot.ini
народ это же вообще убивает,пытаешся играть в космосим придумываешс там себе историю и вс такое а тебе всё обламывают вот такими патчами.
зы.да я дурак и двоечник.
зы.зы.полюбас спасибо переводчику
  • 0

#8
mixrin

mixrin

    Clone Grade Zeta

  • Tech III Pilots
  • PipPipPip
  • 400 сообщений
20
  • EVE Ingame:noBap
  • Client:Eng

интересно, как ССР будет оправдываться, когда их новый клиент будет сжигать видяху на корню....поживем увидим....

а пока единственный рецепт, устанавливать патчи через день-два после их выхода....

Просмотр сообщения


WTF? :blink:
  • 0

#9
Blasfemer

Blasfemer

    Clone Grade Kappa

  • Tech III Pilots
  • PipPipPipPipPip
  • 2279 сообщений
125
  • EVE Ingame:Blas Vicarius
  • Client:Eng

зы.зы.полюбас спасибо переводчику

Просмотр сообщения

Пререводчик бы к твоему посту не помешал... :blink:

Сообщение отредактировал Blasfemer: 13 December 2007 - 21:12

  • 0
"Make your way to the top by any means necessary
and carry on until your enemies are dead and buried" (с)

#10
CyrusVirus*Нейтрал

CyrusVirus*Нейтрал
  • Guests
"иначе файл удаляется из корны диска" следует исправить...

Судя по отчету, накосячили авторы установщика.

Комманда File действительно подхватывала нужную директорию; а вот комманда Delete - нет. В документации к системе создания установщика было сказано, что Delete может использовать полный путь к файлу; как выяснилось, Delete должна использовать полный путь (иначе файл удаляется из корны диска)
  • 0

#11
Harsin

Harsin

    Clone Grade Alpha

  • Tech II Pilots
  • Pip
  • 35 сообщений
0
  • EVE Ingame:Harsin
хотя бы этот косяк не кажется таким уж глупым как прошлый с ребутом сервера =)
  • 0

#12
Merazor

Merazor

    O'rly?

  • EVE-RU Team
  • 22044 сообщений
4639
  • EVE Ingame:Odris Meza
  • Corp:Polite Fish
  • Client:Eng
:lol:
  • 0
Posted Image

#13
Johnatan

Johnatan

    Clone Grade Epsilon

  • Tech III Pilots
  • PipPipPip
  • 252 сообщений
11
  • EVE Ingame:Johnatan
  • Corp:FUEG0
  • Ally:LSH
  • Client:Eng
Кто-то сказал, что всем пострадавшим (215 человек) добавили до 30 дней бесплатного игрового времени. Есть какие-либо подтверждения?
  • 0

#14
Hamstress

Hamstress

    Newbie

  • Tech I Pilots
  • 1 сообщений
0
  • EVE Ingame:Hamstress
прикололо :)

В связи с чем вопрос, Dr. Erlendur S. Thorsteinsson вообще проводит тестирование своих программных продуктов перед релизом или где? :nunu:
  • 0

#15
DeTech

DeTech

    На пенсии

  • Tech III Pilots
  • PipPipPipPipPip
  • 2963 сообщений
159
Програмное обеспечение не может быть без глюков, количество глюков можно лишь уменьшить до приемлемого уровня (с) негласные правила програмирования
  • 0
Изображение

#16
Kolia_Nik

Kolia_Nik

    Clone Grade Eta

  • Tech II Pilots
  • PipPipPipPip
  • 530 сообщений
8
  • EVE Ingame:ViperLSS 97
  • Corp:[DESU]

Кто-то сказал, что всем пострадавшим (215 человек) добавили до 30 дней бесплатного игрового времени. Есть какие-либо подтверждения?

Просмотр сообщения

Мдя жаль не слышал, я постарадавший но сам за 5 минут справился, надо было позвонить по русскому телефону, пожаловаться девочке оператору на нелёгкую судьбу...
  • 0
Изображение

#17
Ametist_RUS

Ametist_RUS

    Clone Grade Eta

  • Tech III Pilots
  • PipPipPipPip
  • 906 сообщений
29
  • Client:Рус
Kolia_Nik
Такая же фигня :nunu: не привыкли мы куда-то звонить, пока сами всё не сделаем либо в конец не убъём :)
  • 0

#18
Morto

Morto

    Clone Grade Epsilon

  • Tech III Pilots
  • PipPipPip
  • 278 сообщений
6
  • EVE Ingame:Morto MacLeod
  • Corp:Ab Origines
  • Ally:White Noise.
  • Client:Eng

В связи с чем вопрос, Dr. Erlendur S. Thorsteinsson вообще проводит тестирование своих программных продуктов перед релизом или где?

а кто сказал что у них ева на C:\ стоит?)
  • 0
Изображение




0 посетителей читают тему

0 members, 0 guests, 0 anonymous users