目錄

簡介

必要條件

需求

採用元件

背景資訊

問題

解決方案

設定

驗證

疑難排解

簡介

本檔案介紹StarOS 21.5.0版中引入的「平穩斷言處理」功能。

必要條件

需求

思科建議您瞭解以下主題：

- StarOs

- 服務GPRS支援節點(SGSN)

採用元件

本文檔中的資訊基於StarOS R21.5及更高版本。

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路運作中，請確保您瞭解任何指令可能造成的影響。

背景資訊

該功能可在以下官方文檔中找到：SGSN管理指南。

通過平穩斷言處理框架，可以平穩處理呼叫執行時發生ASSERT條件的使用者會話。這可在不影響同一proclet上的其他使用者會話的情況下實現。

通常，當達到ASSERT條件時，會話管理器(SessMgr)proclet會重新啟動並從AAA管理器(AAMgr)恢復所有訂戶會話。 已恢復的使用者會話將移動到IDLE狀態。

啟用平穩斷言處理後，SessMgr進程將不會重新啟動。相反，SessMgr進程僅從AAMgr恢復受影響的訂戶會話，並清除SessMgr上的現有訂戶會話。已恢復的使用者會話將移動到IDLE狀態。在恢復過程時，會丟棄所有指向訂戶的消息。恢復後，使用者將繼續處理指向它的消息。在此過程中，保留在SessMgr上的訂戶會話不受影響。

問題

某些拐角和/或衝突案例的根源修復非常複雜或根本原因未知。在這些情況下，會採用優雅的斷言方法來避免會話管理器完全重新啟動。

解決方案

使用正常斷言，您可以清除並還原達到正常斷言條件的1個作業階段。

對同一sessmgr上的任何其他會話沒有影響。

無用於平滑重啟的SNMP陷阱或系統日誌。

在平穩斷言的情況下，不會出現KPI損失。不會重新啟動任務本身。

但是，優雅的斷言的處理方式與任何其它崩潰一樣，這意味著您將會在show crash list中看到一個條目。

如何從SSD中識別流暢的斷言：

- 帶核心的系統啟動狀態轉儲。 — 會在堆疊之前的「show crash」輸出下看到

- crashed proclet是使用者啟動或非機箱的 — 堆疊後會顯示「debug console cpu」輸出

- pid 7939 facility sessmgr failover 5132->94 — 如果出現平穩斷言，則不會記錄/看到「debug console CPU」下的

設定

可以按如下方式配置平穩的斷言處理：

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

請注意：

- controlled-assert:配置受控斷言框架。

- s4sgsn :配置S4-SGSN控制的斷言。

- 核心層生成：配置受控斷言的核心生成。預設值：已啟用.

- limit-per-assert:為受控斷言配置每個斷言的限制。預設值：5.

- test file-name file_name line-number line_num [ sequence-number seq_num ]:配置受控斷言測試處理。

- file-name file_name:配置需要宣告控制的檔名。file_name必須是1到254個字元的字母數字字串。

- line-number line_num:配置需要宣告控制的行號。line_num必須是1到4294967295之間的整數。

- sequence-number seq_num:配置需要宣告控制的序列號。seq_num必須是1到100之間的整數。預設值：1.

- disable:禁用受控斷言框架的指定操作。

- enable:啟用受控斷言框架的指定操作。

- 否:刪除與受控斷言框架相關的指定測試配置。

範例

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

驗證

使用本節內容，確認您的組態是否正常運作。

獲取所有活動會話的受控斷言統計資訊的示例：

# 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

輸出示例：

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

如果sessmgr針對任何其他故障執行重新啟動，將重置此資訊（計數和行號）。達到最大次數（預設值5）後，將不會生成核心。

疑難排解

目前尚無適用於此組態的具體疑難排解資訊。