Как стать автором
Обновить

Как «Историю игрушек 2» Pixar удалили дважды: сначала случайно, а потом из-за стремления к совершенству

Время на прочтение13 мин
Количество просмотров44K
Автор оригинала: Matthew Panzarino
image

«Тогда-то мы и заметили это впервые, на примере Вуди».

«Ларри Катлер зашёл в каталог и как раз говорил об установке исправления для Вуди или его шляпы. Он посмотрел в каталог, и там было около 40 файлов, потом заглянул ещё раз, а там осталось всего четыре».

«Затем мы увидели, что начали пропадать последовательности кадров, и подумали: „Боже мой!“»

«Я схватил телефонную трубку… „отключайте машину!“»

Так Орен Джейкоб, бывший главный технический директор Pixar, тогда работавший помощником технического директора Toy Story 2, вспоминает момент, когда они обнаружили, что фильм удаляется с серверов компании после выполнения ошибочной команды, уничтожая два месяца и сотни человеко-часов работы.

Эта история стала известной после публикации клипа из расширенной версии фильма на Tested. Озвучивал клип сам Джейкоб, а также руководящий технический директор Галин Сусман.


Эта история показалась мне интересной, поэтому я связался с Джейкобом, который теперь работает исполнительным директором ToyTalk. Я хотел услышать рассказ непосредственно от участника, понять, действительно ли ситуация была такой драматичной, узнать, как с этим справлялись сотрудники и выяснилось ли в итоге, кто удалил файлы. Джейкоб хорошо помнит подробности этой ситуации.

Огромная часть Toy Story 2 действительно была удалена и восстановлена только благодаря счастливому стечению обстоятельств и напряжённому труду сотрудников Pixar.

Но что осталось неизвестным, так это то, что на самом деле весь фильм снова полностью уничтожен, только уже не компьютерами, а самими создателями. После чего он был полностью переделан за считанные месяцы, когда дата релиза уже была объявлена.

История, которую поведал мне Джейкоб, содержит интересные уроки для людей, работающих с большими объёмами технических данных. Но кроме того, она многое говорит нам о том, как великолепное качество фильмов Pixar связано с работающими в компании людьми, которые стремятся делать всё идеально.

/bin/rm -r -f *


История скорее всего началась в 1998 году, хотя Джейкоб признаётся, что точной даты не помнит. Команда создателей «Истории игрушек 2» (Toy Story 2), примерно 150 человек из отделов анимации, освещения и моделирования Pixar, уже какое-то время упорно работала над фильмом. Одновременно другие 200-250 человек завершали работу над «Приключениями Флика» (Bug’s Life), который должен был выйти осенью того же года.

В один из дней Джейкоб (на фото ниже) находился в офисе с Ларри Катлером и Ларри Опперле, который тоже был помощником технического директора и работал под руководством Сусман. По удачному стечению обстоятельств они заглянули в каталог, где хранились ресурсы персонажа Вуди. После обновления каталога они заметили, что там становится всё меньше и меньше файлов.


«Компьютер выдал ошибку, уже не помню, какую точно. Что-то типа „Каталог уже недействителен“, потому что Ларри находился в месте, которое уже было удалено. Затем мы поднялись вверх по иерархии, вернулись, и увидели Хэмма, Мистера Картофельную голову и Рекса. Чуть позже мы заглянули в каталог снова, и там остался только Хэмм, а потом и он пропал».

Скорее всего, была запущена команда rm -r -f *, которая, грубо говоря, приказывает системе начать удаление каждого файла ниже текущего каталога. Она часто используется для удаления подмножества нежелательных файлов. К сожалению, кто-то в системе запустил команду на корневом уровне проекта Toy Story 2, и система начала рекурсивно отслеживать структуру файлов и удалять их, подобно червяку, прогрызающему себе дорогу из сердцевины яблока.

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

«Главный сервер отключился», — рассказывает Джейкоб. «Часть сотрудников анимировала кадры, и на это могло тратится от одной до пяти минут. Но затем, когда им по какой-то причине нужно было загрузить файлы с главного сервера, то их компьютеры зависали».

«В конечном итоге каждый аниматор и технический директор, все, кто работал над фильмом сказали: „Ну вот, все компьютеры выключились. Пойдём обедать, ха-ха“».

Несколько часов спустя сервер включили и приступили к оценке ущерба. Команда определения размера каталога Toy Story 2 показала, что сохранилось только 10% от его исходного объёма.

