Inleiding
In dit document worden de meest voorkomende oorzaken van softwarestrijd bij crashes uitgelegd en wordt de informatie beschreven die u moet verzamelen om problemen op te lossen. Als u een TAC-serviceverzoek opent voor een software-gedwongen crash, is de informatie die u moet verzamelen essentieel om het probleem op te lossen.
Voorwaarden
Vereisten
Lezers van dit document dienen kennis te hebben van deze onderwerpen:
Gebruikte componenten
Dit document is niet beperkt tot specifieke software- en hardware-versies.
De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u de potentiële impact van elke opdracht begrijpen.
Conventies
Raadpleeg Cisco Technical Tips Conventions (Conventies voor technische tips van Cisco) voor meer informatie over documentconventies.
Een software-geforceerde crash treedt op wanneer de router een ernstige, onherstelbare fout detecteert en zichzelf herlaadt zodat het geen beschadigde gegevens overbrengt. Een grote meerderheid van software-gedwongen crashes wordt veroorzaakt door Cisco IOS® softwarebugs, hoewel sommige platforms (zoals de oude Cisco 4000) een hardwareprobleem kunnen melden als een software-gedwongen crash.
Als u de router niet hebt gedraaid of handmatig opnieuw hebt geladen, geeft uitvoer van de opdracht show version dit weer:
Router uptime is 2 days, 21 hours, 30 minutes
System restarted by error - Software-forced crash, PC 0x316EF90 at 20:22:37 edt
System image file is "flash:c2500-is-l.112-15a.bin", booted via flash
Als u de uitvoer van een opdracht voor showversies van uw Cisco-apparaat hebt, kunt u Cisco CLI Analyzer (geregistreerde klanten) gebruiken om potentiële problemen en oplossingen weer te geven.
Mogelijke oorzaken
In deze tabel worden de mogelijke redenen voor softwaregeforceerde crashes uitgelegd:
Reden |
Toelichting |
Uitgangspennen van Watchdog |
De processor gebruikt timers om oneindig lange loops te voorkomen en zorgt ervoor dat de router niet meer reageert. Bij normaal gebruik worden deze timers op regelmatige tijdstippen door de CPU opnieuw ingesteld. Wanneer u dit niet doet, wordt het systeem opnieuw geladen. Watchdog timeouts die worden gemeld als software-gedwongen crashes zijn software-gerelateerd. Raadpleeg Problemen oplossen Watchdog Timeouts voor informatie over andere soorten horlogehond timeouts. Het systeem zat vast in een lus voor de herlading. Daarom is het stackspoor niet noodzakelijk relevant. U kunt dit type software-geforceerde crash herkennen in deze lijnen van de consolelogboeken: %SYS-2-WATCHDOG: Process aborted on watchdog timeout, process = Exec
and
*** System received a Software forced crash ***
signal = 0x17, code = 0x24, context= 0x60ceca60
|
Laag geheugen |
Wanneer een router te laag op geheugen loopt, kan het zich uiteindelijk herladen en het melden als een software-geforceerde crash. In dit geval verschijnen er foutmeldingen met betrekking tot de geheugentoewijzing in de consolelogboeken: %SYS-2-MALLOCFAIL: Memory allocation of 734 bytes failed from 0x6015EC84,
pool Processor, alignment 0 |
Corrupte software-image |
Op het tijdstip van opstarten kan een router detecteren dat een Cisco IOS-softwareafbeelding beschadigd is, de gecomprimeerde controlesom voor het beeld teruggeven is onjuist bericht en proberen te herladen. In dit geval wordt het voorval gemeld als een software-geforceerde crash. Error : compressed image checksum is incorrect 0x54B2C70A
Expected a checksum of 0x04B2C70A
*** System received a Software forced crash ***
signal= 0x17, code= 0x5, context= 0x0
PC = 0x800080d4, Cause = 0x20, Status Reg = 0x3041f003
Dit kan worden veroorzaakt door een Cisco IOS-softwareafbeelding die daadwerkelijk is beschadigd tijdens de overdracht naar de router. In dit geval kunt u een nieuwe afbeelding op de router laden om het probleem op te lossen. [Raadpleeg voor een ROMMON-herstelmethode voor uw platform de ROMmon-herstelprocedure voor Cisco 7200, 7300, 7400, 7500, RSP7000, Catalyst 5500 RSM, uBR7100, uBR7200, uBR10000 en 12000 Series routers.] Deze kan ook worden veroorzaakt door defecte geheugenhardware of door een softwarebug. |
Andere fouten |
De fouten die crashes veroorzaken worden vaak gedetecteerd door de processor hardware, die automatisch speciale fout-behandelingscode in de ROM monitor roept. De ROM-monitor identificeert de fout, drukt een bericht af, slaat informatie op over de fout en start het systeem opnieuw op. Er zijn crashes waarin dit niet kan gebeuren (zie Watchdog timeouts), en er zijn crashes waarin software het probleem detecteert en de crashdump functie roept. Dit is een echte 'software-forced' crash. Op Power PC-platforms is "software-forced crash" niet de reden voor het opnieuw opstarten van het programma wanneer de crashdump functie wordt aangeroepen - in ieder geval tot nog maar kort geleden. Op deze platforms (voorafgaand aan Cisco IOS-softwarerelease 12.2(12.7)) worden deze aangemerkt als "SIGTRAP"-uitzonderingen. In alle andere opzichten zijn SIGTRAP's en SFC's hetzelfde. |
Problemen oplossen
Softwaregeforceerde crashes worden doorgaans veroorzaakt door Cisco IOS-softwarebugs. Als er foutmeldingen met betrekking tot geheugentoewijzing in de logbestanden aanwezig zijn, zie Geheugenproblemen oplossen.
Als u geen foutmeldingen ziet met betrekking tot de geheugentoewijzing en u de router na de geforceerde crash niet handmatig opnieuw hebt geladen of elektrisch hebt gedraaid, is de beste tool die u kunt gebruiken de Cisco CLI Analyzer (alleen geregistreerde klanten) om te zoeken naar een bekend bijpassend bug-id. Dit gereedschap bevat de functionaliteit van het oude stackdecoder-gereedschap.
Voorbeeld:
-
Verzamel de output van show stack van de router.
-
Ga naar de tool Cisco CLI Analyzer (alleen geregistreerde klanten).
-
Selecteer Stack weergeven in het keuzemenu.
-
Plakt in de uitvoer die u hebt verzameld.
-
Klik op Verzenden.
Als de gedecodeerde uitvoer van de opdracht show stack overeenkomt met een bekend softwarebug, ontvangt u de bug-ID's van de meest waarschijnlijke softwarebugs die de software-geforceerde crash kunnen hebben veroorzaakt.
-
Klik op de bug ID hyperlinks om extra bug details te bekijken van de Cisco Bug Toolkit (alleen geregistreerde klanten) die u kan helpen om de juiste bug ID match te bepalen.
Wanneer u een bug-id hebt geïdentificeerd die overeenkomt met uw fout, raadpleegt u het veld "vast" om de eerste Cisco IOS-softwareversie te bepalen die de oplossing voor het bug bevat.
Als u niet zeker weet wat de bug-id is, of welke Cisco IOS-softwareversie de oplossing voor het probleem bevat, upgrade dan uw Cisco IOS-software naar de nieuwste versie in uw release-trein. Dit helpt omdat de nieuwste versie fixes bevat voor een groot aantal bugs. Zelfs als het probleem hiermee niet is opgelost, is de rapportage van bugs en het oplossingsproces eenvoudiger en sneller wanneer u de nieuwste versie van de software hebt.
Als u, nadat u de Cisco CLI Analyzer hebt gebruikt, een bug vermoedt of positief heeft geïdentificeerd die onopgelost blijft, raden we u aan een TAC-serviceverzoek te openen om extra informatie te bieden om de bug te helpen oplossen, en voor een sneller bericht wanneer de bug uiteindelijk is opgelost.
Configuratieprocedures
Als het probleem wordt geïdentificeerd als een nieuwe softwarebug, kan een Cisco TAC engineer vragen dat u de router configureert om een kerndump te verzamelen. Soms is een core dump nodig om te bepalen wat er gedaan kan worden om de software bug te repareren.
Om bruikbaarder informatie te verzamelen in de kern dump, raden we u aan de verborgen debug sanity opdracht te gebruiken. Dit zorgt ervoor dat elke buffer die in het systeem wordt gebruikt, aan gezond verstand wordt getoetst wanneer hij wordt toegewezen en wanneer hij wordt vrijgemaakt. De opdracht debug sanity moet worden verstrekt in de geprivilegieerde EXEC-modus (inschakelen) en heeft betrekking op een bepaalde CPU, maar heeft geen significante invloed op de functionaliteit van de router. Als u de controle van de gezondheid wilt uitschakelen, gebruikt u de opdracht Niet debug-gezond leven, geprivilegieerd EXEC.
Voor routers die 16 MB of minder hoofdgeheugen hebben, kunt u het Trivial File Transfer Protocol (TFTP) gebruiken om de kerndump te verzamelen. Het wordt aanbevolen om File Transfer Protocol (FTP) te gebruiken als de router meer dan 16MB hoofdgeheugen heeft. Gebruik de configuratieprocedures in deze sectie. Raadpleeg ook Core Dumps maken.
Voltooi deze stappen om uw router te vormen:
-
Configureer de router met de opdracht terminal configureren.
-
Type uitzondering dump n.n.n, waar n.n.n.n het IP-adres is van de externe Trivial File Transfer Protocol (TFTP)-serverhost.
-
Sluit de configuratiemodus.
Configuratieprocedure voor TFTP-serverhost
Voltooi de volgende stappen om een TFTP-serverhost te configureren:
-
Maak een bestand onder de map /tftpboot op de externe host met behulp van een editor naar keuze. De bestandsnaam is de Cisco router hostname-core.
-
Voor UNIX systemen, verander de toestemmingswijze van het "hostname-core"dossier om globaal compatibel te zijn (666). U kunt de TFTP-instelling controleren met de opdracht copy running-config tftp op dat bestand.
-
Zorg ervoor dat je meer dan 16 MB vrije schijfruimte hebt onder /tftpboot.
Als het systeem crasht, maakt de opdracht Exception dump de uitvoer naar het bovenstaande bestand. Als de router meer dan 16 MB hoofdgeheugen heeft, gebruik dan File Transfer Protocol (FTP) of Remote Copy Protocol (RCP) om de kern te dumpen. Voor de router, vorm dit:
exception protocol ftp
exception dump n.n.n.n
ip ftp username
ip ftp password
ip ftp source-interface
exception core-file
Wanneer u een core dump hebt verzameld, uploadt u deze naar ftp://ftp-sj.cisco.com/incoming (in UNIX, type pftp ftp-sj.cisco.com en dan cd inkomend), brengt u de eigenaar op de hoogte van uw case en voegt u de bestandsnaam toe.
Informatie die moet worden verzameld als u een TAC-serviceaanvraag opent
Als u nog steeds assistentie nodig hebt nadat u de bovenstaande stappen voor probleemoplossing hebt gevolgd en u een serviceverzoek wilt maken met Cisco TAC, zorg dan dat u de volgende informatie bevat: |
- toon technisch-steun output - de output van het show technisch-steun bevel geeft informatie over de huidige staat van de router, en ook zeer belangrijke informatie die door de router vóór een neerstorting wordt opgeslagen.
- De logboeken van de console - de consolelogboeken, vaak uit aan een syslogserver worden opgeslagen, kunnen waardevolle informatie over de gebeurtenissen verstrekken die op de router vóór een neerstorting die voorkomen. Deze aanwijzingen zijn vaak de belangrijkste informatie die je kunt verzamelen.
- crashinfo-bestand (indien aanwezig) - Cisco raadt u aan een Cisco IOS-softwarerelease te gebruiken die de crashinfo-functie ondersteunt om problemen met succes op te lossen. Hiervoor moet de versie voldoen aan de andere behoeften van uw netwerk. Zie Informatie ophalen uit het Crashinfo-bestand of gebruik de Software Advisor (alleen geregistreerde klanten)-tool om een Cisco IOS-softwareversie te vinden die de crashinfo-functie ondersteunt. Een mogelijke bonus is dat als u een oudere versie van Cisco IOS-software hebt, de nieuwere IOS-softwarereleases die deze functie ondersteunen uw bug al kunnen laten herstellen.
Als u informatie aan uw serviceaanvraag wilt toevoegen, uploadt u deze via de TAC Service Request Tool (alleen geregistreerde klanten). Als u geen toegang hebt tot de TAC Service Request Tool, kunt u de informatie in een e-mailbijlage verzenden naar attach@cisco.com met uw casenummer in de onderwerpregel of in uw bericht. Waarschuwing: Laad de router niet handmatig opnieuw of stroomkringloop voordat u de bovenstaande informatie verzamelt, indien mogelijk, aangezien dit kan leiden tot het verlies van belangrijke informatie die nodig is om de basisoorzaak van het probleem te bepalen. |
Gerelateerde informatie