Inleiding
Dit document beschrijft de "Graceful Assert Handling" functie, geïntroduceerd in release 21.5.0 van StarOS.
Voorwaarden
Vereisten
Cisco raadt kennis van de volgende onderwerpen aan:
- StarOs
- Serving GPRS Support Node (SGSN)
Gebruikte componenten
De informatie in dit document is gebaseerd op StarOS R21.5 en hoger.
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 zorgen dat u de potentiële impact van elke opdracht begrijpt.
Achtergrondinformatie
De functie is te vinden in de officiële documentatie hier: SGSN-Admin gids.
Het Graceful Assert Handling framework maakt het mogelijk om abonneesessies die geraakt worden door de ASSERT-voorwaarde op het moment van de uitvoering van de oproep, op een elegante manier af te handelen. Dit wordt bereikt zonder dat andere abonneesessies op hetzelfde proclet worden beïnvloed.
Normaal gesproken, wanneer de ASSERT voorwaarde wordt geraakt, de Session Manager (SessMgr) proclet herstart en herstelt alle abonnee sessies van de AAA Manager (AAAMgr). De herstelde abonneesessies worden verplaatst naar de status IDLE.
Wanneer Graceful Assert Handling is ingeschakeld, wordt het SessMgr-proclet niet opnieuw gestart. In plaats daarvan herstelt het SessMgr-proclet alleen de sessie van de getroffen abonnee van de AAAMgr en wordt de bestaande abonneesessie op de SessMgr gewist. De herstelde abonneesessies worden verplaatst naar de status IDLE. Op het moment van de herstelprocedure worden alle berichten die naar de abonnee zijn gericht, verwijderd. Na herstel blijft de abonnee berichten afhandelen die naar hem zijn gericht. Met deze procedure blijven de abonneesessies die op de SessMgr blijven, onaangetast.
Probleem
Er zijn enkele hoek- en / of botsingsgevallen waarvoor de hoofdoorzaak complex is of waarvan de hoofdoorzaak onbekend is. In deze gevallen wordt een sierlijke assertieve benadering gevolgd om te voorkomen dat de sessiemanager volledig opnieuw wordt opgestart.
Oplossing
Met sierlijke bevestiging kunt u de 1-sessie opschonen en herstellen die de sierlijke voorwaarde voor bevestiging raakt.
Er is geen invloed op andere sessies tijdens dezelfde sessie.
Er is geen SNMP-trap of syslog voor een sierlijke herstart.
Er is geen KPI verlies in het geval van een sierlijke bewering. De taak zelf wordt niet opnieuw gestart.
De sierlijke beweringen worden echter behandeld zoals elke andere crash, wat betekent dat je een vermelding krijgt in de crashlijst van de show.
Hoe een sierlijke bewering van de SSD te identificeren:
- Systeemgestuurde statusdump met kern. – wordt gezien onder "Show Crash" output voor stack
- Crashed Proclet is door de gebruiker geïnitieerd of niet-Boxer - wordt gezien na de stapel onder "Debug Console CPU" -uitvoer
- pid 7939 facility sessmgr failover 5132->94 – onder "debug console CPU" wordt niet geregistreerd/gezien in het geval van Graceful Assert
Configureren
Graceful Assert Handling kan als volgt worden geconfigureerd:
configure
debug controlled-assert s4sgsn
[ disable | enable ] core-generation
limit-per-assert assert_value
[ no ] test file-name file_name line-number line_num [ sequence-number seq_num ]
end Let op:
-
controlled-assert: Configureert het gecontroleerde assert framework.
-
s4sgsn: Configureert de S4-SGSN gecontroleerde bewering.
-
core-generation: Configureert core generation voor gecontroleerde assertiviteit. Standaard: ingeschakeld.
-
limit-per-assert: Configureert de limiet per assert voor gecontroleerde assert. Standaard: 5.
-
test file-name file_name line-number line_num [ volgnummer seq_num ]: Configureert gecontroleerde afhandeling van de test van de bevestiging.
-
file-name file_name: Hiermee wordt de bestandsnaam geconfigureerd waarvoor besturingselement voor de bevestiging is vereist. file_name moet een alfanumerieke tekenreeks van 1 tot en met 254 tekens zijn.
-
line-number line_num: Configureert het regelnummer waar controle over de toewijzing vereist is. line_num moet een geheel getal zijn van 1 tot 4294967295.
-
volgnummer seq_num: Configureert het volgnummer waarbij assertbesturing vereist is. seq_num moet een geheel getal zijn van 1 tot 100. Standaard: 1.
-
uitschakelen: hiermee wordt de opgegeven actie voor een gecontroleerd toewijzingskader uitgeschakeld.
-
inschakelen: hiermee wordt de opgegeven actie voor een gecontroleerd toewijzingskader ingeschakeld.
-
Nee: hiermee wordt de opgegeven testconfiguratie met betrekking tot het gecontroleerde toewijzingskader verwijderd.
Voorbeeld
********************* CRASH #93 ***********************
SW Version : 21.5.19
Similar Crash Count : 8
Time of First Crash : 2019-May-21+06:57:14
Fatal Signal 6: Aborted
Note: System-initiated state dump w/core. <<< This note indicates a graceful assert.
Process: card=10 cpu=0 arch=X pid=11573 cpu=~16% argv0=sessmgr
Crash time: 2019-May-23+06:00:13 UTC
Recent errno: 11 Resource temporarily unavailable
Build_number: 71813
Verifiëren
Gebruik deze sectie om te controleren of uw configuratie goed werkt.
Voorbeeld van het verkrijgen van de gecontroleerde assertstatus voor alle actieve sessies:
# zcat ssd_s4sgn.log.gz | sed -n -e '/\*\{7\} show session subsystem facility sessmgr all debug-info /,/\*\{7\}/p' | sed -e '/^SessMgr: /,/^Controlled Assert Stats/{/^SessMgr: /!{/^Controlled Assert Stats/!d}}' | grep -E "SessMgr: Instance [0-9]{1,3}$" -A 10Voorbeeld van uitvoer:
SessMgr: Instance 135
Controlled Assert Stats
Module Name :SGW_DRV
Assert Count:0
Count File:Line Last Assert hit time(in sec)
Module Name :S4_SGSN
Assert Count:1
Count File:Line Last Assert hit time(in sec)
1 sess/sgsn/sgsn-app/s4_sm/s4_smn_egtpc.c:3164 2019/01/30 09:28:11 UTC
Deze informatie (aantal en regelnummer) wordt opnieuw ingesteld als de sessiemgr voor een herstart voor een andere crash gaat. Nadat het maximum aantal keren (standaard 5) is bereikt, wordt de kern niet gegenereerd.
Problemen oplossen
Er is momenteel geen specifieke troubleshooting-informatie beschikbaar voor deze configuratie.