October 4

access_violation, или как мы CS2 тестировали

Показательный скриншот из Steam Community, показываюший всю суть вопроса

Часть первая - это чудо 17 раз упало и чтение логов

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

Ситуация банальна донельзя - еще вчера отлично работавшая игра начала падать при подключении к любому режиму, будь то Casual или Deathmatch. Краш происходил во время загрузки карты.

Для начала проблему попытались решить самым банальным способом - верификацией локальных файлов и переустановкой игры (эта часть оказалась самой затратной по времени, так как из-за кривых серверов/файлов творения Valve скачивание 45 гигабайт на гигабитном интернете растянулось на полтора часа). Впрочем, скорость загрузки конкретно файлов CS2 - это отдельная история.

Краши продолжилсь. После этого были обновлены драйверы видеокарты. Решилась ли проблема? Да хуй там плавал. Не решилась.

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

За сегодняшний день CS2 упала с ошибкой access_violation 17 раз. 17 раз, Карл.

Довольно забавным оказался и тот факт, что после прочтения что стандартного, что расширенного через параметр запуска -debug лога ситуация для Влада как для программиста яснее не стала. После таких неутешительных результатов мы пошли тестировать память моего ПК.

Часть вторая - тестируем память

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

Его мы провели на 60%, и не выявив никаких ошибок, прекратили. Также до нас дошло, что если бы проблема и вправду была в памяти, то падала бы не только CS, но и что-нибудь еще, включая BSOD в самой системе.

Часть третья - делаем работу QA Valve за них

Вернувшись назад в систему, мы решили запустить игру сразу, не открывая дополнительно никаких других приложений в фоне (ни Discord, ни Spotify, ни Chrome). Античит Riot Vanguard также предварительно закрыли.

ИГРА УПАЛА СНОВА. В этот момент я уже потерял всякую надежду, но как тотальный last resort мы решили проверить несколько теорий, связанных с запуском локальных серверов и серверов сообщества.

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

После этих нехитрых манипуляций мы пришли к выводу, что падения игры на конкретно моем компьютере (сборка полностью AMD + 32гб памяти) вызваны на стороне официальных серверов Valve. Если бы не одно но...

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

Все логи лежат в облаке для изучения, если кому-то хочется покопаться в этом говне - https://drive.google.com/drive/folders/1cER8odvnNuOAUksmkGSdd-hxlw2tlqjI?usp=sharing