13 октября 2013 г.

Application Popup Error 333

Вероятно многим администраторам знаком данный ID 333(жаль не 666).Знаком своей непонятностью и трудноустранимостью. Хотя как посмотреть.

Вводные:
Терминальный сервер Windows 2003 R2 Enterprise x32.
1С 7-8.2
Пользователей  порядка 50-60
Подключение с различных филиалов

Проблема:
Application Popup Error 333 в Event Log

Последствия: отвал локальных принтеров пользователей в терминальных сессиях без возможности восстановления(только перезагрузка сервера).Падение пользовательских приложений: браузера, офиса и прочих.Падение службы событий, невозможность получить доступ к журналам и логам.Полное падение без возможности хоть как-то работать примерно раз в 4 дня, местами в 2.

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

Сначала думал, что дело в утечках памяти, но в Sysinternal VMMap поди ещё разберись даже с мануалом.В системных логах были сообщения о падениях 1С, что 7ой, что 8ой версии.
Покуралесил по форумам нашёл странное объяснение "ошибки пишутся в реестр".Повыгружал его в работе с эвентом 333 и без него.Особых закономерностей не нашёл.Размер реестра колебался от 250-1 Гб!!!.

Обвешали сервер мониторами.Я использовал System Explorer, а на утилиты от sysinternal что-то не позарился, хотя местами Process Monitor позапускал. Не понравился мне он тем, что лог на терминальном сервере с его активностью выгрузить для спокойного разбора практически невозможно ввиду его размеров.Стал искать точку входа по ошибке Application Popup Error 333:

Событие Аудит - успех Источник=Security Сообщение=User Logoff: User Name:XXXXXX Domain:XXXXXX
Процесс Новый PID=5712 PPID=1160 msiexec.exe /i C:\WINDOWS\system32\spool\DRIVERS\W32X86\3\CIOUM32.MSI /qn
Имя родителя="C:\WINDOWS\system32\spoolsv.exe"
Процесс Новый PID=6308 PPID=648 C:\WINDOWS\system32\msiexec.exe /V Имя родителя="C:\WINDOWS\system32\services.exe"
Процесс Новый PID=6204 PPID=4 "C:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE" /n /dde
Процесс Удалить PID=11224 PPID=836 Имя файла="DllHost.exe" Код выхода=0 Процессорное время=00:00:00
Net Новый TCP/IP localhost:2406 (127.0.0.1) PID=4 "System"
Net Новый TCP/IP localhost:0 (127.0.0.1) PID=4 "System"
Событие Информация Источник=Service Control Manager Сообщение=The Windows Installer service was successfully sent a start control.
Событие Информация Источник=Service Control Manager Сообщение=The Windows Installer service entered the running state.
Процесс Удалить PID=5712 PPID=1160 Имя файла="msiexec.exe" Код выхода=0 Процессорное время=00:00:00
Событие Информация Источник=Print Сообщение=Printer HP LaserJet P2050 Series PCL6 (from XXXXXX) in session 7 was set.
Процесс Новый PID=12048 PPID=836 C:\WINDOWS\system32\DllHost.exe /Processid:{B286F068-5B17-4AE8-989B-8F9A199C47BA}
Имя родителя="C:\WINDOWS\system32\svchost.exe"
Net Удалён TCP/IP localhost:0 (127.0.0.1) PID=4 "System"
Net Удалён TCP/IP localhost:2406 (127.0.0.1) PID=4 "System"
Событие Информация Источник=Print Сообщение=Printer HP LaserJet P2050 Series PCL6 (from XXXXXX) in session 7 was set.
Событие Информация Источник=Print Сообщение=Printer HP LaserJet P2050 Series PCL6 (from XXXXXX) in session 7 was set.
Событие Ошибка Источник=Application Popup Сообщение=An I/O operation initiated by the Registry failed unrecoverably.
Событие Ошибка Источник=Application Popup Сообщение=An I/O operation initiated by the Registry failed unrecoverably.
Событие Ошибка Источник=Application Popup Сообщение=An I/O operation initiated by the Registry failed unrecoverably.
Событие Ошибка Источник=Application Popup Сообщение=An I/O operation initiated by the Registry failed unrecoverably.

Точка входа с данной ошибкой возникает при подключении пользователя к терминальному серверу последующем монтировании принтера в сессии.Ошибка может возникать и сервер с ней какое-то неопределённое время может даже нормально функционировать.Закономерности в том, от какого пользователя и конкретно компьютера или принтера возникал евент не проявились.Были попытки удалить старые принтеры у локальных пользователей или переподключить, но успеха они не принесли.

На мысли о решении проблемы намекнула статься, которая местами распространена по интернету http://it-padla.livejournal.com/727.html "The HP MSI installer creates ~1.6 MILLION registry API calls as a result of over 4000 subkeys created in the registry for every printer mapped".Не ну "нормальная ситуация".

Если проверить ветки реестра указанные в статье выше:

HKU\ .DEFAULT\Software\Hewlett-Packard
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\Software\Hewlett-Packard(у меня она почему-то отсутсвует), а также:
HKU\ %SID%\Software\Hewlett-Packard, то можно увидеть нечто подобное:

Количество записей в районе 45000-60000.В среднем одна запись весит 1-4кб.Если экспортировать ветку пользователя получается в районе 30-50 Мб. Есть записи аж 2009 года с момента установки сервера.В основном эта ветка является самой большой по размеру в пользовательском ntuser.dat.

Такой параметр реестра  RegistrySizeLimit(RSL-предельный размер реестра) по адресу  HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Memory в Windows XP/2003 отсутсвует.

Таким образом 50-60 пользователей x 30-50 Мб = 1-1.5 Гб реестра.Далее уже идeт соображения и не потверждённая информация.Возможно значения о новых принтерах не могут записаться в пользовательский раздел реестра, возможно что-то с выгружаемым пулом.В принципе проблемы бомбардировки реестра msi installer'ом не наблюдается.

Итог:
-почищены ветки пользователей
-установленные новые драйвера принтеров(на столько на сколько это вобще возможно)
-скриптов на удаление веток у пользователей не писал(Данные три пункта должны убрать проблему)
-понаблюдал рост веток реестра(умеренно не стихийно заполняются).Месяц работы в районе 1500 значений объёмом 1,5 Мб
-запланированная миграция на новый сервер и систему помогли зарубить данный эвент. 

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

Отправить комментарий