Introduction
Ce document explique les causes les plus fréquentes des incidents logiciels, et décrit les informations que vous devez collecter afin d'effectuer le dépannage. Si vous ouvrez une demande de services TAC d'un incident logiciel, les informations que vous serez invité à collecter seront essentielles pour résoudre le problème.
Conditions préalables
Exigences
Les lecteurs de ce document devraient avoir connaissance des sujets suivants :
Composants utilisés
Ce document n'est pas limité à des versions de matériel et de logiciel spécifiques.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.
Conventions
Pour plus d'informations sur les conventions utilisées dans ce document, reportez-vous à Conventions relatives aux conseils techniques Cisco.
Une panne logicielle se produit lorsque le routeur détecte une erreur grave et irrécupérable et se recharge de lui-même afin de ne pas transmettre de données corrompues. La grande majorité des pannes logicielles sont causées par des bogues logiciels Cisco IOS®, bien que certaines plates-formes (comme l'ancien Cisco 4000) puissent signaler un problème matériel comme une panne logicielle.
Si vous n'avez pas mis le routeur hors tension puis sous tension ou rechargé manuellement, le résultat de la commande show version affiche ceci :
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
Si vous disposez de la sortie d'une commande show version de votre périphérique Cisco, vous pouvez utiliser Cisco CLI Analyzer (pour les clients enregistrés uniquement) pour afficher les problèmes potentiels et les correctifs.
Causes possibles
Ce tableau explique les causes possibles des plantages logiciels :
Motif |
Explication |
Dépassements du délai du chien de garde |
Le processeur utilise des minuteurs pour éviter les boucles infinies et fait en sorte que le routeur cesse de répondre. En fonctionnement normal, le processeur réinitialise ces minuteurs à intervalles réguliers. Si vous ne le faites pas, le système est rechargé. Les délais d'expiration de la surveillance signalés comme des pannes logicielles forcées sont liés au logiciel. Référez-vous à Dépannage des délais de surveillance pour des informations sur d'autres types de délais de surveillance. Le système était bloqué dans une boucle avant le rechargement. Par conséquent, le suivi de la pile n'est pas nécessairement pertinent. Vous pouvez reconnaître ce type de plantage logiciel forcé dans les lignes suivantes des journaux de console : %SYS-2-WATCHDOG: Process aborted on watchdog timeout, process = Exec
and
*** System received a Software forced crash ***
signal = 0x17, code = 0x24, context= 0x60ceca60
|
Mémoire faible |
Lorsqu’un routeur manque de mémoire, il peut se recharger et le signaler comme une panne logicielle forcée. Dans ce cas, les messages d'erreur d'échec d'allocation de mémoire apparaissent dans les journaux de la console : %SYS-2-MALLOCFAIL: Memory allocation of 734 bytes failed from 0x6015EC84,
pool Processor, alignment 0 |
Image logicielle corrompue |
Au moment du démarrage, un routeur peut détecter qu’une image du logiciel Cisco IOS est corrompue, renvoyer le message compressé « checksum is incorrect » et tenter de recharger l’image. Dans ce cas, l'événement est signalé comme une panne logicielle forcée. 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
Cela peut être dû à une image du logiciel Cisco IOS qui a été endommagée lors du transfert vers le routeur. Dans ce cas, vous pouvez charger une nouvelle image sur le routeur pour résoudre le problème. [Pour une méthode de récupération ROMMON pour votre plate-forme, référez-vous à Procédure de récupération ROMmon pour les routeurs des gammes Cisco 7200, 7300, 7400, 7500, RSP7000, Catalyst 5500 RSM, uBR7100, uBR7200, uBR10000 et 12000.] Elle peut également être causée par un matériel de mémoire défectueux ou par un bogue logiciel. |
Autres défauts |
Les erreurs qui provoquent des pannes sont souvent détectées par le matériel du processeur, qui appelle automatiquement un code spécial de gestion des erreurs dans le moniteur ROM. Le moniteur de ROM identifie l'erreur, imprime un message, enregistre les informations sur la pann, et relance le système. Il y a des pannes dans lesquelles rien de cela ne peut se produire (voir Délais de surveillance), et il y a des pannes dans lesquelles le logiciel détecte le problème et appelle la fonction de vidage. Il s'agit d'un véritable crash « forcé par le logiciel ». Sur les plates-formes Power PC, « crash forcé par logiciel » n'est pas la raison de redémarrage imprimée lorsque la fonction crashdump est appelée - du moins jusqu'à très récemment. Sur ces plates-formes (antérieures à la version 12.2(12.7) du logiciel Cisco IOS), ces exceptions sont appelées « SIGTRAP ». De toutes les autres manières, les SIGTRAP et les SFC sont identiques. |
Dépannage
Les pannes logicielles forcées sont généralement causées par des bogues du logiciel Cisco IOS. Si des messages d'erreur d'échec d'allocation de mémoire sont présents dans les journaux, consultez Dépannage des problèmes de mémoire.
Si vous ne voyez pas de messages d'erreur d'échec d'allocation de mémoire et que vous n'avez pas rechargé ou mis sous tension manuellement le routeur après la panne logicielle forcée, le meilleur outil que vous pouvez utiliser est Cisco CLI Analyzer (clients enregistrés uniquement) pour rechercher un ID de bogue correspondant connu. Cet outil intègre les fonctionnalités de l'ancien outil Stack Decoder.
Exemple :
-
Collectez le résultat de la commande show stack du routeur.
-
Accédez à l'outil Cisco CLI Analyzer (clients enregistrés uniquement).
-
Sélectionnez show stack dans le menu déroulant.
-
Collez le résultat que vous avez collecté.
-
Cliquez sur Submit.
Si la sortie décodée de la commande show stack correspond à un bogue logiciel connu, vous recevrez les ID de bogue des bogues logiciels les plus probables qui auraient pu causer le plantage forcé du logiciel.
-
Cliquez sur les liens hypertexte de l'ID de bogue pour afficher des détails supplémentaires sur le bogue de Cisco Bug Toolkit (clients enregistrés uniquement) qui peuvent vous aider à déterminer la correspondance correcte de l'ID de bogue.
Lorsque vous avez identifié un ID de bogue qui correspond à votre erreur, reportez-vous au champ « corrigé » pour déterminer la première version du logiciel Cisco IOS qui contient le correctif pour le bogue.
Si vous n'êtes pas certain de l'ID de bogue ou de la version du logiciel Cisco IOS qui contient le correctif pour le problème, mettez à niveau votre logiciel Cisco IOS vers la dernière version de votre catégorie de versions. Cela est utile car la dernière version contient des correctifs pour un grand nombre de bogues. Même si cela ne résout pas le problème, le rapport de bogue et le processus de résolution sont plus simples et plus rapides lorsque vous disposez de la dernière version du logiciel.
Si, après avoir utilisé Cisco CLI Analyzer, vous suspectez ou avez identifié un bogue qui n'est toujours pas résolu, nous vous recommandons d'ouvrir une demande de service TAC afin de fournir des informations supplémentaires pour aider à résoudre le bogue et pour une notification plus rapide lorsque le bogue est finalement résolu.
Procédures de configuration
Si le problème est identifié comme un nouveau bogue logiciel, un ingénieur du centre d'assistance technique Cisco peut vous demander de configurer le routeur pour collecter un vidage de mémoire. Un core dump est parfois nécessaire pour identifier ce qui peut être fait pour corriger le bogue logiciel.
Pour collecter des informations plus utiles dans le core dump, nous vous recommandons d'utiliser la commande hidden debug sanity. Cela entraîne la vérification de la santé de chaque tampon utilisé dans le système lors de son allocation et de sa libération. La commande debug sanity doit être émise en mode d'exécution privilégié (mode enable) et implique une partie du CPU, mais n'affecte pas de manière significative la fonctionnalité du routeur. Si vous voulez désactiver le contrôle de validité, utilisez la commande d'exécution privilégiée undebug sanity.
Pour les routeurs disposant de 16 Mo ou moins de mémoire principale, vous pouvez utiliser le protocole TFTP (Trivial File Transfer Protocol) pour collecter le vidage du coeur de réseau. Il est recommandé d'utiliser le protocole FTP (File Transfer Protocol) si le routeur dispose de plus de 16 Mo de mémoire principale. Suivez les procédures de configuration décrites dans cette section. Vous pouvez également vous reporter à la section Création de vidages principaux.
Complétez ces étapes pour configurer votre routeur :
-
Configurez le routeur avec la commande configure terminal.
-
Tapez exception dump n.n.n.n, où n.n.n.n est l'adresse IP de l'hôte du serveur TFTP (Trivial File Transfer Protocol) distant.
-
Quittez le mode de configuration.
Procédure de configuration d’hôte de serveur TFTP
Complétez ces étapes pour configurer un hôte de serveur TFTP :
-
Créez un fichier dans le répertoire /tftpboot de l'hôte distant à l'aide d'un éditeur de votre choix. Le nom de fichier est le nom d’hôte-coeur du routeur Cisco.
-
Sur les systèmes UNIX, modifiez le mode d'autorisation du fichier « hostname-core » pour qu'il soit globalement compatible (666). Vous pouvez vérifier l'installation de TFTP à l'aide de la commande copy running-config tftp sur ce fichier.
-
Vérifiez que vous disposez de plus de 16 Mo d'espace disque libre sous /tftpboot.
Si le système tombe en panne, la commande exception dump crée sa sortie dans le fichier ci-dessus. Si le routeur dispose de plus de 16 Mo de mémoire principale, utilisez le protocole FTP (File Transfer Protocol) ou le protocole RCP (Remote Copy Protocol) pour obtenir le vidage du coeur. Sur le routeur, configurez ceci :
exception protocol ftp
exception dump n.n.n.n
ip ftp username
ip ftp password
ip ftp source-interface
exception core-file
Une fois que vous avez collecté un core dump, téléchargez-le sur ftp://ftp-sj.cisco.com/incoming (sous UNIX, tapez pftp ftp-sj.cisco.com puis cd incoming), et informez le propriétaire de votre cas et incluez le nom du fichier.
Informations à collecter si vous ouvrez une demande de service TAC
Si vous avez toujours besoin d'aide après avoir suivi les étapes de dépannage ci-dessus et que vous souhaitez créer une demande de service avec le TAC Cisco, veillez à inclure les informations suivantes : |
- show technical-support output : le résultat de la commande show technical-support fournit des informations sur l'état actuel du routeur, ainsi que des informations clés stockées par le routeur avant une panne.
- Journaux de console : les journaux de console, souvent enregistrés sur un serveur Syslog, peuvent fournir des informations précieuses sur les événements qui se produisent sur le routeur avant une panne. Ces indices sont souvent les informations les plus importantes que vous puissiez collecter.
- fichier crashinfo (le cas échéant) : Cisco recommande d'utiliser une version du logiciel Cisco IOS prenant en charge la fonction crashinfo afin de résoudre les problèmes. Pour cela, la version doit répondre aux autres besoins de votre réseau. Reportez-vous à la section Récupération d'informations à partir du fichier Crashinfo ou utilisez l'outil Software Advisor (clients enregistrés uniquement) pour localiser une version du logiciel Cisco IOS qui prend en charge la fonctionnalité crashinfo. Un avantage potentiel est que si vous avez une version plus ancienne du logiciel Cisco IOS, les versions plus récentes du logiciel IOS qui prennent en charge cette fonctionnalité pourraient déjà avoir votre bogue corrigé.
Afin de joindre des informations à votre demande de service, téléchargez-les via l'outil de demande de service TAC (clients enregistrés uniquement) . Si vous ne pouvez pas accéder à l'outil de demande de service TAC, vous pouvez envoyer les informations dans une pièce jointe à un e-mail à attach@cisco.com avec votre numéro de dossier dans la ligne d'objet de votre message. Attention : si possible, ne rechargez pas manuellement le routeur ni ne le mettez hors tension puis sous tension avant de collecter les informations ci-dessus, car cela peut entraîner la perte d'informations importantes nécessaires pour déterminer la cause première du problème. |
Informations connexes