Opercis rendszerek vimia 219 Hibakeress Windowson dr Micskei
Operációs rendszerek (vimia 219) Hibakeresés Windowson dr. Micskei Zoltán http: //mit. bme. hu/~micskeiz Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék
DEMO Hozzáférési hiba megtalálása § Process Monitor használata: o Tools / Count occurrences: Result o Tools / File Summary 2
Hiba esetén § Mi történt pontosan? o Ki okozta? Mikor? Miért? o Feljegyzések készítése (képernyőkép, lépések…) o Tudjuk reprodukálni? § Információ begyűjtése o Hibanaplók (alkalmazás sajátja, rendszer) o Hibakereső eszközök (sysinternals, support tools…) § Próbáljuk megérteni, mi történik 3
Információ gyűjtés: Eseménynapló 4
Esemény részletei 5
Eventlog Online help § Keresés a forrás + azonosító párosra § Gyakori hibák esetén megoldás is: 6
Információ gyűjtés folytatása § További naplófájlok: o C: WindowsSystem 32Log. Files o Alkalmazás-specifikus könyvtárak § Keresés hibakód alapján o http: //support. microsoft. com (KB cikkek) o http: //www. eventid. net/ 7
MS Knowledge Base cikkek § Hibajelenség § Megoldások: o Hotfix o Workaround o Ismert hiba o… 8
Hibakeresés eszközei Ha a hibajelzésből/naplóból nem egyértelmű, hogy mi a gond: § Mi fut pontosan, mit használ? o Process Explorer § Mit csinál pontosan? o Process Monitor § Mit kommunikál a hálózaton? o Protokoll analizátor, pl. Wireshark § Mennyi erőforrást használ? o Performance Monitor, Resource Monitor 9
Hibakeresés eszközei (2) § Előbbiek passzív eszközök o Néha csak ezt lehet (pl. éles szerver) Ha be is lehet avatkozni („intrusive”): § Memória dump elmentése o Pl. sysinternals procdump § Debugger csatlakoztatása o Pl. Win. Dbg 10
Esettanulmány 1 IISEXPRESS: „The data is invalid”
Környezet: IIS Express § IIS Express: web szerver fejlesztői változata § Mérés labor 4: o Példa webszerver HTTP kérésekhez o Windows 7 virtuális gépben § Félévkezdés előtt: minden megy a o saját gépemen, o végleges környezetben is 12
„Az előbb még ment minden…” § Utolsó utáni ellenőrzés: o Virtuális gép állapotmentésének eldobása után „The data is invalid. ” 13
Hiba részletei § /trace: error kapcsoló esetén is ugyanez § Láthatóan konfigurációs hiba o Még a trace beállításokat sem tudja feldolgozni o Próbáljuk a beépített fájllal o C: Program FilesIIS Express>iisexpress. exe /config: "c: Program FilesIIS ExpressconfigtemplatesPersonal. Web. Serverapplicationhost. config" /trace: error o Eredmény ugyanez, semmi részlet 14
Hiba részletei (2) § Kimerítő keresés az indítási módok között o iisexpress. exe-nek nem maradt több kapcsolója § appcmd. exe: parancssori felület § Végre van egy hibakódunk! o gg: 8007000 d főleg Windows Update hibák o gg: 8007000 d iis web. config hiba, nem telepített modulok | nálunk ez nem lehet, hisz ez a config eddig ment 15
IIS újratelepítés (cheat: ) § Quick & dirty megoldás: IIS újratelepítés o Így működik ugyanazon a VM-en, ugyanaz a webhely § Közvetlen probléma megoldva, o de nem tudjuk mi volt a gond… o jó lenne tudni : -) § Hasonlítsuk össze a jó és a rossz állapotot! 16
Fájlok összehasonlítása Fájlok megegyeznek: o C: program filesiis express; DocumentsIISExpress; C: inetpub; . NET FWconfig 17
Registry összehasonlítása § HKEY_LOCAL_MACHINESoftware alatt megegyezik § IIS szövegre keresve látszólag megegyezik a jó és a rossz VM registry tartalma § Nézzük akkor mit csinál az iisexpress. exe 18
Futások összehasonlítása § Fájl, registry kérések elkapása (Process Monitor) § Események: 3090 (jó) vs. 1818 (rossz) § Nehéz meglátni a különbséget 19
Futások összehasonlítása (2) § Futás exportálása CSV-be § Operation, Path, Result mezők megtartása § 59 helyen különbözik, látszólag ugyanolyan visszatérési érték után tér el 20
Kifogytunk az ötletekből… § Vissza az elejére o Hátha ki lehet listázni a konfigurációt o Nézzük meg az appcmd. exe-t még egyszer C: Program FilesIIS Express>appcmd. exe list module ERROR ( message: Configuration error MODULE Filename: C: Program FilesIIS ExpressconfigschemaFX_schema. xml Line Number: 0 Description: Configuration file is not well-formed XML. ) 21
Nyertünk: FX_schema. xml § Mi van az FX_schema. xml-ben? § A fájl látszólag megvan, de csupa NUL a tartalma § (Snapshot eldobása közben sérült meg? ) 22
Esettanulmány 2 SQL Server Upgrade hiba
SQL Server upgrade § D: >setup. exe SKUUPGRADE=1 24
Hiba a telepítés során C: Program FilesMicrosoft SQL ServerMSSQL. 4 Reporting ServicesReport. Serverrssrvpolicy. config 25
A fájl pedig létezik… 26
És van hozzá jogosultságunk is… ? ? § A Rendszergazda felhasználó nevében ment a telepítő § De a hibaüzenet szerint jogosultsági gond lehet 27
Process Monitor § Pár százezer esemény közül kikeressük a relevánsakat: § Ki látja mi a hiba? 28
Tanulság § Aljas hiba volt, mert megtévesztő az eredeti hibaüzenet… § Ne higgyünk a hibaüzeneteknek § Vannak eszközök, amivel meg lehet nézni, hogy mi történik a háttérben! 29
Esettanulmány 3 NAME NOT FOUND
„File not found” hiba 31
Az alkalmazás működése § Cél: adott könyvtár szétmásolása sok kliensre o Tipikusan virtuális gépek (5 -10 GB) § Nagyobb fájlokat multicast copy másolja (UFTP) egy ideiglenes könyvtárba § Végén SMB megosztáson keresztül áthelyezi a végleges helyére 32
Az alkalmazás 33
Alkalmazás saját naplója --------------------2009. 22. 11: 21: 14: Category: Info, Recursive. Copy. Folders, Copy. Image Title: Info A saját részletes Message: Unicast copied IBMLaborokteszt-imagevmware-2. log (72 k. B) to itec 1 Severity: Information naplóban is csak --------------------ugyanaz a hiba volt 2009. 22. 11: 21: 14: Category: Info, Recursive. Copy. Folders, Copy. Image Title: Info Message: Source file "\itec 1c$tempuftpWindows XP Professional-000001 s 001. vmdk" not found, multicast copy was unsuccessful on host itec 1. Severity: Information --------------------2009. 22. 11: 21: 14: Category: Recursive. Copy. Folders, Copy. Image Title: Tracer. Exit Message: End Trace: Activity '814 d 6 f 3 a-4604 -475 f-8 ab 3 -7 ff 6154 b 386 b' in method 'Image. Distributer. Service. Recursive. Copy. Folders' at 17877593865 ticks (elapsed time: 6, 018 seconds) Severity: Stop -------------------- 34
A fájl hozzáférés Process Monitorban A fájlt Explorerben megnézve pedig ott van, akkor miért ez az eredmény? 35
NTFS szintű naplózás beállítása (SACL) Bárki, bármit csinál az adott könyvtárban 36
Bejegyzés a biztonsági naplóban Melyik folyamat Milyen típusú hozzáférés 37
Fájl hozzáférések sorrendje Megoldás: § Az uftd. exe még írni akarta és fogta a fájlt az Image. Distributer hozzáférése előtt 38
Tanulság § Tudni kell, hogy intézi az OS az I/O kéréseket § Ismerni kell az OS részletes naplózási lehetőségeit 39
Ha nagy baj van
Ha nagy baj van 41
42
Blue Screen of Death (BSOD) § Becsületes neve: STOP error, bug check o Azonosítás: STOP error code § Ha nem lát már más kiutat a rendszer o Nagyobb baj elkerülése § Nem rossz dolog, ne a hírnököt gyűlöljük § Ke. Bug. Check. Ex függvény (Bugcheck. h) 43
Példa bug check (MSDN) Kód Név Paraméterek listája (segít a hibát értelmezni) Javasolt megoldások 44
Crash dump § Memória részlet és CPU állapot elmentése § Lapozófájlba írja ki ideiglenesen § Fajtái: o Small memory dump o Kernel memory dump o Complete memory dump o Automatic memory dump 45
Crash dump elemzése § Microsoft Error Reporting o MS szerverének elküldi o Elemzés, összehasonlítás o Visszajelzés, esetleg megoldás § Nir. Soft (Nir Sofer): Blue. Screen. View o http: //www. nirsoft. net o Meghajtók, hibakódok 46
Crash dump elemzése (haladó) § Saját magunk: o Win. Dbg o !analyze -v parancs o Hibázó modul azonosítása 47
DEMO Blue Screen of Death (BSOD) § Hibajelentés küldése (Error reporting) § Memory dump készítése § Minidump elemzése Win. Dgb-ben 48
Speciális módú indítás (pre Windows 8) § F 8 a Windows logó előtt 49
Speciális módú indítási opciók § Safe mode (Csökkentett mód) o csak a beépített meghajtók indulnak el o csak a legszükségesebb szolgáltatások § Safe mode with Networking o hálózat is van § Last Known Good Configuration 50
Speciális módú indítás (post Windows 8) § Áttervezték a felületet és az indítás menetét § (Túl gyorsan indulnak a modern gépek: ) 51
Boot Configuration Database § GUI eszköz: msconfig. exe 52 DEMO
Esettanulmány 4 csrss BSOD
Esettanulmány: csrss BSOD § Megtörtént eseményeken alapul § Hibajelenség: o Laborgép folyamatosan újraindul o Néha a bejelentkezésig még eljut 54
Első lépések § Automatikus újraindítás kikapcsolása § STOP hibakód így kiderül: o C 000021 A, {e 2 a 5 ee 98, c 0000005, 7 c 9106 c 3, 69 ec 24} o MSDN dokumentáció: Bug Checks • 0 x. C 000021 A: STATUS_SYSTEM_PROCESS_TERMINATED 55
Crash dump megnézése § Minidump készült automatikusan o C: WindowsMinidump csrss. exe halt meg Nem látjuk, hogy mi vezetett a hibához. Miért? 56
Complete memory dump kiválasztása § Az adott gépen nem lehetett teljes memória dumpot választani § ? ? ? § Windows XP SP 2, 32 bit, 4 GB RAM o KB 274598 Complete memory dumps are not available on computers that have 2 or more gigabytes of RAM § Boot. ini: /Max. Mem=2000 segítségével a memória korlátozása 57
Complete memory dump analízise 1. EXCEPTION_RECORD: 0069 ec 08 -- (. exr 0 x 69 ec 08) Exception. Address: 7 c 9106 c 3 (ntdll!Rtl. Allocate. Heap+0 x 000001 da) Exception. Code: c 0000005 (Access violation) Exception. Flags: 0000 Problémát okozó Number. Parameters: 2 utasítás Parameter[0]: 00000001 Parameter[1]: 75 e 9193 e Attempt to write to address 75 e 9193 e 58
Complete memory dump analízise 1. STACK_TEXT: b 202 f 934 805 c 5 eee 0000004 c c 000021 a b 202 f 9 b 0 nt!Ke. Bug. Check. Ex+0 x 1 b b 202 f 970 80655401 0000004 c c 000021 a nt!Po. Shutdown. Bug. Check+0 x 5 c b 202 fb 28 80612 d 8 a c 000021 a 00000004 00000001 nt!Exp. System. Error. Handler+0 x 511 b 202 fcd 4 8061330 b c 000021 a 00000004 00000001 nt!Exp. Raise. Hard. Error+0 x 9 a b 202 fd 44 805413 fc c 000021 a 00000004 00000001 nt!Nt. Raise. Hard. Error+0 x 16 b b 202 fd 44 7 c 90 eb 94 c 000021 a 00000004 00000001 nt!Ki. Fast. Call. Entry+0 xfc 0069 ea 94 7 c 90 e 273 75 b 432 b 7 c 000021 a 00000004 ntdll!Ki. Fast. System. Call. Ret 0069 ea 98 75 b 432 b 7 c 000021 a 00000004 00000001 ntdll!Nt. Raise. Hard. Error+0 xc 0069 eaec 75 b 44 aea 0069 eb 14 75 b 468 b 1 0069 eb 1 c CSRSRV!Csr. Unhandled. Exception. Filter+0 xb 3 0069 eaf 4 75 b 468 b 1 0069 eb 1 c 00000001 0069 eb 1 c CSRSRV!Csr. Api. Request. Thread+0 x 4 d 4 0069 eb 1 c 7 c 9037 bf 0069 ec 08 0069 ffe 4 0069 ec 24 CSRSRV!_except_handler 3+0 x 61 0069 eb 40 7 c 90378 b 0069 ec 08 0069 ffe 4 0069 ec 24 ntdll!Execute. Handler 2+0 x 26 0069 ebf 0 7 c 90 eafa 0000 0069 ec 24 0069 ec 08 ntdll!Execute. Handler+0 x 24 0069 ebf 0 7 c 9106 c 3 0000 0069 ec 24 0069 ec 08 ntdll!Ki. User. Exception. Dispatcher+0 xe 0069 f 110 75 ea 2137 00160000009 c ntdll!Rtl. Allocate. Heap+0 x 1 da 0069 f 158 75 e 92 f 21 75 e 92 f 38 0000005 b 75 e 9 c 578 sxs!CSxs. Pointer. Base<CXMLNamespace. Manager: : CNamespace. Prefix, CSxs. Pointer<CXMLNamespace. Manager: : CNamespace. Prefix, CXMLNamespace. Manager: : CNamespace. Prefix: : ms_sz. Type. Name> >: : Hr. Allocate. Base+0 x 59 0069 f 3 dc 75 e 938 d 2 00188 e 10 00000005 sxs!CXMLNamespace. Manager: : On. Create. Node+0 x 12 e 0069 f 440 75 e 9435 f 00176 fd 8 00188 e 10 0000 sxs!CNode. Factory: : Create. Node+0 xa 3 0069 f 4 c 8 75 e 98 baa 00188 e 10 00000005 001884 e 8 sxs!XMLParser: : Run+0 x 2 fc 0069 f 834 75 e 99 a 0 f 001884 e 8 0016 af 78 001884 e 8 sxs!Sxsp. Incorporate. Assembly+0 x 8 b 8 0069 f 880 75 e 998 cd 001884 e 8 0000 0069 fde 0 sxs!Sxsp. Close. Manifest. Graph+0 x 98 0069 fd 1 c 75 b 5 a 5 ed 0069 fd 7 c 0069 fe 38 0069 ff 94 sxs!Sxs. Generate. Activation. Context+0 x 54 c 0069 fdbc 75 b 5 a 90 d 0000005 e 000006 e 8 0169 fde 0 basesrv!Base. Srv. Sxs. Create. Activation. Context. From. Struct+0 x 194 0069 fe 80 75 b 54 e 96 00000110 000006 e 8 0069 feec basesrv!Base. Srv. Sxs. Create. Process+0 x 160 0069 fed 0 75 b 44 a 47 000006 e 8 0069 ffd 8 00000005 basesrv!Base. Srv. Create. Process+0 xeb 0069 fff 4 00000000 CSRSRV!Csr. Api. Request. Thread+0 x 431 -, -’-@ Ez akar hibás memóriát foglalni Ki az az sxs modul? 59
Sx. S – Side by Side assemblies § Rendszer DLL-ekből különböző verziók tárolása o About Isolated Applications and Side-by-side Assemblies § Activation Context Creation flow o Create. Process/Create. Act. Ctx is called. o Create. Process/Create. Act. Ctx sends the message to CSRSS receives the message, creates the activation context o Once the activation context is created, CSRSS returns o Create. Process/Create. Act. Ctx proceeds. o The getaway from the flow above is: most work is done in CSRSS. exe. 60
Nyomon vagyunk § Nem okozhat az Sx. S újraindulást? § support. microsoft. com oldalon keresés: § The computer may restart when you add a manifest that has the Windows Vista extension to an. exe file or to a. dll file in Windows XP Service Pack 2 (SP 2) (KB 921337) o sxs. dll verzió a gépeken: 5. 1. 2600. 2180 (SP 2 -es) 61
Megoldás § KB 921337 hotfix telepítése csökkentett módban o Ez frissíti az sxs. dll-t § § Újraindítás… Reménykedés… Nincs BSOD… Örülünk 62
Összefoglalás Meg lehet oldani az összetett hibákat is § Mi kell hozzá: o Operációs rendszer ismerete o Debugger o Google, KB cikkek, dokumentáció o Kitartás & gyakorlás § Virtuális labor: Windows hibakeresés 63
További esettanulmányok § Mark Russinovich: Case of the Unexplained Presentations, webcasts http: //technet. microsoft. com/en-us/sysinternals/bb 963887. aspx 64
- Slides: 64