Sangeetha Hariharan created CLOUDSTACK-2284: -----------------------------------------------
Summary: AWS Regions - Not able to add account/domain/user with same Id (External UUID) after deleting account/domain/user with this id. Key: CLOUDSTACK-2284 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-2284 Project: CloudStack Issue Type: Bug Security Level: Public (Anyone can view this level - this is the default.) Affects Versions: 4.2.0 Environment: Build from master Reporter: Sangeetha Hariharan Priority: Critical Fix For: 4.2.0 AWS Regions - Not able to add account/domain/user with same Id (External UUID) after deleting account/domain/user with this id. Steps to reproduce the problem: 1. Add account/domain/user by passing External uuid in the accountid, userid and domainid parameter to the createAccount/createDomain/createUser. 2. Creation of account/domain/user succeeds. 3. Delete the above created account/domain/user . 4. Deletion is successful. 5. Now try to Add account/domain/user by passing the same External uuid ( as the one in step1 which are now deleted) in the accountid, userid and domainid parameter to the createAccount/createDomain/createUser Creation of account/domain/user fails with api calls: 2013-04-29 18:49:44,694 INFO [cloud.api.ApiServer] (catalina-exec-5:null) (userId=2 accountId=2 sessionId=null) 10.223.56 .66 -- GET username=test-IUMDSH&domainid=2a50dd26-ad1d-11e2-acc8-068c76000429&firstname=Test&lastname=User&userid=user1&re sponse=json&apiKey=sSPm7HTehsVp4DQ00Y0SIFaiQ9aabqIX5ty3AzqS2ciu-748BPIexxMfadefR-k3Q9iMCeYxerQ10aSf0h3oUw&command=createAc count&accounttype=0&signature=mRKIJdxa3mnVWCABrFh57UAkCyI%3D&password=password&email=test%40test.com&accountid=account1 20 0 { "createaccountresponse" : { "account" : {"id":"account1","name":"test-IUMDSH","accounttype":0,"domainid":"2a50dd26-ad 1d-11e2-acc8-068c76000429","domain":"ROOT","vmlimit":"20","vmtotal":0,"vmavailable":"20","iplimit":"20","iptotal":0,"ipava ilable":"18","volumelimit":"20","volumetotal":0,"volumeavailable":"20","snapshotlimit":"20","snapshottotal":0,"snapshotava ilable":"20","templatelimit":"20","templatetotal":0,"templateavailable":"20","projectlimit":"Unlimited","projecttotal":0," projectavailable":"Unlimited","networklimit":"20","networktotal":0,"networkavailable":"20","cpulimit":"40","cputotal":0,"c puavailable":"40","memorylimit":"40960","memorytotal":0,"memoryavailable":"40960","primarystoragelimit":"200","primarystor agetotal":0,"primarystorageavailable":"200","secondarystoragelimit":"400","secondarystoragetotal":0,"secondarystorageavail able":"400","state":"enabled","user":[{"id":"user1","username":"test-IUMDSH","firstname":"Test","lastname":"User","email": "t...@test.com","created":"2013-04-29T18:49:44-0700","state":"enabled","account":"test-IUMDSH","accounttype":0,"domainid": "2a50dd26-ad1d-11e2-acc8-068c76000429","domain":"ROOT","accountid":"account1","iscallerchilddomain":false,"isdefault":fals e,"jobstatus":0}],"isdefault":false,"jobstatus":0} } } 2013-04-29 20:16:14,970 INFO [cloud.api.ApiServer] (catalina-exec-7:null) (userId=2 accountId=2 sessionId=null) 10.223.56.66 -- GET username=test-EEZWQM&domainid=2a50dd26-ad1d-11e2-acc8-068c76000429&firstname=Test&lastname=User&userid=user1&response=json&apiKey=sSPm7HTehsVp4DQ00Y0SIFaiQ9aabqIX5ty3AzqS2ciu-748BPIexxMfadefR-k3Q9iMCeYxerQ10aSf0h3oUw&command=createAccount&accounttype=0&signature=2uJfDxGam6oUI9qsR2tTUGaIOhI%3D&password=password&email=test%40test.com&accountid=account1 530 Entity already exists: 2013-04-29 18:58:03,584 INFO [cloud.api.ApiServer] (catalina-exec-2:null) (userId=2 accountId=2 sessionId=9F0E4DDB3C5B109C6624B295300677A4) 10.217.252.128 -- GET command=deleteAccount&response=json&sessionkey=kVuw1w4mpRqpRWJmCzdR4yUOXKc%3D&id=account1&_=1367287126884 200 { "deleteaccountresponse" : {"jobid":"d4124909-af04-47f8-bfff-818e39ab7eaf"} } 2013-04-29 20:16:14,970 INFO [cloud.api.ApiServer] (catalina-exec-7:null) (userId=2 accountId=2 sessionId=null) 10.223.56.66 -- GET username=test-EEZWQM&domainid=2a50dd26-ad1d-11e2-acc8-068c76000429&firstname=Test&lastname=User&userid=user1&response=json&apiKey=sSPm7HTehsVp4DQ00Y0SIFaiQ9aabqIX5ty3AzqS2ciu-748BPIexxMfadefR-k3Q9iMCeYxerQ10aSf0h3oUw&command=createAccount&accounttype=0&signature=2uJfDxGam6oUI9qsR2tTUGaIOhI%3D&password=password&email=test%40test.com&accountid=account1 530 Entity already exists: mysql> select id,account_name,uuid,removed from account where uuid="account1"; +----+--------------+----------+---------------------+ | id | account_name | uuid | removed | +----+--------------+----------+---------------------+ | 86 | test-IUMDSH | account1 | 2013-04-30 01:58:03 | +----+--------------+----------+---------------------+ 1 row in set (0.00 sec) Management server logs: 2013-04-29 20:16:14,952 DEBUG [cloud.api.ApiServlet] (catalina-exec-7:null) ===START=== 10.223.56.66 -- GET username=tes t-EEZWQM&domainid=2a50dd26-ad1d-11e2-acc8-068c76000429&firstname=Test&lastname=User&userid=user1&response=json&apiKey=sSPm 7HTehsVp4DQ00Y0SIFaiQ9aabqIX5ty3AzqS2ciu-748BPIexxMfadefR-k3Q9iMCeYxerQ10aSf0h3oUw&command=createAccount&accounttype=0&sig nature=2uJfDxGam6oUI9qsR2tTUGaIOhI%3D&email=test%40test.com&accountid=account1 2013-04-29 20:16:14,957 DEBUG [cloud.user.AccountManagerImpl] (catalina-exec-7:null) Access granted to Acct[2-admin] to Do main:1/ by DomainChecker_EnhancerByCloudStack_a755e199 2013-04-29 20:16:14,960 DEBUG [db.Transaction.Transaction] (catalina-exec-7:null) Rolling back the transaction: Time = 2 N ame = createUserAccount; called by -Transaction.rollback:890-Transaction.removeUpTo:833-Transaction.close:657-Transaction ContextBuilder.interceptException:63-ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept:133-AccountManage rImpl.createAccount:1723-ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept:125-AccountManagerImpl.create UserAccount:839-ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept:125-CreateAccountCmd.execute:164-ApiDi spatcher.dispatch:155-ApiServer.queueCommand:512 2013-04-29 20:16:14,967 ERROR [cloud.api.ApiServer] (catalina-exec-7:null) unhandled exception executing api command: crea teAccount javax.persistence.EntityExistsException: Entity already exists: at com.cloud.utils.db.GenericDaoBase.persist(GenericDaoBase.java:1340) at com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstanti ationPostProcessor.java:125) at com.cloud.user.AccountManagerImpl.createAccount(AccountManagerImpl.java:1723) at com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstanti ationPostProcessor.java:125) at com.cloud.user.AccountManagerImpl.createUserAccount(AccountManagerImpl.java:839) at com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstanti ationPostProcessor.java:125) at org.apache.cloudstack.api.command.admin.account.CreateAccountCmd.execute(CreateAccountCmd.java:164) at com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:155) at com.cloud.api.ApiServer.queueCommand(ApiServer.java:512) at com.cloud.api.ApiServer.handleRequest(ApiServer.java:362) at com.cloud.api.ApiServlet.processRequest(ApiServlet.java:304) at com.cloud.api.ApiServlet.doGet(ApiServlet.java:66) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:555) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) at org.apache.coyote.http11.Http11NioProcessor.process(Http11NioProcessor.java:889) at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:721) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:2268) 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.MySQLIntegrityConstraintViolationException: Duplicate entry 'account1' for key 'uc_account__uuid' 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.persist(GenericDaoBase.java:1305) ... 40 more 2013-04-29 20:16:14,970 DEBUG [cloud.api.ApiServlet] (catalina-exec-7:null) ===END=== 10.223.56.66 -- GET username=test-EEZWQM&domainid=2a50dd26-ad1d-11e2-acc8-068c76000429&firstname=Test&lastname=User&userid=user1&response=json&apiKey=sSPm7HTehsVp4DQ00Y0SIFaiQ9aabqIX5ty3AzqS2ciu-748BPIexxMfadefR-k3Q9iMCeYxerQ10aSf0h3oUw&command=createAccount&accounttype=0&signature=2uJfDxGam6oUI9qsR2tTUGaIOhI%3D&email=test%40test.com&accountid=account1 -- 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