UPDATE on services table triggers "missing FROM-clause" error

Description

Line 2056 in BroadcastEventProcessor.java has an UPDATE query that implicitly
references the service table. When the query is executed on line 2063, an
exception is thrown in PGSQL 8.1.4:

2006-07-31 14:30:54,322 ERROR [Capsd:BroadcastEventProcessor]
BroadcastEventProcessor: handleDeleteService: Database error deleting service
ICMP on ipAddr 10.12.48.12 for node 217
org.postgresql.util.PSQLException: ERROR: missing FROM-clause entry for table
"service"

at
org.postgresql.util.PSQLException.parseServerError(PSQLException.java:139)
at org.postgresql.core.QueryExecutor.executeV3(QueryExecutor.java:152)
at org.postgresql.core.QueryExecutor.execute(QueryExecutor.java:100)
at org.postgresql.core.QueryExecutor.execute(QueryExecutor.java:43)
at
org.postgresql.jdbc1.AbstractJdbc1Statement.execute(AbstractJdbc1Statement.java:517)
at
org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:50)
at
org.postgresql.jdbc1.AbstractJdbc1Statement.executeUpdate(AbstractJdbc1Statement.java:273)
at
org.opennms.netmgt.capsd.BroadcastEventProcessor.markServiceDeleted(BroadcastEventProcessor.java:2063)
at
org.opennms.netmgt.capsd.BroadcastEventProcessor.doDeleteService(BroadcastEventProcessor.java:911)
at
org.opennms.netmgt.capsd.BroadcastEventProcessor.handleDeleteService(BroadcastEventProcessor.java:1501)
at
org.opennms.netmgt.capsd.BroadcastEventProcessor.onEvent(BroadcastEventProcessor.java:2211)
at
org.opennms.netmgt.eventd.EventIpcManagerDefaultImpl$ListenerThread.run(EventIpcManagerDefaultImpl.java:169)
at java.lang.Thread.run(Thread.java:595)

Environment

Operating System: Linux Platform: PC

Acceptance / Success Criteria

None

Lucidchart Diagrams

Activity

DJ Gregor September 21, 2006 at 2:34 AM

Committed to both trunk and OPENNMS_1_2_BRANCH.

Thanks!

— opennms/branches/OPENNMS_1_2_BRANCH/src/services/org/opennms/netmgt/capsd/
BroadcastEventProcessor.java 2006-09-20 23:32:10 UTC (rev 4508)
+++ opennms/branches/OPENNMS_1_2_BRANCH/src/services/org/opennms/netmgt/capsd/
BroadcastEventProcessor.java 2006-09-20 23:52:34 UTC (rev 4509)
@@ -2053,7 +2053,11 @@
Category log = ThreadCategory.getInstance(getClass());
PreparedStatement stmt = null;

  • final String DB_MARK_SERVICE_DELETED = "UPDATE ifservices SET status='D' " + "WHERE
    ifservices.serviceID = service.serviceID " + "AND ifservices.nodeID=? AND ifservices.ipAddr=? AND
    service.serviceName=?";
    + final String DB_MARK_SERVICE_DELETED =
    + "UPDATE ifservices SET status='D' "
    + + "FROM service "
    + + "WHERE ifservices.serviceID = service.serviceID "
    + + "AND ifservices.nodeID=? AND ifservices.ipAddr=? AND service.serviceName=?";

try {

stmt = dbConn.prepareStatement(DB_MARK_SERVICE_DELETED);

Michael Griego September 20, 2006 at 7:28 PM

Reference Bug#1395 for more info.

Fixed

Details

Assignee

Reporter

Components

Fix versions

Affects versions

Priority

PagerDuty

Created September 20, 2006 at 7:27 PM
Updated January 27, 2017 at 4:31 PM
Resolved September 21, 2006 at 2:34 AM