← На главную

Ошибка ERROR_ARENA_TRASHED: рудимент MS-DOS в современных тестах

20.05.2026 20:56 · hackernews

Ошибка с кодом 7 — ERROR_ARENA_TRASHED — звучит так, будто хэви-метал группа разнесла арену, которую арендовала. На самом деле это привет из MS-DOS. Внутри MS-DOS работала с памятью как с последовательностью блоков переменного размера. Перед каждым блоком шёл 16-байтовый заголовок — arena. В нём хранились три поля: arena_signature (байт: 0x4D для обычного элемента, 0x5A для последнего), arena_owner (слово — PDB процесса или 0, если память свободна) и arena_size (размер в параграфах). Сигнатуры 0x4D и 0x5A — это инициалы Марка Збиковски (Mark Zbikowski), ASCII буквы M и Z.

Когда система обходила блоки, например, ища свободную память под новый запрос, она проверяла сигнатуру. Если та не равнялась 0x4D ни 0x5A, система объявляла, что arena «trashed» («разгромлены», то есть повреждены). Отсюда и код 7. Кстати, словечко «trashed» — ещё одно доказательство, что разработчики Microsoft были «бандой недисциплинированных хакеров».

Этот код ошибки специфичен именно для MS-DOS. Win32 его не использует. То есть ERROR_ARENA_TRASHED — рудимент, как EMPTY_THREAD_REAPER_LIST. Поэтому его удобно подставлять в тестовых сценариях для имитации ошибок: увидев код 7, можно быть уверенным, что он пришёл из тестовой обвязки, а не от реальной системы.

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

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

Читать оригинал →