пятница, 24 сентября 2010 г.

Воистину пятничный баг

Я сейчас занимаюсь разработкой модуля видеонаблюдения за спящими пациентами (ибо в сфере медицины сна) под .NET при помощи libvlc (ядра небезызвестного плеера VLC). И все бы ничего, но иногда VLC конфликтовал с Windows, в результате чего возникал BSOD (Blue Screen Of Death). В скором времени я набрел на топик на форуме VLC с описанием этой проблемы. Если отбросить технические детали (по ссылке их предоставлено сполна), то проблема решалась установкой для заданного ключа реестра значения IMMLoad из 1 в 0. Сказано-сделано: установление ключа интегрированого в инсталлятор - бага пофикшена.

Однако некоторое время спустя тестеры очень расстроили меня сообщением о том, что они снова воспроизвели BSOD (тестеры у нас классные, меня сам факт расстроил). Трудно описать мое удивление, когда в реестре я обнаружил значение LoadIMM (похож на IMMLoad, правда?), выставленное в 1. Меняем на 0 - и все опять хорошо. Я очень люблю симметрию, но такой подставы не оценил :)

Оказывается, на разных версиях Windows используется либо IMMLoad, либо LoadIMM (с очень высокой вероятностью, делают они одно и то же). Мы с коллегами немного по-пятничному пофантазировали на тему того, что значений может оказаться больше (хотя я очень надеюсь, что это не так):



Приятных вам выходных!

Комментариев нет: