PSQLException in EnhancedLinkd Cdp discovery

Description

org.springframework.dao.DataIntegrityViolationException: could not insert: [org.opennms.netmgt.model.CdpLink]; SQL [insert into cdpLink (cdpCacheAddress, cdpCacheAddressType, cdpCacheDeviceId, cdpCacheDevicePlatform, cdpCacheDevicePort, cdpCacheIfIndex, cdpCacheVersion, cdpInterfaceName, cdpLinkCreateTime, cdpLinkLastPollTime, nodeId, id) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)]; nested exception is org.hibernate.exception.DataException: could not insert: [org.opennms.netmgt.model.CdpLink]
at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:648)
at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:411)
at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
at org.springframework.orm.hibernate3.HibernateTemplate.flush(HibernateTemplate.java:881)
at org.opennms.netmgt.dao.hibernate.AbstractDaoHibernate.flush(AbstractDaoHibernate.java:93)
at org.opennms.netmgt.enlinkd.EnhancedLinkdServiceImpl$1.doInsert(EnhancedLinkdServiceImpl.java:241)
at org.opennms.netmgt.enlinkd.EnhancedLinkdServiceImpl$1.doInsert(EnhancedLinkdServiceImpl.java:218)
at org.opennms.netmgt.dao.support.UpsertTemplate.insert(UpsertTemplate.java:191)
at org.opennms.netmgt.dao.support.UpsertTemplate.doUpsert(UpsertTemplate.java:174)
at org.opennms.netmgt.dao.support.UpsertTemplate.access$000(UpsertTemplate.java:123)
at org.opennms.netmgt.dao.support.UpsertTemplate$1.doInTransaction(UpsertTemplate.java:147)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:131)
at org.opennms.netmgt.dao.support.UpsertTemplate.execute(UpsertTemplate.java:143)
at org.opennms.netmgt.enlinkd.EnhancedLinkdServiceImpl.saveCdpLink(EnhancedLinkdServiceImpl.java:218)
at org.opennms.netmgt.enlinkd.EnhancedLinkdServiceImpl.store(EnhancedLinkdServiceImpl.java:213)
at org.opennms.netmgt.enlinkd.EnhancedLinkdServiceImpl$$FastClassByCGLIB$$fe4d2451.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:627)
at org.opennms.netmgt.enlinkd.EnhancedLinkdServiceImpl$$EnhancerByCGLIB$$96ccf8d6.store(<generated>)
at org.opennms.netmgt.enlinkd.NodeDiscoveryCdp$1.processCdpCacheRow(NodeDiscoveryCdp.java:115)
at org.opennms.netmgt.enlinkd.snmp.CdpCacheTableTracker.rowCompleted(CdpCacheTableTracker.java:235)
at org.opennms.netmgt.snmp.SnmpTableResult.handleCompleteRows(SnmpTableResult.java:99)
at org.opennms.netmgt.snmp.SnmpTableResult.storeResult(SnmpTableResult.java:75)
at org.opennms.netmgt.snmp.TableTracker.storeResult(TableTracker.java:106)
at org.opennms.netmgt.snmp.CollectionTracker.storeResult(CollectionTracker.java:77)
at org.opennms.netmgt.snmp.ColumnTracker$1.processResponse(ColumnTracker.java:100)
at org.opennms.netmgt.snmp.TableTracker$CombinedColumnResponseProcessor.processResponse(TableTracker.java:170)
at org.opennms.netmgt.snmp.AggregateTracker$ChildTrackerResponseProcessor.processResponse(AggregateTracker.java:165)
at org.opennms.netmgt.snmp.SnmpWalker.processResponse(SnmpWalker.java:201)
at org.opennms.netmgt.snmp.snmp4j.Snmp4JWalker.access$700(Snmp4JWalker.java:48)
at org.opennms.netmgt.snmp.snmp4j.Snmp4JWalker$Snmp4JResponseListener.processResponse(Snmp4JWalker.java:151)
at org.opennms.netmgt.snmp.snmp4j.Snmp4JWalker$Snmp4JResponseListener.onResponse(Snmp4JWalker.java:180)
at org.snmp4j.Snmp.processPdu(Snmp.java:1272)
at org.snmp4j.MessageDispatcherImpl.fireProcessPdu(MessageDispatcherImpl.java:616)
at org.snmp4j.MessageDispatcherImpl.dispatchMessage(MessageDispatcherImpl.java:287)
at org.snmp4j.MessageDispatcherImpl.processMessage(MessageDispatcherImpl.java:347)
at org.snmp4j.MessageDispatcherImpl.processMessage(MessageDispatcherImpl.java:309)
at org.snmp4j.transport.AbstractTransportMapping.fireProcessMessage(AbstractTransportMapping.java:83)
at org.snmp4j.transport.DefaultUdpTransportMapping$ListenThread.run(DefaultUdpTransportMapping.java:372)
at java.lang.Thread.run(Thread.java:744)
Caused by: org.hibernate.exception.DataException: could not insert: [org.opennms.netmgt.model.CdpLink]
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:102)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2455)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2875)
at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:79)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:273)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:265)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:184)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:51)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1216)
at org.springframework.orm.hibernate3.HibernateTemplate$28.doInHibernate(HibernateTemplate.java:883)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:406)
... 38 more
Caused by: org.postgresql.util.PSQLException: ERROR: value too long for type character varying(255)
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2161)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1890)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:560)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:417)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:363)
at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeUpdate(NewProxyPreparedStatement.java:105)
at org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:46)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2435)

Acceptance / Success Criteria

None

Lucidchart Diagrams

Activity

Antonio Russo September 27, 2014 at 5:05 AM

Resolved in space/14.1 branch:

commit d98e9ed15e54a9af198c13ff3f17642d9ce34fc7
Author: Antonio <rssntn67@yahoo.it>
Date: Sat Sep 27 11:03:01 2014 +0200

Fix for issue : PSQLException in EnhancedLinkd Cdp discovery

Change the datatype of cdplink.cdpcacheversion to text.

MacBook-Pro-di-Antonio-Russo:opennms antonio$ git push
Counting objects: 181, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (23/23), done.
Writing objects: 100% (25/25), 3.02 KiB | 0 bytes/s, done.
Total 25 (delta 8), reused 0 (delta 0)
To git@github.com:OpenNMS/opennms.git
2229031..d98e9ed space/14.1 -> space/14.1

Fixed

Details

Assignee

Reporter

Components

Fix versions

Affects versions

Priority

PagerDuty

Created September 25, 2014 at 11:34 AM
Updated August 25, 2022 at 1:51 PM
Resolved September 27, 2014 at 5:05 AM