- Статус
- Оффлайн
- Регистрация
- 22 Фев 2018
- Сообщения
- 1,922
- Реакции
- 524
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Рождество прошло!
Мы все возвращаемся в офис после нескольких недель отдыха, поэтому обновление в этом месяце невелико. Мы отключаем рождественский контент и исправляем некоторые ошибки в этом обновлении, ничего особенного.
HQM содержание после смерти
-Андре Штраубмайер
Поскольку многие люди задаются вопросом об этой ошибке и о том, почему нам потребовалось так много времени на ее устранение, вот краткое вскрытие, которое я также разместил на Reddit, когда мы выпустили это исправление 2 недели назад.
Ошибка была относительно редкой, и наши тестировщики не смогли ее полностью воспроизвести
Когда это случилось с базой, и мы проверили ту же базу, мы тоже не смогли воспроизвести ее там.
Я просмотрел код шкафа с инструментами около 5 раз и не нашел в этом ничего плохого
В конечном итоге, нас поразило то, что Алистер заметил, что иногда, ремонтируя предмет на своей базе, он мог ненадолго видеть всплывающее сообщение о распаде базы, когда сразу после этого взаимодействовал с шкафом для инструментов. При воспроизведении этого в редакторе я также иногда мог видеть ресурсы, которые не должны быть там, всплывали в обзоре затрат на содержание на короткое время, чего не было в автономной сборке. В те же выходные мы получили видео с кланом, воспроизводящим его, ремонтируя предмет с помощью ремонтной скамьи в их базе. (Спасибо, Мелли!).
Поэтому, пройдясь по коду ремонта стенда, я заметил, что он получает список «количество предметов» из нашего пула памяти, а затем возвратил его методом «free» вместо метода «free list». Это привело к тому, что список в пуле памяти по-прежнему содержал стоимость последнего ремонта элемента. Шкаф инструментов также получал список «количества элементов» из нашего пула памяти, и если это оказался тот же список, который ранее использовался для расчета затрат на ремонт элемента, то эти затраты добавлялись к следующему платежу на содержание. Это затронуло все ресурсы, которые использовались для ремонта, но это было действительно заметно только для высококачественного металла, поскольку ремонт оружия стоит дорогое количество металла высокого качества по сравнению с количеством, которое обычно требуется для обслуживания базы.
Чтобы предотвратить эту проблему в будущем, мы сделаем так, чтобы «бесплатный» метод вызывал ошибку при вызове со списком. Код, вызвавший проблему, долгое время не менялся, поэтому он не был на нашем радаре как причина проблемы, пока Алистер не заметил первые признаки паттерна. Мы сожалеем, что нам потребовалось так много времени, чтобы отследить это, но я надеюсь, вы понимаете, почему отладка не была легкой задачей.
Мы все возвращаемся в офис после нескольких недель отдыха, поэтому обновление в этом месяце невелико. Мы отключаем рождественский контент и исправляем некоторые ошибки в этом обновлении, ничего особенного.
HQM содержание после смерти
-Андре Штраубмайер
Поскольку многие люди задаются вопросом об этой ошибке и о том, почему нам потребовалось так много времени на ее устранение, вот краткое вскрытие, которое я также разместил на Reddit, когда мы выпустили это исправление 2 недели назад.
Ошибка была относительно редкой, и наши тестировщики не смогли ее полностью воспроизвести
Когда это случилось с базой, и мы проверили ту же базу, мы тоже не смогли воспроизвести ее там.
Я просмотрел код шкафа с инструментами около 5 раз и не нашел в этом ничего плохого
В конечном итоге, нас поразило то, что Алистер заметил, что иногда, ремонтируя предмет на своей базе, он мог ненадолго видеть всплывающее сообщение о распаде базы, когда сразу после этого взаимодействовал с шкафом для инструментов. При воспроизведении этого в редакторе я также иногда мог видеть ресурсы, которые не должны быть там, всплывали в обзоре затрат на содержание на короткое время, чего не было в автономной сборке. В те же выходные мы получили видео с кланом, воспроизводящим его, ремонтируя предмет с помощью ремонтной скамьи в их базе. (Спасибо, Мелли!).
Поэтому, пройдясь по коду ремонта стенда, я заметил, что он получает список «количество предметов» из нашего пула памяти, а затем возвратил его методом «free» вместо метода «free list». Это привело к тому, что список в пуле памяти по-прежнему содержал стоимость последнего ремонта элемента. Шкаф инструментов также получал список «количества элементов» из нашего пула памяти, и если это оказался тот же список, который ранее использовался для расчета затрат на ремонт элемента, то эти затраты добавлялись к следующему платежу на содержание. Это затронуло все ресурсы, которые использовались для ремонта, но это было действительно заметно только для высококачественного металла, поскольку ремонт оружия стоит дорогое количество металла высокого качества по сравнению с количеством, которое обычно требуется для обслуживания базы.
Чтобы предотвратить эту проблему в будущем, мы сделаем так, чтобы «бесплатный» метод вызывал ошибку при вызове со списком. Код, вызвавший проблему, долгое время не менялся, поэтому он не был на нашем радаре как причина проблемы, пока Алистер не заметил первые признаки паттерна. Мы сожалеем, что нам потребовалось так много времени, чтобы отследить это, но я надеюсь, вы понимаете, почему отладка не была легкой задачей.