Invalid event notification rule syntax stops processing of all matching event notifications

Description

If a single event notification rule has an invalid syntax (a missing paren for example) any downstream event notifications that match the UEI will not fire. I have several notifications matching the event below however, as the first filter rule was invalid, it stopped all notifications:

2010-07-13 03:26:35,494 DEBUG [Notifd:BroadcastEventProcessor] NotificationFactory: Checking uei.opennms.org/VENTIV/DiskSpaceUnder10 against uei.opennms.org/
VENTIV/DiskSpaceUnder10
2010-07-13 03:26:35,494 DEBUG [Notifd:BroadcastEventProcessor] NotificationFactory: Checking event severity: Warning against notification severity: null
2010-07-13 03:26:35,494 DEBUG [Notifd:BroadcastEventProcessor] JdbcFilterDao: Filter: rule: (((IPADDR IPLIKE ... & !(catincNO_DISK_ALERTS)) & (nodeId == 813) & (ipAddr == '10.19.2.73') & (serviceName == 'SNMP'))
2010-07-13 03:26:35,495 DEBUG [Notifd:BroadcastEventProcessor] JdbcFilterDao: Filter: SQL statement:
SELECT DISTINCT ipInterface.ipAddr FROM ipInterface JOIN node ON (ipInterface.nodeID = node.nodeID) JOIN ifServices ON (ipInterface.id = ifServices.ipInterfaceId) JOIN service ON (ifServices.serviceID = service.serviceID) WHERE (((IPLIKE(ipInterface.IPADDR, '...') AND NOT (node.nodeID IN (SELECT category_node.nodeID FROM category_node, categories WHERE categories.categoryID = category_node.categoryID AND categories.categoryName = 'NO_DISK_ALERTS'))) AND (node.nodeId = 813) AND (ipInterface.ipAddr = '10.19.2.73') AND (service.serviceName = 'SNMP')) LIMIT 1vent severity: Warning against notification severity:
2010-07-13 03:26:35,499 WARN [Notifd:BroadcastEventProcessor] JdbcFilterDao: SQL Exception occurred testing rule "(((IPADDR IPLIKE ... & !(catincNO_DISK_ALERTS)) & (nodeId == 813) & (ipAddr == '10.19.2.73') & (serviceName == 'SNMP'))" for matching results: org.postgresql.util.PSQLException: ERROR: syntax error at or near "LIMIT"ddr == '10.19.2.73') & (serviceName == 'SNMP'))
Position: 559
org.postgresql.util.PSQLException: ERROR: syntax error at or near "LIMIT"
Position: 559
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2062)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1795)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:479)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:353)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:252)
at com.mchange.v2.c3p0.impl.NewProxyStatement.executeQuery(NewProxyStatement.java:35)
at org.opennms.netmgt.dao.support.JdbcFilterDao.isRuleMatching(JdbcFilterDao.java:359)
at org.opennms.netmgt.config.NotificationManager.isRuleMatchingFilter(NotificationManager.java:299)
at org.opennms.netmgt.config.NotificationManager.nodeInterfaceServiceValid(NotificationManager.java:294)
at org.opennms.netmgt.config.NotificationManager.getNotifForEvent(NotificationManager.java:215)
at org.opennms.netmgt.notifd.BroadcastEventProcessor.scheduleNoticesForEvent(BroadcastEventProcessor.java:532)
at org.opennms.netmgt.notifd.BroadcastEventProcessor.onEvent(BroadcastEventProcessor.java:236)
at org.opennms.netmgt.eventd.EventIpcManagerDefaultImpl$ListenerThread.run(EventIpcManagerDefaultImpl.java:194)
at java.lang.Thread.run(Thread.java:595)
2010-07-13 03:26:35,499 ERROR [Notifd:BroadcastEventProcessor] NotificationFactory: Invalid filter rule for notification Disk Space less than 10%: (IPADDR IPLIKE ... & !(catincNO_DISK_ALERTS)otificationManager.isRuleMatchingFilter(NotificationManager.java:299)
org.opennms.netmgt.filter.FilterParseException: SQL Exception occurred testing rule "(((IPADDR IPLIKE ... & !(catincNO_DISK_ALERTS)) & (nodeId == 813) & (ipAddr == '10.19.2.73') & (serviceName == 'SNMP'))" for matching results: org.postgresql.util.PSQLException: ERROR: syntax error at or near "LIMIT"
Position: 559
at org.opennms.netmgt.dao.support.JdbcFilterDao.isRuleMatching(JdbcFilterDao.java:373)
at org.opennms.netmgt.config.NotificationManager.isRuleMatchingFilter(NotificationManager.java:299)
at org.opennms.netmgt.config.NotificationManager.nodeInterfaceServiceValid(NotificationManager.java:294)
at org.opennms.netmgt.config.NotificationManager.getNotifForEvent(NotificationManager.java:215)
at org.opennms.netmgt.notifd.BroadcastEventProcessor.scheduleNoticesForEvent(BroadcastEventProcessor.java:532)
at org.opennms.netmgt.notifd.BroadcastEventProcessor.onEvent(BroadcastEventProcessor.java:236)
at org.opennms.netmgt.eventd.EventIpcManagerDefaultImpl$ListenerThread.run(EventIpcManagerDefaultImpl.java:194)
at java.lang.Thread.run(Thread.java:595)
2010-07-13 03:26:35,499 ERROR [Notifd:BroadcastEventProcessor] BroadcastEventProcessor: Couldn't get notification mapping for event uei.opennms.org/VENTIV/DiskSpaceUnder10, not scheduling notice.ort.JdbcFilterDao.isRuleMatching(JdbcFilterDao.java:373)
org.opennms.netmgt.filter.FilterParseException: SQL Exception occurred testing rule "(((IPADDR IPLIKE ... & !(catincNO_DISK_ALERTS)) & (nodeId == 813) & (ipAddr == '10.19.2.73') & (serviceName == 'SNMP'))" for matching results: org.postgresql.util.PSQLException: ERROR: syntax error at or near "LIMIT"
Position: 559
at org.opennms.netmgt.dao.support.JdbcFilterDao.isRuleMatching(JdbcFilterDao.java:373)
at org.opennms.netmgt.config.NotificationManager.isRuleMatchingFilter(NotificationManager.java:299)
at org.opennms.netmgt.config.NotificationManager.nodeInterfaceServiceValid(NotificationManager.java:294)
at org.opennms.netmgt.config.NotificationManager.getNotifForEvent(NotificationManager.java:215)
at org.opennms.netmgt.notifd.BroadcastEventProcessor.scheduleNoticesForEvent(BroadcastEventProcessor.java:532)
at org.opennms.netmgt.notifd.BroadcastEventProcessor.onEvent(BroadcastEventProcessor.java:236)
at org.opennms.netmgt.eventd.EventIpcManagerDefaultImpl$ListenerThread.run(EventIpcManagerDefaultImpl.java:194)
at java.lang.Thread.run(Thread.java:595)
2010-07-13 03:26:35,500 DEBUG [Notifd:BroadcastEventProcessor] BroadcastEventProcessor: Acknowledging event uei.opennms.org/VENTIV/DiskSpaceUnder10CLEARED 813:10.19.2.73:SNMPennms.netmgt.config.NotificationManager.nodeInterfaceServiceValid(NotificationManager.java:294)

Environment

Operating System: Linux Platform: PC

Acceptance / Success Criteria

None

Lucidchart Diagrams

Activity

Show:

Details

Assignee

Reporter

Labels

Components

Affects versions

Priority

PagerDuty

Created July 13, 2010 at 11:34 AM
Updated September 21, 2021 at 6:25 PM