NRM_RunningFirmware attribute change causes the SpectroSERVER to crash


Article ID: 102334


Updated On:


CA Spectrum


after implementing step 2 (below) from knowledge article 45787 "Spectrum NRM_RunningFirmware attribute not populating for some device models" the SpectroSERVER crashes at startup.

2. If you have a device where the NRM_RunningFirmware attribute is not being populated and the sysDescr does not contain information about the firmware rev but there is another attribute that does, the NRM_RunningFirmwareAttr can be populated with this other attribute id in addition to the sysDesc attribute. The NRM_RunningFirmwareAttr is a list of attributes to test the filters against. This attribute can only be modified using the Model Type Editor. If this method is used, the NRM_RunningFirmwareFilters attribute may also need a new regexp to filter for and extract the firmware version information to populate the NRM_RunningFirmware attribute. 

The following information is seen in the $SPECROOT/SS/VNM.OUT file:

Jun 18 04:24:28 ERROR TRACE at C:/win32app/Spectrum/SS/SpectroSERVER.exe is out of memory while allocating 2966464956374793744 bytes.  Scheduling shutdown.
Saved compact diagnostic file to 'C:\win32app\Spectrum\SS\support\SpectroSERVER_20180618_0424.dmp'

0x7fe92708e42   libGlobl.dll!CsSymbolInfo::get_current_context
0x7fe92708ef5   libGlobl.dll!CsSymbolInfo::print_current_stack
0x7fe89e57b09   libsskrnl.dll!SearchManager::update_mh_searches
0x7fe95a93256   libPort.dll!Cs_new_handler
0x7fe95a9861a   libPort.dll!malloc
0x7fe89564c4e   libmdlsvint.dll!VnmActionHandler::operator=
0x7fe89564f86   libmdlsvint.dll!VnmActionHandler::operator=
0x7fe8968781e   libmdlsvint.dll!IHFirmwareNormalizer::regExParser
0x7fe896879e3   libmdlsvint.dll!IHFirmwareNormalizer::updateFirmwareVersion
0x7fe8968700a   libmdlsvint.dll!IHFirmwareNormalizer::iterate_firmware_attr
0x7fe89686e49   libmdlsvint.dll!IHFirmwareNormalizer::checkAndUpdateFirmwareVersion
0x7fe89da15e7   libsskrnl.dll!CsIHActWatcher::notify
0x7fe89e08f1a   libsskrnl.dll!CsModel::activate_model
0x7fe89d81218   libsskrnl.dll!CsActivateScheduler::process_queued_work
0x7fe95ae44fb   libwkmgr.dll!CsWorkQueue::process_work_node
0x7fe95ae3dfc   libwkmgr.dll!CsWorkScheduler::do_work
0x7fe970277d7   libmoot.dll!IOEvent::setup_fd
0x7fe9c42f12d   KERNEL32.DLL!CreateFiberEx

Jun 18 04:24:45 ERROR TRACE at C:/win32app/Spectrum/SS/SpectroSERVER.exe is out of memory while allocating 2966464956374793744 bytes.  Continuing shutdown.
CA memory allocation error. Aborting.


The SS crash is not due to change in NRM_RUNNIGFIRMAWARE attribute. It is due to updating of an invalid regex in NRM_FIRMWARE filter. 



Spectrum 10.2.x on any platform.


Use this regex v(?:ision)?:?\s*([^\s;,\n\r]+) to get version number as 4.0.0.

Fixing the Regex parsing is handled as part of this feature "F71745 -Crash free Spectrum", which is in the product backlog. 

For the correct parsing firmware name, the working regex will be pushed to next spectrum release (10.3.1 ).