Questo documento spiega le cause di alcuni messaggi di errore relativi all'utilità di pianificazione del software Cisco IOS® e come risolverli. Questi messaggi non sono correlati a una piattaforma specifica. Possono apparire su tutte le piattaforme che supportano il software Cisco IOS.
Questi sono i messaggi trattati dal presente documento:
Se incontrate un "SCHED..." messaggio di errore non spiegato in questa pagina, usare il modulo di feedback in cima a questa pagina per informare Cisco.
Nessun requisito specifico previsto per questo documento.
Il documento può essere consultato per tutte le versioni software o hardware.
Fare riferimento a Cisco Technical Tips Conventions per ulteriori informazioni sulle convenzioni dei documenti.
L'utilità di pianificazione del software Cisco IOS, che fa parte del kernel del software Cisco IOS, gestisce tutti i processi nel sistema utilizzando una serie di code di processo che rappresentano ciascuno stato del processo. Le code contengono informazioni di contesto per i processi in tale stato. Elabora la transizione da uno stato all'altro man mano che l'utilità di pianificazione sposta il contesto da una coda di processi all'altra. Alcune code di elaborazione sono:
Coda inattiva: contiene i processi ancora attivi ma che attendono il verificarsi di un evento prima di essere eseguiti.
Coda inutilizzata: contiene i processi terminati, ma che devono essere recuperati prima di poter essere completamente rimossi dal sistema.
Code pronte: contiene i processi idonei all'esecuzione. Sono disponibili quattro code pronte, una per ogni priorità di processo. Quando un processo in esecuzione viene sospeso, lo scheduler riprende il controllo della CPU e utilizza un algoritmo per selezionare il processo successivo da una delle quattro code pronte.
Un processo può registrarsi per ricevere una notifica quando si verificano vari eventi sul router. Questo messaggio specifico viene visualizzato ogni volta che scade un timer registrato e il valore del timer rimane invariato dopo che il processo è stato eseguito due volte. Si tratta sempre di un problema relativo ai software cosmetici.
Questi messaggi sulla console indicano un problema di questo tipo:
%SCHED-3-STUCKMTMR: Sleep with expired managed timer 1C7410, time 0x1063F9C52 (00:00:00 ago). -Process= "IP SNMP", ipl= 6, pid= 44 -Traceback= 31BC79A 31BC9C0 323E130
Il processo in cui viene visualizzato questo messaggio di errore è una buona indicazione per restringere la causa di questi traceback. Nell'elenco vengono indicati i motivi più comuni per cui i messaggi vengono visualizzati:
Processo IP Simple Network Management Protocol (SNMP): questo messaggio può essere visualizzato durante la richiesta SNMP WriteNet:
%SCHED-3-STUCKMTMR: Sleep w/expired mgd timer 13AF58, time 0xBDBE878A (00:00:03 ago). -Process= "IP SNMP", ipl= 6, pid= 29 -Traceback= 313B218 313B5D2 3192A76 319EFEC 319F234 30FF17E 319F446 319F88E 30FEA70 3304C1E 33045F0 32F78E4 32F82AE 32F383E 32F7ABA 30FF19A %SYS-4-SNMP_WRITENET: SNMP WriteNet request. Writing current configuration to 146.61.55.230. %SYS-4-SNMP_WRITENET: SNMP WriteNet request. Writing current configuration to 146.61.10.20.
Le versioni precedenti del software Cisco IOS contenevano alcuni problemi relativi al polling di IP SNMP. Per risolvere il problema, aggiornare il software Cisco IOS alla versione 12.0 o 12.1 più recente. Questo è un messaggio cosmetico e non ci sono effetti collaterali negativi che potrebbero influire sul funzionamento del router (o sul processo IP SNMP).
Processo dei protocolli VINES (Virtual Integrated Network Service): questi traceback possono essere generati su un router configurato per VINES:
%SCHED-3-STUCKMTMR: Sleep w/expired mgd timer 6100606C, time 0x222DF318 (00:00:00 ago). -Process= "VINES Protocols", ipl= 6, pid= 60
I messaggi vengono visualizzati in modo casuale e non sembrano influire sulle prestazioni di VINES. Si verificano se VINES non ha eseguito l'elaborazione di un evento scaduto (quando il processore di sistema è molto caricato). Alla fine l'evento viene elaborato, ma non alla prima scadenza.
VINES utilizza i timer per l'elaborazione e la gestione dei servizi ARP (Address Resolution Protocol) VINES, delle sessioni IPC (Inter Processor Communication) e della ritrasmissione, dell'invecchiamento delle route e di alcuni servizi server.
Questi messaggi sono stati corretti nel software Cisco IOS versione 12.0S e 12.1.
Processo correlato a MPLS (Multi Protocol Label Switching): i traceback possono essere generati su un router configurato per MPLS:
%SCHED-3-STUCKMTMR: Sleep w/expired mgd timer 60C0E9B4, time 0x3952 (00:00:00 ago). -Process= "TDP Hello", ipl= 5, pid= 58 -Traceback= 600867F0 60086BB8 604390D4 60077E88 60077E74 %SCHED-3-STUCKMTMR: Sleep w/expired mgd timer 60CC2548, time 0x43006 (00:00:00 ago). -Process= "Tag Control", ipl= 5, pid= 56 -Traceback= 600867F0 60086BB8 60448320 604484F0 60077E88 60077E74
L'analisi dei loop di eventi per i processi di controllo Tag Distribution Protocol (TDP), TDP Hello e Tag mostra che i loop possono chiamare un processo process_wait_for_event specifico senza elaborare tutti i timer scaduti. I loop sono fissi per garantire che tutti i timer scaduti vengano elaborati prima della sospensione. Questo problema è stato risolto nelle ultime versioni del software Cisco IOS 12.0S e 12.1.
L'elenco dei processi in cui può essere visualizzato questo messaggio non è esaustivo. È sempre un messaggio cosmetico e, pertanto, non giustifica un aggiornamento del software Cisco IOS. Accertarsi di usare l'ultima versione del software Cisco IOS sul treno. Se il messaggio viene ancora visualizzato nell'ultima versione del software Cisco IOS disponibile sul sito Cisco.com per gli utenti registrati, contattare il supporto tecnico Cisco per aprire una richiesta. A questo punto, fornire un show log completo con i messaggi di errore e un show tech del router o dello switch su cui si è verificato il problema.
Questo messaggio indica che il processo indicato ha abbandonato il controllo 50 volte consecutive e che vi sono ancora eventi in sospeso da elaborare.
Questi messaggi sulla console indicano un problema di questo tipo:
%SCHED-3-THRASHING: Process thrashing on watched queue 'ARP queue' (count 54). -Process= "ARP Input", ipl= 5, pid= 6 -Traceback= 6020589C 60205BC4 60236520 601F4FD8 601F4FC4
Tali controlli mirano a determinare se un processo, per qualche motivo, non svolge il proprio lavoro. Il controllo di thrashing sulle code controllate (che è il messaggio problematico che segnala) controlla il numero di elementi nella coda. Se questo numero rimane invariato per un determinato numero di programmazioni, il messaggio viene stampato.
Alcune code hanno lunghezza limitata. Ciò significa che se il router è molto occupato, le code rimangono sempre al massimo. Di conseguenza, il codice di thrashing nell'utilità di pianificazione viene confuso e ritiene che queste code non siano state gestite. Il codice di thrashing ha determinato che il processo che avrebbe dovuto gestire la coda non stava svolgendo il proprio lavoro e stampa il messaggio di thrashing.
La programmazione è stata modificata nel codice software Cisco IOS successivo. Per verificare se le code sono state modificate, in modo da poter determinare se il processo è in corso o meno di sovrascrittura, l'utilità di pianificazione annota ogni volta che un elemento viene rimosso dalla coda e visualizza il messaggio di sovrascrittura solo se per un determinato periodo di tempo non viene eseguita alcuna rimozione.
Nella maggior parte dei casi, il messaggio di thrashing della coda è cosmetico.
Questi messaggi non sono sempre causati da un bug del software. Possono essere emessi in risposta a una domanda istantanea o sostenuta sul router. Messaggi persistenti o con valori maggiori possono indicare che è necessario rivedere il carico del traffico.
Nota: le modifiche al codice sono segnalate nell'ID bug Cisco CSCdj68470 (solo utenti registrati).
Questo messaggio viene visualizzato ogni volta che un processo riceve un evento che non sa come gestire. Ad esempio:
%SCHED-3-UNEXPECTEDEVENT: Process received unknown event (maj 10, min 0). -Process= "IP SNMP", ipl= 0, pid= 23 -Traceback= 602842B8 6017CFB8 6017CFA4
Le cause possibili sono diverse:
La causa più probabile è che un processo attivi direttamente un altro processo e passi al processo i numeri degli eventi principali e secondari. Se il processo di invio riattiva il processo errato, il processo di ricezione non è in grado di gestire i numeri di evento principali e secondari ricevuti. È possibile che il processo esegua l'azione errata se prevede un evento con numeri di evento principali e secondari corrispondenti oppure che stampi questo messaggio. Utilizzare l'output del comando show process per determinare i processi che potrebbero aver inviato una riattivazione diretta a un processo.
Un'altra possibile causa di questo problema è che un tecnico di sviluppo ha aggiunto il codice per la registrazione di un evento, ma non ha aggiunto il codice per la gestione dell'evento.
È possibile che una subroutine chiamata dal processo sia stata registrata per un nuovo evento, ma la registrazione dell'evento non è stata annullata prima della chiusura.
Questi messaggi sono sempre causati da un bug del software. In base al processo di gestione di un evento, è possibile riscontrare diversi bug nel software Cisco IOS.
Se il processo è uguale a Exec o a Virtual Exec, è molto probabile che si verifichino i problemi seguenti:
%SCHED-3-UNEXPECTEDEVENT: Process received unknown event (maj 80, min 0). -Process= "Exec", ipl= 0, pid= 20 -Traceback= 604A0D68 6049B400 6049C974 601B2F5C 601B338C 601CC384 601CC9E0 601F5628 602383EC 602383D8 or %SCHED-3-UNEXPECTEDEVENT: Process received unknown event (maj 80, min 0). -Process= "Virtual Exec", ipl= 0, pid= 2 -Traceback= 60479FA0 60474638 60476474 601B0E20 601B0A38 601E5088 601E5B08 601F0A54 60231324 60231310
Questo messaggio di errore è causato dal codice di debug che è stato lasciato accidentalmente in alcune versioni precedenti del codice. È ricomparso nella versione principale di Cisco IOS Software 12.0. È probabile che questo messaggio di errore venga visualizzato se TACACS è stato configurato e si esegue il comando show line sull'interfaccia della riga di comando (CLI) del router. Il messaggio di errore non influisce sulla funzionalità del router, quindi può essere considerato come un bug cosmetico. L'unico modo per eliminare questo messaggio di errore è aggiornare il software Cisco IOS a una versione successiva.
È necessario eseguire almeno il software Cisco IOS versione 12.0(11), 12.0(11)S o 12.1(2), in base al treno in circolazione. Tuttavia, se si verifica un altro bug, valutare l'opportunità di aggiornare il software Cisco IOS alla versione più recente disponibile per il treno corrispondente. Se il problema è ancora presente nell'ultima versione del software Cisco IOS, è possibile contattare il supporto tecnico Cisco per aprire un nuovo bug. A questo punto, preparare l'output completo del comando show log con i messaggi di errore e l'output del comando show version per decodificare i traceback.
Per ulteriori informazioni sul problema, fare riferimento all'ID bug Cisco CSCdp17107 (solo utenti registrati).
Questo messaggio viene visualizzato ogni volta che si tenta di eseguire la registrazione per un evento senza prima creare la struttura di dati per tale evento. Si tratta di un bug interno del software Cisco IOS. L'output è simile al seguente:
%SCHED-2-WATCH: Attempt to enqueue uninitialized watched queue (address 0). -Process= "Net Input", ipl= 0, pid= 29 -Traceback= 601B821C 60193428 604F59EC 604F6110 601C09F8 601934E0 6019304C 601A65E8 601A65D4
Questo tipo di messaggio di errore può essere visualizzato durante una richiesta di inserimento e rimozione online di qualsiasi tipo di scheda. Ad esempio, su un router Cisco serie 12000 Internet, è possibile visualizzare questi messaggi dopo aver sostituito una scheda Gigabit Route Processor (GRP) di un router serie GSR12016:
%SCHED-2-WATCH: Attempt to set uninitialized watched boolean (address 0). -Process= "LC Crash Complete Process", ipl= 0, pid= 29 -Traceback= 60189CA8 60244E08 6017562C 60175618
Le versioni precedenti del codice contengono alcuni problemi di ridondanza. La maggior parte di questi problemi è stata risolta nell'ultimo software Cisco IOS versione 12.0S. Accertarsi di eseguire una versione del software Cisco IOS più recente o almeno uguale alle versioni 12.0(18)S1 e 12.0(17)S2. Se il riposizionamento della scheda difettosa non funziona, probabilmente il router verrà ricaricato a freddo.
I messaggi sono simili a questo output su un router serie 7500:
%OIR-6-REMCARD: Card removed from slot 3, interfaces disabled %SCHED-2-WATCH: Attempt to set uninitialized watched Boolean (address 0). -Process= "OIR Handler", ipl= 0, pid= 7 -Traceback= 60236120 60C64838 60280594 60280874 602211BC 602211A8
La maggior parte delle volte questi messaggi di errore SCHED sono dovuti a un bug interno del software Cisco IOS. Pertanto, il primo passaggio nella risoluzione dei problemi relativi a questi messaggi di errore è la ricerca di un bug noto.
L'aggiornamento all'ultima immagine software Cisco IOS nella sequenza di rilascio permette di eliminare tutti i bug fissi relativi all'utilità di pianificazione del software Cisco IOS.
Se il problema persiste, contattare il rappresentante del supporto Cisco con una copia esatta del messaggio di errore, insieme all'output di un comando show tech-support e show log.
Se dopo aver seguito le procedure di risoluzione dei problemi descritte in questo documento occorre ulteriore assistenza, è possibile aprire una richiesta (solo utenti registrati) con il supporto tecnico Cisco. Assicurarsi di includere le informazioni elencate di seguito: |
---|
Nota: non ricaricare o spegnere e riaccendere manualmente il router prima di aver raccolto queste informazioni, a meno che non sia necessario. Ciò può causare la perdita di informazioni importanti necessarie per determinare la causa principale del problema. |
Revisione | Data di pubblicazione | Commenti |
---|---|---|
1.0 |
24-Jun-2008 |
Versione iniziale |