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)