Sanjeev N created CLOUDSTACK-2584:
-------------------------------------

             Summary: [Object_Store_Refactor] Failed to create template from 
stopped guest vm's root disk
                 Key: CLOUDSTACK-2584
                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-2584
             Project: CloudStack
          Issue Type: Bug
      Security Level: Public (Anyone can view this level - this is the default.)
          Components: Template
    Affects Versions: 4.2.0
         Environment: Build from object_store branch
            Reporter: Sanjeev N
            Priority: Critical
             Fix For: 4.2.0


[Object_Store_Refactor] Failed to create template from stopped guest vm's root 
disk

Steps to reproduce:
================
1.Bring up CS in advanced zone with S3 as the secondary storage provider
2.Deploy guest vm with default cent os template downloaded after system vms are 
up
3.Stop the guest vm and try to take template from the root volume of the guest 
vm deployed above

Observations:
============
Observed following exception while taking template:
2013-05-20 12:33:23,481 DEBUG [cloud.api.ApiServlet] (catalina-exec-15:null) 
===START===  10.146.0.15 -- GET  
command=createTemplate&response=json&sessionkey=R6B02dSeoRFzL6CVp2PX3UbfsGg%3D&volumeId=135a3df1-20e1-4b4b-a433-86976ddc9218&name=root3&displayText=root3&osTypeId=6d6b2f3e-c0bf-11e2-8198-06ab4600005f&isPublic=true&passwordEnabled=false&isfeatured=true&_=1369047892340
2013-05-20 12:33:23,711 DEBUG [cloud.template.TemplateManagerImpl] 
(catalina-exec-15:null) This template is getting created from other template, 
setting source template Id to: 5
2013-05-20 12:33:23,763 DEBUG [cloud.async.AsyncJobManagerImpl] 
(catalina-exec-15:null) submit async job-19, details: AsyncJobVO {id:19, 
userId: 2, accountId: 2, sessionKey: null, instanceType: Template, instanceId: 
205, cmd: org.apache.cloudstack.api.command.user.template.CreateTemplateCmd, 
cmdOriginator: null, cmdInfo: 
{"sessionkey":"R6B02dSeoRFzL6CVp2PX3UbfsGg\u003d","volumeId":"135a3df1-20e1-4b4b-a433-86976ddc9218","ctxUserId":"2","httpmethod":"GET","osTypeId":"6d6b2f3e-c0bf-11e2-8198-06ab4600005f","isPublic":"true","isfeatured":"true","response":"json","id":"205","displayText":"root3","passwordEnabled":"false","name":"root3","_":"1369047892340","ctxAccountId":"2","ctxStartEventId":"75"},
 cmdVersion: 0, callbackType: 0, callbackAddress: null, status: 0, 
processStatus: 0, resultCode: 0, result: null, initMsid: 7332683579487, 
completeMsid: null, lastUpdated: null, lastPolled: null, created: null}
2013-05-20 12:33:23,766 DEBUG [cloud.api.ApiServlet] (catalina-exec-15:null) 
===END===  10.146.0.15 -- GET  
command=createTemplate&response=json&sessionkey=R6B02dSeoRFzL6CVp2PX3UbfsGg%3D&volumeId=135a3df1-20e1-4b4b-a433-86976ddc9218&name=root3&displayText=root3&osTypeId=6d6b2f3e-c0bf-11e2-8198-06ab4600005f&isPublic=true&passwordEnabled=false&isfeatured=true&_=1369047892340
2013-05-20 12:33:23,774 DEBUG [cloud.async.AsyncJobManagerImpl] 
(Job-Executor-6:job-19) Executing 
org.apache.cloudstack.api.command.user.template.CreateTemplateCmd for job-19
2013-05-20 12:33:23,853 DEBUG [cloud.template.TemplateManagerImpl] 
(Job-Executor-6:job-19) Failed to create 
templatecom.cloud.utils.exception.CloudRuntimeException: Can't find cache 
storage in zone: null
2013-05-20 12:33:23,857 DEBUG [db.Transaction.Transaction] 
(Job-Executor-6:job-19) Rolling back the transaction: Time = 3 Name =  
-AsyncJobManagerImpl$1.run:401-Executors$RunnableAdapter.call:471-FutureTask$Sync.innerRun:334-FutureTask.run:166-ThreadPoolExecutor.runWorker:1146-ThreadPoolExecutor$Worker.run:615-Thread.run:679;
 called by 
