Windows 7 могла зависать на 30 секунд из-за отсутствия обоев или иконок на рабочем столе
Разработчики добавили специальный таймер, но не удостоверились, что он всегда работает корректно.
В Windows 7 был необычный баг, из-за которого вход в систему растягивался на 30 секунд при использовании фонового цвета вместо обоев рабочего стола. Историю странной ошибки рассказал ветеран Microsoft Рэймонд Чен.
Ошибка была связана с логикой работы системы входа в Windows 7. После ввода пароля Windows ждала сигналы готовности от компонентов оболочки: панели задач, значков рабочего стола, фоновых служб и системы обоев.
Если все подтверждения приходили, то рабочий стол появлялся сразу. Если какого-то подтверждения недоставало, то система ждала 30 секунд.
Затык, как оказалось, был именно в обоях — вернее, в их отсутствии. При использовании изображения компонент обоев загружал файл, выводил его на экран и отправлял сигнал WallpaperReady. Однотонный фоновый цвет рабочего стола не требовал загрузки изображения, поэтому связанный с этим участок кода не запускался. Сигнал тоже не отправлялся.
В результате операционная система, недосчитавшаяся подтверждения от компонента обоев, ждала положенные 30 секунд и только потом запускала пользователя на рабочий стол. Примечательно, что это был не единственный баг такого рода.
Похожая ошибка проявлялась при определенном сочетании групповых политик для рабочего стола. Отключение значков могло одновременно блокировать отправку сигнала об окончании их инициализации, из-за чего система снова ждала до истечения таймера.

