Konstanty Wubbufetowicz created CLOUDSTACK-9841:
---------------------------------------------------

             Summary: Usage server transaction rolled back
                 Key: CLOUDSTACK-9841
                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-9841
             Project: CloudStack
          Issue Type: Bug
      Security Level: Public (Anyone can view this level - this is the default.)
          Components: Usage
    Affects Versions: 4.9.0, 4.9.2.0
         Environment: CentOS 6.8, Mysql 5.6, Cloudstack 4.9.0
            Reporter: Konstanty Wubbufetowicz
         Attachments: usage-logs.tgz

While trying to generate usage records I am getting the following error at the 
end of the process.
I also tested if this is happening with cloudstack-usage 4.9.2 (but with 4.9.0 
management-server) - getting exactly the same issue.

Might be related to https://issues.apache.org/jira/browse/CLOUDSTACK-6988

Steps to reproduce:
I guess that must be something specific about my cloud database content.
However, this is a production setup so I am rather not keen on sharing it...

Desired results:
Usage records created

Actual results:
javax.persistence.EntityExistsException: Entity already exists is thrown

Stack trace:

ERROR [cloud.usage.UsageManagerImpl] (Usage-Job-1:null) (logid:) Exception in 
usage manager
javax.persistence.EntityExistsException: Entity already exists: 
        at com.cloud.utils.db.GenericDaoBase.persist(GenericDaoBase.java:1425)
        at 
com.cloud.usage.dao.UsageVMInstanceDaoImpl_EnhancerByCloudStack_3e9e482f.CGLIB$persist$32(<generated>)
        at 
com.cloud.usage.dao.UsageVMInstanceDaoImpl_EnhancerByCloudStack_3e9e482f_FastClassByCloudStack_33ae4cfc.invoke(<generated>)
        at net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
        at 
com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstantiationPostProcessor.java:122)
        at 
com.cloud.usage.dao.UsageVMInstanceDaoImpl_EnhancerByCloudStack_3e9e482f.persist(<generated>)
        at 
com.cloud.usage.UsageManagerImpl.populateDynamicComputeOfferingDetailsAndPersist(UsageManagerImpl.java:1245)
        at 
com.cloud.usage.UsageManagerImpl.createVMHelperEvent(UsageManagerImpl.java:1173)
        at 
com.cloud.usage.UsageManagerImpl.createHelperRecord(UsageManagerImpl.java:946)
        at com.cloud.usage.UsageManagerImpl.parse(UsageManagerImpl.java:628)
        at 
com.cloud.usage.UsageManagerImpl.runInContextInternal(UsageManagerImpl.java:384)
        at 
com.cloud.usage.UsageManagerImpl$1.runInContext(UsageManagerImpl.java:326)
        at 
org.apache.cloudstack.managed.context.ManagedContextRunnable$1.run(ManagedContextRunnable.java:49)
        at 
org.apache.cloudstack.managed.context.impl.DefaultManagedContext$1.call(DefaultManagedContext.java:56)
        at 
org.apache.cloudstack.managed.context.impl.DefaultManagedContext.callWithContext(DefaultManagedContext.java:103)
        at 
org.apache.cloudstack.managed.context.impl.DefaultManagedContext.runWithContext(DefaultManagedContext.java:53)
        at 
org.apache.cloudstack.managed.context.ManagedContextRunnable.run(ManagedContextRunnable.java:46)
        at com.cloud.usage.UsageManagerImpl.run(UsageManagerImpl.java:323)
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
Caused by: 
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: 
Duplicate entry '581-2-2017-01-09 16:27:16' for key 'vm_instance_id'
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at 
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
        at com.mysql.jdbc.Util.getInstance(Util.java:386)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1040)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3597)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3529)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1990)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2151)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2625)
        at 
com.mysql.jdbc.LoadBalancedMySQLConnection.execSQL(LoadBalancedMySQLConnection.java:155)
        at 
com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2119)
        at 
com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2415)
        at 
com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2333)
        at 
com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2318)
        at 
org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
        at 
org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
        at 
org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
        at com.cloud.utils.db.GenericDaoBase.persist(GenericDaoBase.java:1390)
        ... 24 more


(Full logfiles in the attachement)


  




--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to