-Transaction.rollback:890-Transaction.removeUpTo:833-Transaction.close:657-TransactionContextBuilder.interceptException:63-ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept:133-TemplateManagerImpl.createPrivateTemplate:1433-ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept:125-CreateTemplateCmd.execute:258-ApiDispatcher.dispatch:155-AsyncJobManagerImpl$1.run:437-Executors$RunnableAdapter.call:471-FutureTask$Sync.innerRun:334
2013-05-20 12:33:23,867 ERROR [cloud.async.AsyncJobManagerImpl] 
(Job-Executor-6:job-19) Unexpected exception while executing 
org.apache.cloudstack.api.command.user.template.CreateTemplateCmd
com.cloud.utils.exception.CloudRuntimeException: DB Exception on: 
com.mysql.jdbc.JDBC4PreparedStatement@6265c4a7: DELETE FROM vm_template WHERE 
vm_template.id= 205
        at com.cloud.utils.db.GenericDaoBase.expunge(GenericDaoBase.java:1137)
        at 
com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstantiationPostProcessor.java:125)
        at 
com.cloud.template.TemplateManagerImpl.createPrivateTemplate(TemplateManagerImpl.java:1433)
        at 
com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstantiationPostProcessor.java:125)
        at 
org.apache.cloudstack.api.command.user.template.CreateTemplateCmd.execute(CreateTemplateCmd.java:258)
        at com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:155)
        at 
com.cloud.async.AsyncJobManagerImpl$1.run(AsyncJobManagerImpl.java:437)
        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:1146)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:679)
Caused by: 
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: 
Cannot delete or update a parent row: a foreign key constraint fails 
(`cloud`.`template_store_ref`, CONSTRAINT `fk_template_store_ref__template_id` 
FOREIGN KEY (`template_id`) REFERENCES `vm_template` (`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: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:1040)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4074)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4006)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2468)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2629)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2719)
        at 
com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2155)
        at 
com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2450)
        at 
com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2371)
        at 
com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2355)
        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.expunge(GenericDaoBase.java:1128)
        ... 20 more
2013-05-20 12:33:23,870 DEBUG [cloud.async.AsyncJobManagerImpl] 
(Job-Executor-6:job-19) Complete async job-19, jobStatus: 2, resultCode: 530, 
result: Error Code: 530 Error text: DB Exception on: 
com.mysql.jdbc.JDBC4PreparedStatement@6265c4a7: DELETE FROM vm_template WHERE 
vm_template.id= 205

2.Even though the template creation failed, I could see template state as 
Allocated in vm_template and template_store_ref tables:
mysql> select * from vm_template where id=205\G;
*************************** 1. row ***************************
                id: 205
       unique_name: 25a63a226-e490-3bc7-885e-fb9c83464397
              name: root3
              uuid: 088f76b9-1765-4eac-bdc6-8d51716cf9d5
            public: 1
          featured: 1
              type: USER
               hvm: 1
              bits: 64
               url: NULL
            format: RAW
           created: 2013-05-20 16:33:23
           removed: NULL
        account_id: 2
          checksum: NULL
      display_text: root3
   enable_password: 0
     enable_sshkey: 0
       guest_os_id: 142
          bootable: 1
       prepopulate: 0
       cross_zones: 0
       extractable: 1
   hypervisor_type: XenServer
source_template_id: 5
      template_tag: NULL
          sort_key: 0
              size: NULL
             state: Allocated
      update_count: 2
           updated: 2013-05-20 16:33:23
1 row in set (0.00 sec)

ERROR:
No query specified

mysql> select * from template_store_ref where template_id=205\G;
*************************** 1. row ***************************
            id: 12
      store_id: 1
   template_id: 205
       created: 2013-05-20 16:33:23
  last_updated: NULL
        job_id: NULL
  download_pct: 0
          size: 0
    store_role: Image
 physical_size: 0
download_state: NULL
     error_str: NULL
    local_path: NULL
  install_path: template/tmpl/2/205
           url: NULL
         state: Allocated
     destroyed: 0
       is_copy: 0
  update_count: 2
       updated: 2013-05-20 16:33:23
1 row in set (0.00 sec)

ERROR:
No query specified

 


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to