Случайная команда удалила 90% мультфильма.

«Фильм был уничтожен»


Когда об этой истории стало известно впервые, основным из главных вопросов стал «как это вообще произошло?»

Я тоже задал Джейкобу этот вопрос. Оказалось, что причина заключалась в том, как компании уровня Pixar работают над проектами.

«В нашей сети было 400 людей, и все они имели достаточно масштабный доступ к ресурсам всего проекта, поэтому сложно было ограничить степень ущерба», — рассказывает Джейкоб. «Это могло быть сделано с любого терминала».

«Pixar — это широко открытая Unix-среда, то есть она позволяет довольно многое. Можно переходить из каталога в каталог, бродить по сети и при желании входить на машины Эда Кэтмелла или Стива Джобса. Не то чтобы Стив непосредственно работал над проектом, но сделать это было можно».

Стандартный способ защиты от подобных команд — ограничение доступа пользователей только теми файлами, которые им нужны. Но из-за того, как выполнялась работа над проектом фильма Pixar, почти каждому требовался доступ на чтение и запись на главный сервер. Это была их работа.

Назначение допусков при помощи микроменеджмента съело бы все административные ресурсы, особенно во время кранчей.

Резервный план


Итак, на этом этапе бОльшая часть фильма была удалена или повреждена. Но это не было большой проблемой. Файлы удалялись и раньше, такое происходит время от времени. Во время создания «Приключений Флика» большинство муравьёв удалили и их пришлось восстанавливать, потому что, разумеется, Pixar выполняла резервное копирование данных.

В 1998 году самым распространённым способом резервного копирования большого объёма информации была лента; именно такую систему и использовала Pixar. К сожалению, эти резервные копии не проверялись регулярно, как это рекомендуется и как происходит в компании сегодня.

Обычно, чтобы убедиться в качестве резервной копии, необходимо её использовать. Через каждые несколько дней или недель текущие данные заменяются резервными копиями и работа продолжается, чтобы гарантировать, что все данные на месте. Такая практика называется «live backup».

В то время Pixar не тестировал свои резервные копии регулярно. И именно поэтому начались проблемы: резервные копии хранились на ленточном накопителе, и когда размеры файлов превышали 4 гигабайта, то упирались в ограничение на максимально возможный объём. Журнал ошибок, который бы мог сообщить системным администраторам о заполненном диске, тоже был расположен на заполненном томе, и имел размер в 0 байтов.


Это означало, что новые данные продолжали записываться на накопитель, но «выталкивали» с него старые файлы. Но никто в Pixar пока об этом не знал.

Здесь стоит упомянуть, что весь фильм занимал не более 10 гигабайт информации. Это может казаться безумием по сравнению с размером текстур современных фильмов, но нужно помнить, что лента резервных копий имела ограничение на размер файлов в 4 ГБ и в течение многих месяцев работы над проектом это не представляло проблемы. Весь объём данных для мультфильма можно было бы уместить на паре двухслойных DVD.

Итак, сотрудники взяли резервные копии, приступили к работе и восстановили фильм. В течение пары дней они думали, что у них есть полностью восстановленная версия файлов TS2.

Чтобы протестировать их, они запустили рендеринг примерно 2 000 кадров, по одному из каждой «сцены» фильма (фрагмента между переходами). По сути, для них нужны все ресурсы, участвовавшие в фильме, потому что для рендеринга этих отдельных кадров необходимы все модели, освещение и текстуры.

Всё выглядело хорошо. «Мы потеряли неделю работы», — рассказывает Джейкоб. «То есть последние 10 сцен последней недели, но всё остальное было нормальным».

Перенесёмся в конец этой недели. Команда вернулась к работе и уже несколько недель использовала эти восстановленные файлы. Но на протяжении этой недели возникали небольшие странности. Всплывали загадочные ошибки с «привязками».


«Привязка» — это когда персонаж, например Вуди, снимает шляпу. Шляпа превращается из части его головы в часть его руки, это очень хитрая и «хрупкая» процедура.

«Мы начали сравнивать кадры и поняли, что фильм неполон. Я не могу объяснить, как нам удавалось работать эту неделю и получать такие рендеры»

К концу недели выявилось достаточно ошибок, чтобы команда поняла, что есть проблема. Кроме ошибок «привязок» некоторые люди, работавшие с версией своей сцены, заметили, что текущая версия была намного меньше, чем раньше. Допустим, до удаления файлов они работали с номером 420, а теперь сцена имела версию 20. Творилось что-то не то.

