SpectroSERVER Crash During Model Activation

Document ID : KB000007780
Last Modified Date : 14/02/2018
Show Technical Document Details
Issue:

The SpectroSERVER crashes almost immediately after restarting Spectrum.

The crash dump contains the following stack:

libwlc!ArubaControllerIH::trig_model_activate+0xba [d:\spectrum\churchill\cm\windows\10.02.00.00.245\wlc.a\intel\arubacontrollerih.cc @ 96] 

libsskrnl!CsIHActWatcher::notify+0x1f3 [d:\spectrum\churchill\cm\windows\10.02.00.00.245\sscor.a\trigger\src\csihactwtch.cc @ 138] 

libsskrnl!CsModel::activate_model+0x1fa [d:\spectrum\churchill\cm\windows\10.02.00.00.245\sscor.a\lscpe\src\csmodel2.cc @ 2065] 

libsskrnl!CsActivateScheduler::process_queued_work+0x30 [d:\spectrum\churchill\cm\windows\10.02.00.00.245\sscor.a\trigger\src\csactsched.cc @ 193] 

libwkmgr!CsWorkQueue::process_work_node+0xf [d:\spectrum\churchill\cm\windows\10.02.00.00.245\wkmgr.a\src\csworkqueue.cc @ 215] 

libwkmgr!CsWorkScheduler::do_work+0x40 [d:\spectrum\churchill\cm\windows\10.02.00.00.245\wkmgr.a\src\csworksched.cc @ 393] 

libmoot!call_func+0x47 [d:\spectrum\churchill\cm\windows\10.02.00.00.245\moot.a\nt\src\ntcontext.cc @ 83] 

kernel32!BaseFiberStart+0x2f

Cause:

The Server crashed when ArubaController App model is trying to read the polling interval attribute of its associated device.

Sustaining Engineering found that the code doesn’t handle the sanity checks to know if the attribute read was successful. They aren't sure why the "polling interval" attribute read failed, since this is an internal attribute. It may have been due to the device was not fully loaded up with its device attributes during the startup, or it could be the result of database corruption. They suspect database corruption. 

Resolution:

The Spectrum_10.02.00.D242 patch contains the following change:

Rather than directly reading the poll interval of the device from its App model during model activation, we now first read the model_state attribute to know if the device is fully activated. If it’s fully activated then we read the polling interval attribute to be set to its app model otherwise we watch for device to be activated first. 

It is advised to restore the SSdb from a known good database, that is not corrupt, before restarting Spectrum.

Note: Spectrum_ 10.02.00.D242 was built from Spectrum_10.02.00.PTF_10.02.050. So the patch contains all the fixes found in PTF_10.02.050, plus the additional crash protect added in D242.