Sowmya Krishnan created CLOUDSTACK-4384:
-------------------------------------------
Summary: [Simulator] Trying to refer to tables in simulator DB
instead of cloud DB after using configureSimulator for delay
Key: CLOUDSTACK-4384
URL: https://issues.apache.org/jira/browse/CLOUDSTACK-4384
Project: CloudStack
Issue Type: Bug
Security Level: Public (Anyone can view this level - this is the default.)
Components: API, Management Server
Affects Versions: 4.2.0
Environment: latest 4.2, Build with simulator
Reporter: Sowmya Krishnan
Fix For: 4.2.0
While creating accounts and deploying simulator VMs, MS is trying to access
tables in simulator table which don't exist instead of cloud DB. Noticed this
after using configureSimulator to induce delay for few commands
Steps
=====
Build with simulator:
mvn -Pdeveloper -pl developer -Ddeploydb-simulator
mvn -Pdeveloper -pl developer -Ddeploydb
mvn -Pdeveloper -pl developer -Ddeploydb-simulator
Deploy zone, cluster, pod, host, secondary storage.
Use configureSimulator to induce delay for some commands:
ex:http://localhost:8096/client/api?command=configureSimulator&zoneid=1&name=CreateCommand&value=wait:10000
Create user account and deploy simulator VMs as user/admin
Finding the following exception while deploying simulator VM:
2013-08-19 09:42:25,937 DEBUG [allocator.impl.FirstFitAllocator]
(Job-Executor-22:job-22 = [ 69f175f0-bd75-42d8-9205-a2e5927c1506 ]
FirstFitRoutingAllocator)
Found a suitable host, adding to list: 28
2013-08-19 09:42:25,943 ERROR [cloud.api.ApiServer] (ApiServer-1:null)
unhandled exception executing api command: listNetworks
com.cloud.utils.exception.CloudRuntimeException: DB Exception on:
com.mysql.jdbc.JDBC4PreparedStatement@15ebcb3: SELECT account.id,
account.account_name, account.type, account.domain_id, account.state,
account.removed, account.cleanup_needed, account.network_domain, account.uuid,
account.default_zone_id, account.default FROM account WHERE account.id = 0 AND
account.removed IS NULL
at com.cloud.utils.db.GenericDaoBase.findById(GenericDaoBase.java:985)
at
com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstantiationPostProcessor.java:125)
at com.cloud.utils.db.GenericDaoBase.lockRow(GenericDaoBase.java:962)
at
com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstantiationPostProcessor.java:125)
at com.cloud.utils.db.GenericDaoBase.findById(GenericDaoBase.java:923)
at
com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstantiationPostProcessor.java:125)
at
com.cloud.user.AccountManagerImpl.getActiveAccountById(AccountManagerImpl.java:1655)
at com.cloud.api.ApiDispatcher.doAccessChecks(ApiDispatcher.java:110)
at com.cloud.api.ApiDispatcher.processParameters(ApiDispatcher.java:313)
at com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:132)
at com.cloud.api.ApiServer.queueCommand(ApiServer.java:514)
at com.cloud.api.ApiServer.handleRequest(ApiServer.java:372)
at com.cloud.api.ApiServer.handle(ApiServer.java:303)
at org.apache.http.protocol.HttpService.doService(HttpService.java:375)
at
org.apache.http.protocol.HttpService.handleRequest(HttpService.java:290)
at com.cloud.api.ApiServer$WorkerTask.run(ApiServer.java:978)
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.MySQLSyntaxErrorException: Table
'simulator.account' doesn't exist
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:1053)
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.executeQuery(PreparedStatement.java:2318)
at
org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
at
org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
at
org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
at com.cloud.utils.db.GenericDaoBase.findById(GenericDaoBase.java:982)
... 30 more
2013-08-19 09:42:25,955 DEBUG [cloud.capacity.CapacityManagerImpl]
(Job-Executor-22:job-22 = [ 69f175f0-bd75-42d8-9205-a2e5927c1506 ]
FirstFitRoutingAllocator) Checking if host: 31 has enough capacity for
requested CPU: 100 and requested RAM: 125829120 , cpuOverprovisioningFactor: 1.0
Finding this exception while creating account:
2013-08-19 10:13:26,475 DEBUG [cloud.network.NetworkManagerImpl]
(ApiServer-10:null) Releasing lock for
Acct[24aebc27-b60c-4bd8-b152-06d816f29e5a-test4]
2013-08-19 10:13:26,537 ERROR [cloud.api.ApiServer] (ApiServer-1:null)
unhandled exception executing api command: createAccount
com.cloud.utils.exception.CloudRuntimeException: DB Exception on:
com.mysql.jdbc.JDBC4PreparedStatement@1dd7b11: SELECT account.id,
account.account_name, acc
ount.type, account.domain_id, account.state, account.removed,
account.cleanup_needed, account.network_domain, account.uuid,
account.default_zone_id, account.
default FROM account WHERE account.id = 1 AND account.removed IS NULL
at com.cloud.utils.db.GenericDaoBase.findById(GenericDaoBase.java:985)
at
com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstantiationPostProcessor.java:125)
at com.cloud.utils.db.GenericDaoBase.lockRow(GenericDaoBase.java:962)
at
com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstantiationPostProcessor.java:125)
at com.cloud.utils.db.GenericDaoBase.findById(GenericDaoBase.java:923)
at
com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstantiationPostProcessor.java:125)
at
com.cloud.user.AccountManagerImpl.getActiveAccountById(AccountManagerImpl.java:1655)
at com.cloud.api.ApiDispatcher.doAccessChecks(ApiDispatcher.java:110)
at com.cloud.api.ApiDispatcher.processParameters(ApiDispatcher.java:313)
at com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:132)
at com.cloud.api.ApiServer.queueCommand(ApiServer.java:514)
at com.cloud.api.ApiServer.handleRequest(ApiServer.java:372)
at com.cloud.api.ApiServer.handle(ApiServer.java:303)
at org.apache.http.protocol.HttpService.doService(HttpService.java:375)
at
org.apache.http.protocol.HttpService.handleRequest(HttpService.java:290)
at com.cloud.api.ApiServer$WorkerTask.run(ApiServer.java:978)
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.MySQLSyntaxErrorException: Table
'simulator.account' doesn't exist
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:1053)
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.executeQuery(PreparedStatement.java:2318)
at
org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
at
org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
at
org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
at com.cloud.utils.db.GenericDaoBase.findById(GenericDaoBase.java:982)
... 30 more
2013-08-19 10:13:26,547 ERROR [cloud.api.ApiDispatcher] (ApiServer-2:null)
CloudRuntimeException
--
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