질문
이미 발생한 충돌과 동일한 것으로 보이는 충돌이 충돌 목록에 별도로 나열되는 이유는 무엇입니까?
응답
다음 두 개의 sessmgr 프로세스 crash를 분석하면 이러한 프로세스가 동일하다고 결론지을 수 있으며 시스템이 충돌 목록에 별도로 나열한 이유를 알 수 있습니다.자세히 관찰하면 show crash number X 출력의 왼쪽 맨 위 열에 있는 주소에 약간의 차이가 있습니다. 이는 코드에서 동일한 행의 함수가 위에 나열된 함수를 호출하는 지점입니다(이 예에서 snx_hsgwdrv_send_add_sub_session()).
******** show crash list *******
Friday October 03 18:25:28 UTC 2014
== ==== ======= ========== =========== ================
# Time Process Card/CPU/ SW HW_SER_NUM
PID VERSION SMC / Crash Card
== ==== ======= ========== =========== ================
1 2013-Nov-30+05:08:15 sessmgr 07/0/04317 14.1(50455) SAD160200KX/PLB31103947
2 2014-Jun-06+16:45:44 sessmgr 05/0/06002 15.0(53417) SAD160200KX/PLB37108248
3 2014-Oct-02+08:08:03 sessmgr 15/0/06059 16.1(55894) SAD160200KX/PLB42100206
4 2014-Oct-03+03:02:00 sessmgr 02/0/05979 16.1(55894) SAD160200KX/PLB38108892
Total Crashes : 12
********************* CRASH #03 ***********************
SW Version : 16.1(55894)
Similar Crash Count : 1
Time of First Crash : 2014-Oct-02+08:08:03
Fatal Signal 11: Segmentation fault
PC: [0534bf6d/X] sessmgr_imsa_update_ip_addr()
Faulty address: (nil)
Signal from: kernel
Signal detail: address not mapped to object
Process: card=15 cpu=0 arch=X pid=6059 cpu=~0% argv0=sessmgr
Crash time: 2014-Oct-02+08:08:03 UTC
Recent errno: 11 Resource temporarily unavailable
Stack (64280@0xfffee000):
[0534bf6d/X] sessmgr_imsa_update_ip_addr() sp=0xfffee7d8
[0365f41d/X] sessmgr_mag_handle_add_sub_session() sp=0xfffee928
[036f3a66/X] smgr_fsm_state_connected() sp=0xffffaff8
[03681397/X] smgr_callline_fsm() sp=0xffffb098
[05d8089b/X] sessmgr_app_svr_event_control_dispatch() sp=0xffffb628
[0461986b/X] snx_hsgwdrv_send_add_sub_session() sp=0xffffbba8
[0461dfa6/X] snx_hsgwdrv_fsm() sp=0xffffbd68
[04621cba/X] snx_hsgwdrv_event_control_dispatch() sp=0xffffbdf8
[046032b6/X] snx_pppdrv_notify_vsncp_up() sp=0xffffbe28
[046036ac/X] snx_pppdrv_fsm_state_connected() sp=0xffffbe68
[0460446a/X] snx_pppdrv_fsm() sp=0xffffbfe8
[04608e0a/X] mlppp_event_indication() sp=0xffffc328
[0514d1ae/X] VSNCPNotify() sp=0xffffc388
[0515e88d/X] NCPRunStateActions() sp=0xffffc3e8
[0515ae53/X] ProcessConfigData() sp=0xffffc488
[0515b9ec/X] ProcessNCP() sp=0xffffc4b8
[05144931/X] MLPSwitch() sp=0xffffc558
[05167c5c/X] PPPSwitch() sp=0xffffc768
[05e47033/X] DoSomethingWithData.isra.149() sp=0xffffcc78
[05e5a1ea/X] sessmgr_med_rp_a10_data_receive() sp=0xffffd3f8
[0600880d/X] sessmgr_med_data_receive() sp=0xffffd598
[0ac565ac/X] sn_epoll_run_events() sp=0xffffd5e8
[0ac5aca8/X] sn_loop_run() sp=0xffffda98
[0a9fd96d/X] main() sp=0xffffdb08
********************* CRASH #04 ***********************
SW Version : 16.1(55894)
Similar Crash Count : 9
Time of First Crash : 2014-Oct-02+07:31:35
Fatal Signal 11: Segmentation fault
PC: [0534bf6d/X] sessmgr_imsa_update_ip_addr()
Faulty address: (nil)
Signal from: kernel
Signal detail: address not mapped to object
Process: card=2 cpu=0 arch=X pid=5979 cpu=~4% argv0=sessmgr
Crash time: 2014-Oct-03+03:02:00 UTC
Recent errno: 11 Resource temporarily unavailable
Stack (64280@0xfffee000):
[0534bf6d/X] sessmgr_imsa_update_ip_addr() sp=0xfffee7d8
[0365f41d/X] sessmgr_mag_handle_add_sub_session() sp=0xfffee928
[036f3a66/X] smgr_fsm_state_connected() sp=0xffffaff8
[03681397/X] smgr_callline_fsm() sp=0xffffb098
[05d8089b/X] sessmgr_app_svr_event_control_dispatch() sp=0xffffb628
[0461986b/X] snx_hsgwdrv_send_add_sub_session() sp=0xffffbba8
[0461dd33/X] snx_hsgwdrv_fsm() sp=0xffffbd68
[04621cba/X] snx_hsgwdrv_event_control_dispatch() sp=0xffffbdf8
[046032b6/X] snx_pppdrv_notify_vsncp_up() sp=0xffffbe28
[046036ac/X] snx_pppdrv_fsm_state_connected() sp=0xffffbe68
[0460446a/X] snx_pppdrv_fsm() sp=0xffffbfe8
[04608e0a/X] mlppp_event_indication() sp=0xffffc328
[0514d1ae/X] VSNCPNotify() sp=0xffffc388
[0515e88d/X] NCPRunStateActions() sp=0xffffc3e8
[0515ae53/X] ProcessConfigData() sp=0xffffc488
[0515b9ec/X] ProcessNCP() sp=0xffffc4b8
[05144931/X] MLPSwitch() sp=0xffffc558
[05167c5c/X] PPPSwitch() sp=0xffffc768
[05e47033/X] DoSomethingWithData.isra.149() sp=0xffffcc78
[05e5a1ea/X] sessmgr_med_rp_a10_data_receive() sp=0xffffd3f8
[0600880d/X] sessmgr_med_data_receive() sp=0xffffd598
[0ac565ac/X] sn_epoll_run_events() sp=0xffffd5e8
[0ac5aca8/X] sn_loop_run() sp=0xffffda98
[0a9fd96d/X] main() sp=0xffffdb08
여기서 요점은 함수에 대한 호출이 코드의 다른 위치에서 이루어지기 때문에 충돌이 별도의 크래시로 나열된다는 점입니다.
이러한 경우, Cisco에 케이스를 열어 서로 다른 코드 플로우에 대해 별도의 수정이 필요한 경우에만 이러한 시나리오에서 충돌의 근본 원인이 동일한지 확인합니다.