NRM_RunningFirmware attribute change causes SS to crash

Document ID : KB000102334
Last Modified Date : 16/07/2018
Show Technical Document Details
Implementing KB000045787 option 

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. 

at SS startup, SpectroSERVER crashes with following VNM.OUT messages:

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.

Spectrum 10.2.x on any platform.
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. 

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 ).