Inhalt

Einleitung

Voraussetzungen

Anforderungen

Verwendete Komponenten

Hintergrundinformationen

Problem

Lösung

Konfigurieren

Überprüfung

Fehlerbehebung

Einleitung

Dieses Dokument beschreibt die Funktion "Graceful Assert Handling", die in StarOS 21.5.0 eingeführt wurde.

Voraussetzungen

Anforderungen

Cisco empfiehlt, dass Sie über Kenntnisse in folgenden Bereichen verfügen:

- StarOS

- SGSN (Serving GPRS Support Node)

Verwendete Komponenten

Die Informationen in diesem Dokument basieren auf StarOS R21.5 und höher.

Die Informationen in diesem Dokument beziehen sich auf Geräte in einer speziell eingerichteten Testumgebung. Alle Geräte, die in diesem Dokument benutzt wurden, begannen mit einer gelöschten (Nichterfüllungs) Konfiguration. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die möglichen Auswirkungen aller Befehle verstehen.

Hintergrundinformationen

Die Funktion ist in der offiziellen Dokumentation hier zu finden: SGSN-Administratorhandbuch.

Das Graceful Assert Handling-Framework ermöglicht die sanfte Verarbeitung von Teilnehmersitzungen, bei denen die ASSERT-Bedingung zum Zeitpunkt der Anrufausführung erfüllt ist. Dies wird erreicht, ohne andere Teilnehmersitzungen auf demselben Prolet zu beeinträchtigen.

Wenn die ASSERT-Bedingung erfüllt ist, startet das Session Manager (SessMgr)-Prolet normalerweise neu und stellt alle Subscriber-Sitzungen vom AAA Manager (AAAMgr) wieder her. Die wiederhergestellten Teilnehmersitzungen werden in den IDLE-Status verschoben.

Wenn die sanfte Asserthandhabung aktiviert ist, wird das SessMgr-Prolet nicht neu gestartet. Stattdessen stellt das SessMgr-Prolet nur die Sitzung des betroffenen Teilnehmers vom AAAMgr wieder her und löscht die Sitzung des vorhandenen Teilnehmers im SessMgr. Die wiederhergestellten Teilnehmersitzungen werden in den IDLE-Status verschoben. Zum Zeitpunkt der Wiederherstellung werden alle an den Teilnehmer gerichteten Nachrichten verworfen. Nach der Wiederherstellung verarbeitet der Teilnehmer weiterhin an ihn gerichtete Nachrichten. Bei diesem Verfahren bleiben die im SessMgr verbliebenen Teilnehmersitzungen unberührt.

Problem

In einigen Ecken- und/oder Kollisionsfällen ist entweder die Ursachenbehebung komplex oder die Ursache unbekannt. In diesen Fällen wird ein "graceful assert"-Ansatz gewählt, um einen Neustart des Sitzungsmanagers zu vermeiden.

Lösung

Mit graceful assert können Sie die 1 Sitzung, die die graceful assert-Bedingung erfüllt, bereinigen und wiederherstellen.

Es gibt keine Auswirkungen auf andere Sitzungen im gleichen Sessmgr.

Es wird kein SNMP-Trap oder Syslog für einen ordnungsgemäßen Neustart vorhanden sein.

Im Falle einer ordnungsgemäßen Bestätigung gibt es keinen KPI-Verlust. Der Task selbst wird nicht neu gestartet.

Die graceful Asserts werden jedoch wie jeder andere Absturz behandelt, d. h. Sie erhalten einen Eintrag in der Liste show crash.

So identifizieren Sie eine graziöse Assertion vom SSD:

- Systeminitiiertes State Dump mit Core - wird unter "show crash" vor dem Stack angezeigt

- Abgestürzte Proklets sind entweder vom Benutzer initiiert oder nicht-boxer - werden nach dem Stapel unter "debug console cpu"-Ausgabe angezeigt

- pid 7939 facility sessmgr failover 5132->94 - unter "debug console CPU" wird bei Graceful Assert nicht protokolliert/angezeigt

Konfigurieren

Die Verarbeitung von sicheren Assert kann wie folgt konfiguriert werden:

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

Beachten Sie:

- kontrollierte Bestätigung: Konfiguriert das kontrollierte Assert-Framework.

- s4sgsn: Konfiguriert die gesteuerte S4-SGSN-Bestätigung.

- Kerngeneration: Konfiguriert die Kerngenerierung für die kontrollierte Bestätigung. Standard: Aktiviert.

- Grenzwert pro Aussage: Konfiguriert das Limit pro Assert für kontrollierte Assert. Standard: 5.

- Name der Testdatei Dateiname Zeilennummer Zeilennummer [ Sequenznummer seq_num ]: Konfiguriert die kontrollierte Handhabung von Assert-Tests.

- Dateiname Dateiname: Konfiguriert den Dateinamen, für den Assert-Steuerung erforderlich ist. file_name muss eine alphanumerische Zeichenfolge mit 1 bis 254 Zeichen sein.

- Zeilennummer_Nummer: Konfiguriert die Zeilennummer, für die eine Assertierungssteuerung erforderlich ist. Die Zeilennummer muss eine ganze Zahl zwischen 1 und 4294967295 sein.

- Sequenznummer (seq_num): Konfiguriert die Sequenznummer, für die eine Assertierungssteuerung erforderlich ist. seq_num muss eine ganze Zahl zwischen 1 und 100 sein. Standardwert: 1.

- Deaktivieren: Deaktiviert die angegebene Aktion für ein gesteuertes Assert-Framework.

- Aktivieren: Aktiviert die angegebene Aktion für ein gesteuertes Assert-Framework.

- nein: Entfernt die angegebene Testkonfiguration für das gesteuerte Assert-Framework.

Beispiel

********************* 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

PC: [ffffe430/X] __kernel_vsyscall()

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

Überprüfung

Nutzen Sie diesen Abschnitt, um zu überprüfen, ob Ihre Konfiguration ordnungsgemäß funktioniert.

Beispiel für das Abrufen der gesteuerten Bestätigungsstatistiken für alle aktiven Sitzungen:

# 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 10

Beispielausgabe:

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

Diese Informationen (Anzahl und Zeilennummer) werden zurückgesetzt, wenn der Sessmgr bei einem anderen Absturz einen Neustart durchführt. Wenn die maximale Anzahl von Malen (Standard 5) erreicht ist, wird der Core nicht generiert.

Fehlerbehebung

Für diese Konfiguration sind derzeit keine spezifischen Informationen zur Fehlerbehebung verfügbar.