Именно тогда, спустя целую неделю работы, обнаружилась проблема с резервным копированием на ленту.

«Эта работа совершенно точно была проделана впустую, потому что основывалась на ненадёжных восстановленных данных», — вспоминает Джейкоб. «Теперь у нас не было ни малейшей уверенности в любом из решений: восстановленные данные были плохими, проделанная с ними работа была плохой, удаление оказалось ужасным, а резервные копии на лентах повреждены».

«У нас не оставалось возможных путей для дальнейшего движения, а может быть, даже хуже. Мы не полностью понимали, в чём именно испортились резервные копии. Если на лентах нет только 10 процентов фильма, то каких именно 10 процентов, мы не знали».

«Мы собрали большое совещание в конференц-зале в Багвилле (корпоративном комплексе Pixar). Самые умные люди в студии говорили: „Мы не знаем, что делать. Боже мой!“»

А потом Сусман сказала: «У меня дома есть машина».

«Вольво» за 100 миллионов долларов


Сусман, бывшая тогда руководящим техническим директором Toy Story 2 (на фотографии ниже), незадолго до этого родила сына Элая, поэтому работала из дома. То есть у неё дома была рабочая станция Silicon Graphics. Это была или Indigo 2, или Octane, показанная ниже, в которую загрузили полную копию фильма.

Чтобы она могла работать за пределами офиса, машину подключили к локальной сети и скопировали в неё всё дерево файлов. После этого она получала инкрементные обновления по ISDN-подключению к Интернету. Для тех кто не знает, что это такое: это соединённые вместе два модема на 56 Кбит/с (добро пожаловать в 1998 год).

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

Поэтому Джейкоб и Сусман сели в её «Вольво» и понеслись по мосту из Ричмонда к ней домой, чтобы забрать компьютер. Они погрузили его в машину и аккуратно разместили на заднем сиденье, обернув одеялами и надёжно пристегнув ремнями.


«Нам больше ничего не оставалось», — рассказывает Джейкоб про описанное выше совещание. «Мы были мертвы. Совещание длилось минут 45. Там собралось 30 самых умных сотрудников Pixar, которых можно было привлечь для решения проблемы».

Именно тогда Сусман вспомнила о её домашнем компьютере.

«Мы просто встали, вышли, залезли в её „Вольво“, пересекли мост, забрали компьютер и несколько одеял, и я закрепил его ремнями безопасности на заднем сиденье. Мы ехали со скоростью около 35 миль в час с мигающими фарами, надеясь, что полиция будет нас сопровождать. Но ни одна полицейская машина нас не заметила, и это нам не помогло».

В тот момент «Вольво» везла компьютер стоимостью 100 миллионов долларов, потому что на его жёстких дисках хранился проект, вмещавший в себя труд всей команды.

Им удалось невредимыми доехать до Ричмонда. «Перед парковкой нас встретили восемь человек с листом фанеры, и как фараона на носилках внесли компьютер в машинный зал».

Все волновались, когда включался компьютер, потому что именно в этот момент чаще всего «умирают» жёсткие диски. Он загрузился. Никто не стал ничего проверять, его просто немедленно подключили к сети и сразу же скопировали весь диск, а затем стали разбирать, что же нам досталось.

Резервной копии было примерно две недели, но им удалось создать дерево «B» и сравнить его с резервной копией «A», сделанной пару месяцев назад, и третьим источником «C», собранным из всех локальных резервных копий, созданных аниматорами и моделлерами на своих личных терминалах. Эта версия состояла из жалких .old, .sav, .bak и любых других старых файлов, которые удалось найти.

Удалось подтвердить целостность примерно 70 тысяч файлов, а ещё 30 тысяч нужно было проверить вручную. «Мы в составе 10-12 человек, без остановки работали с пятницы по понедельник, непрерывными сменами, с едой и спальными мешками», — вспоминает Джейкоб.


«Когда люди пришли в пятницу мы выдали им распечатку: „Вот 500 пунктов, которые нужно проверить за следующие восемь часов. Начинайте с команд xdiff. Приступайте“».

«Быстро, в течение буквально пары часов, программисты написали скрипты, которые получали на входе список и создавали окна XF, по 20 файлов в глубину. Закрываешь их все, спускаешься ещё на 20 вглубь. Закрываешь их все, поэтому так можно двигаться очень быстро».

