Min Chen created CLOUDSTACK-6236: ------------------------------------ Summary: Negative ref_cnt of template(snapshot/volume)_store_ref results in out-of-range error in Mysql Key: CLOUDSTACK-6236 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-6236 Project: CloudStack Issue Type: Bug Security Level: Public (Anyone can view this level - this is the default.) Components: Storage Controller Affects Versions: 4.3.0 Reporter: Min Chen Assignee: Min Chen Priority: Critical Fix For: 4.4.0
Steps: 1. Deploy CS with ESXi5.5 and NFS secondary storage. 2. Create a VM and take the snapshot of root volume. 3. Create a template from snapshot. 4. Migrate the secondary NFS to S3. 5. Download the template created from snapshot (step3). Now the template will be in S3. 6. Tried to delete the template now. Observation: Template got deleted from S3 but observing an exception while deleting it from ImageCache. 2014-03-04 16:19:58,227 DEBUG [c.c.a.m.AgentManagerImpl] (AgentManager-Handler-14:null) SeqA 2-9302: Sending Seq 2-9302: { Ans: , MgmtId: 6758231703598, via: 2, Ver: v1, Flags: 100010, [{"com.cloud.agent.api.AgentControlAnswer":{"result":true,"wait":0}}] } 2014-03-04 16:19:58,255 ERROR [c.c.a.ApiAsyncJobDispatcher] (Job-Executor-51:Job-47) Unexpected exception while executing org.apache.cloudstack.api.command.user.template.DeleteTemplateCmd com.cloud.utils.exception.CloudRuntimeException: DB Exception on: com.mysql.jdbc.JDBC4PreparedStatement@5cb563d: SELECT template_store_ref.id, template_store_ref.store_id, template_store_ref.template_id, template_store_ref.store_role, template_store_ref.created, template_store_ref.last_updated, template_store_ref.download_pct, template_store_ref.size, template_store_ref.physical_size, template_store_ref.download_state, template_store_ref.local_path, template_store_ref.error_str, template_store_ref.job_id, template_store_ref.install_path, template_store_ref.url, template_store_ref.is_copy, template_store_ref.destroyed, template_store_ref.update_count, template_store_ref.updated, template_store_ref.state, template_store_ref.ref_cnt FROM template_store_ref WHERE template_store_ref.template_id = 202 AND template_store_ref.store_role = 'ImageCache' at com.cloud.utils.db.GenericDaoBase.searchIncludingRemoved(GenericDaoBase.java:421) at com.cloud.utils.db.GenericDaoBase.searchIncludingRemoved(GenericDaoBase.java:356) at com.cloud.utils.db.GenericDaoBase.search(GenericDaoBase.java:340) at com.cloud.utils.db.GenericDaoBase.search(GenericDaoBase.java:1243) at org.apache.cloudstack.storage.image.db.TemplateDataStoreDaoImpl.listOnCache(TemplateDataStoreDaoImpl.java:365) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at com.cloud.utils.db.TransactionContextInterceptor.invoke(TransactionContextInterceptor.java:33) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at $Proxy108.listOnCache(Unknown Source) at org.apache.cloudstack.storage.image.TemplateDataFactoryImpl.listTemplateOnCache(TemplateDataFactoryImpl.java:147) at com.cloud.template.HypervisorTemplateAdapter.delete(HypervisorTemplateAdapter.java:355) at com.cloud.template.TemplateManagerImpl.deleteTemplate(TemplateManagerImpl.java:1097) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at com.cloud.event.ActionEventInterceptor.invoke(ActionEventInterceptor.java:50) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at $Proxy158.deleteTemplate(Unknown Source) at org.apache.cloudstack.api.command.user.template.DeleteTemplateCmd.execute(DeleteTemplateCmd.java:112) at com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:161) at com.cloud.api.ApiAsyncJobDispatcher.runJob(ApiAsyncJobDispatcher.java:97) at org.apache.cloudstack.framework.jobs.impl.AsyncJobManagerImpl$5.runInContext(AsyncJobManagerImpl.java:529) at org.apache.cloudstack.managed.context.ManagedContextRunnable$1.run(ManagedContextRunnable.java:50) 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:47) at org.apache.cloudstack.framework.jobs.impl.AsyncJobManagerImpl$5.run(AsyncJobManagerImpl.java:486) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:679) Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLDataException: '18446744073709551615' in column '21' is outside valid range for the datatype BIGINT. 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:532) 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:1026) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:988) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:974) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919) at com.mysql.jdbc.ResultSetImpl.throwRangeException(ResultSetImpl.java:7870) at com.mysql.jdbc.ResultSetImpl.parseLongAsDouble(ResultSetImpl.java:7095) at com.mysql.jdbc.ResultSetImpl.getLong(ResultSetImpl.java:2981) at com.mysql.jdbc.ResultSetImpl.getLong(ResultSetImpl.java:2946) at org.apache.commons.dbcp.DelegatingResultSet.getLong(DelegatingResultSet.java:228) at org.apache.commons.dbcp.DelegatingResultSet.getLong(DelegatingResultSet.java:228) at com.cloud.utils.db.GenericDaoBase.setField(GenericDaoBase.java:541) at com.cloud.utils.db.GenericDaoBase.setField(GenericDaoBase.java:1702) at com.cloud.utils.db.GenericDaoBase.toEntityBean(GenericDaoBase.java:1582) at com.cloud.utils.db.GenericDaoBase.toEntityBean(GenericDaoBase.java:1543) at com.cloud.utils.db.GenericDaoBase.searchIncludingRemoved(GenericDaoBase.java:417) ... 49 more 2014-03-04 16:19:58,276 DEBUG [o.a.c.f.j.i.AsyncJobManagerImpl] (Job-Executor-51:Job-47) Complete async job-47, jobStatus: FAILED, resultCode: 530, result: org.apache.cloudstack.api.response.ExceptionResponse/null/ {"uuidList":[],"errorcode":530,"errortext":"DB Exception on: com.mysql.jdbc.JDBC4PreparedStatement@5cb563d: SELECT template_store_ref.id, template_store_ref.store_id, template_store_ref.template_id, template_store_ref.store_role, template_store_ref.created, template_store_ref.last_updated, template_store_ref.download_pct, template_store_ref.size, template_store_ref.physical_size, template_store_ref.download_state, template_store_ref.local_path, template_store_ref.error_str, template_store_ref.job_id, template_store_ref.install_path, template_store_ref.url, template_store_ref.is_copy, template_store_ref.destroyed, template_store_ref.update_count, template_store_ref.updated, template_store_ref.state, template_store_ref.ref_cnt FROM template_store_ref WHERE template_store_ref.template_id \u003d 202 AND template_store_ref.store_role \u003d \u0027ImageCache\u0027 "} 2014-03-04 16:19:58,286 DEBUG [o.a.c.f.j.i.AsyncJobManagerImpl] (Job-Executor-51:Job-47) Done executing org.apache.cloudstack.api.command.user.template.DeleteTemplateCmd for job-47 2014-03-04 16:19:58,293 INFO [o.a.c.f.j.i.AsyncJobMonitor] (Job-Executor-51:Job-47) Remove job-47 from job monitoring 2014-03-04 16:19:58,346 DEBUG [c.c.a.ApiServlet] (catalina-exec-9:ctx-3603c648) ===START=== 10.146.0.130 – GET comma -- This message was sent by Atlassian JIRA (v6.2#6252)