r   e   k   l   a   m   a
r   e   k   l   a   m   a

SVCHOST już nie na 100%: Microsoft naprawił wreszcie aktualizacje Windows XP

Strona główna AktualnościOPROGRAMOWANIE

W zeszłym roku wielu użytkowników Windows XP SP3 zauważyło, że usługa Windows Update w praktyce przestała nadawać się do użytku. Chodzi oczywiście o słynny na forach dyskusyjnych proces SVCHOST, zużywający niemal 100% dostępnej mocy procesora i powodujący „zamrożenie” systemu. Do takich zamrożeń dochodziło zwykle dwukrotnie – pierwszy raz gdy Windows Update łączyło się z serwerami Microsoftu, by pobrać listę dostępnych aktualizacji, drugi raz, gdy bardzo cierpliwy użytkownik po pobraniu listy w końcu był w stanie wyrazić zgodę na instalację tychże aktualizacji. Jeszcze gorzej było w sytuacji, gdy włączone były automatyczne aktualizacje. Usterkę wyeliminować miała listopadowa runda poprawek, ale niestety tak się nie stało, a wręcz przeciwnie, problem powrócił z jeszcze większą siłą. Okazało się też, że jego historia jest dłuższa, niż mogłoby się wydawać.

O problemie z SVCHOST wspomniano na forach TechNetu w czerwcu zeszłego roku, pierwszy wskazał na jego prawdziwą przyczynę znany dziennikarz IT i pisarz Jeff Dunteman, sugerując, że swoją genezą błąd ten sięga 2004 roku (pierwsze zgłoszenia na forum dobreprogramy.pl pochodzą z 2007 roku!), a winnym jest mechanizm aktualizacji Windows Update, wuauclt.exe. Bez pomocy Microsoftu użytkownikom XP pozostawało jedynie wyłączyć Windows Update i ręcznie aktualizować swój system. Dopiero w listopadzie Doug Neal z zespołu Windows Update opublikował wiadomość na liście dyskusyjnej patchmanagement, opisującą co się właściwie stało:

Problem powodowany jest przez klienta Windows Update, oszacowującego wyjątkowo długi łańcuch zastępstw – coś co IE6 i IE7 mają znacznie dłuższe niż jakakolwiek inna wersja IE, ze względu na ich czas na rynku. Każdy kolejne ogniwo takiego łańcucha podwaja zasoby CPU wymagane do oszacowania go w stosunku do poprzedniego ogniwa. Łańcuch jest tak długi, że jego konstrukcja dławi klienta Windows Update.

Najwyraźniej więc klient WUA, komunikując się z bazą aktualizacji ustalał, które z nich należy pobrać i zainstalować, a które zostały zastąpione przez inne i nie trzeba ich już pobierać. W miarę jak liczba aktualizacji rosła, proces zajmował coraz więcej zasobów (najwyraźniej do przeszukiwania drzewa dostępnych łatek nie wykorzystano zbyt efektywnego algorytmu, nie było też żadnego mechanizmu pozwalającego na ominięcie zbędnych już przeszukiwań). W końcu łańcuch stał się tak długi, że przekroczył limity przewidziane dla Windows Update (w pewnych sytuacjach miał nawet 40 i więcej wzajemnie zastępujących się elementów)

Microsoft postanowił więc rozwiązać problem za pomocą unieważnienia najstarszych, zbędnych, przestarzałych aktualizacji w łańcuchu aktualizacji Internet Explorera. Zrobiono to już w październikowym wydaniu poprawek bezpieczeństwa, jednak okazało się, że agent Windows Update okazał się sprytniejszy od programistów i nie dał się zwieść tą sztuczką – u większości użytkowników problem nie tylko nie zniknął, ale jeszcze się zaostrzył.

W listopadowej edycji poprawek podjęto kolejną próbę z unieważnieniem starych poprawek, ale i ta się nie udała. W grudniu więc oprócz unieważniania kolejnych łatek, zdecydowano się wprowadzić zmiany w logice mechanizmu zastępowania. Niestety jednak problem wciąż pozostał nierozwiązany – pisał kilka dni po wydaniu łatek Doug Neal, przyznając, że dzieli z użytkownikami frustrację wynikającą z niemożliwości rozwiązania tego problemu przez Microsoft.

Dopiero najnowsza, styczniowa runda poprawek rozwiązała problem z SVCHOST. W oficjalnym oświadczeniu Dustin Childs, menedżer Microsoft Trustworthy Computing Group, poinformował, że przestarzałe aktualizacje Internet Explorera został zastąpione nowszymi. Pozwoliło to skrócić czas aktualizacji Windows Update, zwiększyło wydajność Windows XP i w żaden sposób nie zagraża bezpieczeństwu użytkowników.

Biorąc pod uwagę to, że już od 8 kwietnia 2014 Windows XP nie otrzyma żadnych nowych łatek, to naprawdę ładny gest ze strony Microsoftu, by naprawić niemal w ostatniej chwili tak dokuczliwą usterkę.

Rozwiązanie problemu

Aby zmusić agenta Windows Update do działania we własnej instancji SVCHOST, którą łatwo później zabić z poziomu Menedżera zadań, należy w konsoli Windows (CMD.EXE) wydać polecenie:

sc config wuauserv type= own

Następnie należy pobrać ostatnią zbiorczą poprawkę do Internet Explorera, dostępną tutaj

r   e   k   l   a   m   a
© dobreprogramy
r   e   k   l   a   m   a
r   e   k   l   a   m   a

Komentarze

r   e   k   l   a   m   a
r   e   k   l   a   m   a
Czy wiesz, że używamy cookies (ciasteczek)? Dowiedz się więcej o celu ich używania i zmianach ustawień.
Korzystając ze strony i asystenta pobierania wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.