Все окна нужно было просматривать глазами, чтобы увидеть, какие из них короче, чем более новые. Они занимались этим следующие несколько недель. Наиболее чётко Джейкоб вспоминает ощущение сопереживания и поддержки. Не только то, что сотрудникам нужно было пожертвовать выходными с семьёй и работать по воскресеньям, оставаясь после смены и даже ночуя на работе, но и то чувство «ухода с головой» в решение проблемы.

«В то время мы закопались очень глубоко. Нам помогали люди из команды „Истории игрушек“, люди, работавшие над „Приключениями Флика“, да и вся студия в целом. Всё сообщество поддерживало нас ночной работой, печатью на клавиатурах или отправкой нам еды».

«Однажды одна из местных лавок по продаже сэндвичей в Поинт-Ричмонд спросила нас: „Вам нужна сегодня бесплатная еда? Мы знаем, что сейчас вы не спите“».

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

«Больше всего в выходных мне запомнились подносы с печеньем, лимонад, пицца и цветы, которые нам отправляли», — вспоминает Джейкоб. «Кто-то нанял на воскресенье массажиста. Кто-то ещё работал в организации, предоставляющей временное убежище, и принёс нам одеяла».

Затем они пересобрали и протестировали проект, и он вроде бы работал. Даже сегодня Джейкоб не может объяснить то, что после завершения их работы в дереве не хватало более нескольких тысяч файлов.

«Мы не знаем, куда подевались эти файлы. И совершенно необъяснимо, как проект всё равно работал без них».

Но проект работал, кадры рендерились, и «История игрушек 2» снова ожила.

Охота на ведьм


Один из самых интересных для меня вопросов заключался в том, удалось ли найти виновного во всём этом, и был ли он наказан. Обычно, когда такое происходит, люди стремятся найти ответственного. Первым пунктом в повестке дня является «Кто виноват?» Но не в Pixar.

«Мы не пытались это скрыть», — рассказывает Джейкоб. «Спустя 10 минут мы разослали всем в здании электронные письма. „Помогите. Чёрт возьми!“»

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

«Давайте отложим охоту на ведьм. Для начала нам нужно восстановить фильм. Давайте не будем всю неделю искать, кого нужно убить. Где наш фильм?»

«Очевидно, что спустя пять минут совещания обстановка накалилась. Кто-то сказал: „Давайте найдём его и линчуем, немедленно“», — вспоминает Джейкоб. «Я поддержал идею о линчевании, но самым главным было вернуть фильм и снова начать работать над Базом и Вуди. Мы потеряли наших друзей».

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

Но подобные негативные мысли никому не могли помочь, и просто отвлекали от основной задачи: движения вперёд.

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

Джейкоб не может вспомнить, кто из руководства был на службе в день, когда восстанавливали резервные копии, но, по его словам, кто бы это ни был, Стив Джобс, основатель студии Эд Кэтмелл и другое руководство сильно поддерживало работу по восстановлению, а не винило сотрудников в ошибке. В те выходные они купили команде пиццы, давали ей всё необходимое и поддерживали в целом.

Во время большого совещания относительно проблемы с резервным копированием Кэтмелл, известный тем, что ведёт «невероятно спокойный и почти дзенский образ жизни», просто спросил у команды, что она будет делать с этой проблемой.

Джейкоб вспоминает этот разговор:

«Эд, сейчас мы делаем всё, что можем».

«Ребята, вы справитесь с проблемой?»

«Да, спасибо, Эд».

В случае подобной катастрофы сложность заключается в том, что технические директора и сотрудники Pixar должны доверять друг другу при устранении проблемы, даже если было совершено несколько ошибок и один из них был в этом виноват. «Если ты не можешь спокойно сидеть и участвовать в совещании, то тебе нельзя быть на совещании», — говорит Джейкоб. «Обстоятельства были чрезвычайно необычными. „Чёрные лебеди“ иногда случаются».

Вместо того, чтобы искать виновного или оплакивать потерю времени и усилий, команда занялась изменением стратегии резервного копирования, чтобы подобное больше не повторялось, и приступило к навёрстыванию упущенного времени.


Toy Story 2 снова отправляется в мусорную корзину


После удаления и восстановления Toy Story 2 команда надеялась на ничем не омрачённый выпуск продукта, но этому не суждено было случиться.

В Рождество 1998 года, после выпуска «Приключений Флика» и завершения рекламного тура Джон Лассетер, Эндрю Стэнтон, Пит Доктер и легендарный сценарист Джо Рэнфт решили оценить Toy Story 2.

