When you configure a SANM policy with an Age Time greater than 597 hours (approximately 24 days), the policy fails to honor the specified delay․ Instead of holding the alarm for the defined duration (e.g., 744 hours/31 days), the SANM policy passes the alarm immediately, generating incidents prematurely․
SYMPTOMS:
SANM policies with Age Time > 597 hours trigger immediately
Policies set to 744 hours (31 days) or 672 hours (28 days) fail to wait
Policies with Age Time < 596 hours function correctly
AlarmNotifier logs show alarms passed without delay
CONTEXT: This issue typically affects long-term alarm filtering policies requiring delays exceeding 24 days․
IMPACT: Operations teams receive premature incidents for alarms that should be suppressed or delayed, resulting in alert noise and unnecessary tickets․
DX NetOps Spectrum: 24.3.x, 25.4.1~4
Component: SANM (Spectrum Alarm Notification Manager)
The issue is caused by a 32-bit signed integer overflow when converting hours to milliseconds․ The maximum value for a 32-bit signed integer is 2,147,483,647, which corresponds to approximately 596.52 hours․ Setting a value higher than this (e.g., 597 hours) causes a negative integer calculation, resulting in the timer expiring immediately․
Falling under 32-bit singed integer range (< 2^31) i.e. -2,147,483,648 to 2,147,483,647, when the time is converted into milli seconds.
Higher range of 32-bit signed integer : 2,14,74,83,647 (~ 596.52 Hours = 596 Hours 31.2 mins)
597 Hours : 597*60*60*1000 = 2,14,92,00,000
596 Hours : 596*60*60*1000 = 2,14,56,00,000
When the Age Time is set to 596 hours and 32 mins or higher the issue is reproduced.
The issue does not occur if the Age Time is set to 596 hours and 31 mins or lower.
Fix is targeted for inclusion in Spectrum releases 25.4.6 or 25.4.7․
For 24.3.12 version, request the debug patch "Spectrum_24.03.12.D322a"