Фильм был плохим. Они посвятили зимние каникулы почти полному переписыванию проекта с нуля. Производство было остановлено 15 декабря и возобновилось после Нового года, в январе, когда команда сценаристов повторно изложила идею фильма.

В конечном итоге Лассетер и Ли Анкрич стали режиссёрами фильма вместе с Эшем Брэнноном.

Что же осталось от предыдущей версии? Разумеется, главные герои: Базз, Вуди, Хэмм, Мистер Картофельная голова, Рекс. Осталась комната Энди. Осталась сцена с «Амбаром игрушек Эла». Почти всё остальное в фильме было новым.


Джейкоб рассказывает, что было добавлено, в том числе и новый персонаж — пёс Бастер с его анимацией:

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

На этом этапе появился Бастер. И с момента его появления до выпуска фильма прошло девять месяцев.

Это была четырёхногая модель, полностью анимированная… на лету. Как большинство людей в фильме. Вся массовка в аэропорту в конце"

А затем мы собрали их. Затем были добавлены все эффекты. Первая сцена, в которой Базз играет с роботами, там где он взрывает четверть миллиона роботов одним кристаллом. Всё это было добавлено во второй версии. В январе мы начали с нуля.

По сути, и весь сюжет. И сам фильм. Это оказалось одной из самых серьёзных проверок культуры Pixar и самой компании.

Что было самое серьёзное в переделке фильма? У него был жёстко заданный срок выпуска — 22 ноября 1999 года. Эту дату нельзя было изменить. Такой высокобюджетный фильм, как Toy Story 2, имеет множество маркетинговых привязок, рекламных кампаний, и всё это должно идеально синхронизироваться с выпуском фильма.

Сдвинуть дату выпуска фильма за год безумно трудно. Сдвинуть её за шесть месяцев невозможно. Это означало, что команде придётся переделать Toy Story 2 за 9 месяцев. И всё потому, что они стремились сделать максимально качественный продукт.

Руководство Disney не верило, что они справятся, но им удалось.

«Период с января по сентябрь 1999 года был занят невообразимой геракловой попыткой создать фильм заново. Это было одним из основополагающих камней в фундаменте корпоративной культуры Pixar. И только благодаря ему мы справились».

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

В то время Pixar была независимой акционерной компанией. Провал такого фильма, как Toy Story 2, невыпуск его вовремя снизил бы доверие к студии и разрушил экономику финансирования фильмов Disney.

«Нужно спасти Базза и Вуди. Спасти франшизу. Спасти фильм. Спасти компанию. На карту было поставлено всё».

«Историю игрушек 2» удалось завершить и выпустить вовремя. По всему миру она заработала 500 миллионов долларов, была номинирована на награду Киноакадемии и подтвердила репутацию Pixar как студии, не идущей на компромиссы.

Полученные уроки


В заключение Джейкоб сказал мне, что самое важное, что он извлёк из этой ситуации, было чувство товарищества команды Pixar.

«Раньше я никогда не ощущал его на таком уровне, потому что это была такая потеря, что для её объяснения даже не требовалось совещаний. Люди просто знали это. Знала не только компания, но даже родственники, друзья и люди из Поинт-Ричмонд. Возможно, именно благодаря этому результат работы оказался таким. Дело не в технологиях, а в чувствах».

Из этой ситуации я понял, что спонтанность общественной поддержки говорит об общем уровне культуры Pixar. Подобные вещи просто так не происходят. Невозможно потерпеть катастрофу и мгновенно развить чувство общности и товарищества.

Джейкоб соглашается со мной, вспоминая свои ощущения при восстановлении фильма: «Невозможно работать по 60 часов, не теряя концентрации. Но неожиданно откуда-то появляется еда. Кто-то приносит одеяло, кто-то заставляет тебя пойти в душ, а потом вернуться к работе. И ты спрашиваешь себя: „Как это получилось?“»

«Всё просто работало, и над этим не нужно было думать. Незабываемым после такого опыта стала дружба, появившаяся благодаря нему. Этот совместный путь объединил наше сообщество».

«Я никогда не забуду, что стал частью „Истории игрушек 2“. Мне очень повезло», — рассказывает Джейкоб. «Мне довелось работать на том уровне руководства, которое позволило нам сохранить Вуди и Базза, „Историю игрушек“ и саму франшизу. Обо всём этом мы и говорим сегодня».
Теги:
Хабы:
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
+83
Комментарии93

Публикации

Истории

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн