Chandan Purushothama created CLOUDSTACK-226: -----------------------------------------------
Summary: UpdatePhysicalNetworkcommand failed due to java.sql.BatchUpdateException ; Tried to extend the existing Guest VLAN Range of one physical network into the Guest VLAN range of the other physical network Key: CLOUDSTACK-226 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-226 Project: CloudStack Issue Type: Bug Components: Management Server Affects Versions: pre-4.0.0 Reporter: Chandan Purushothama Fix For: pre-4.0.0 =============== Steps to Reproduce: =============== 1. Deploy an Advanced Zone setup with two Physical Networks where Physical Network 1 carries management,storage,public and guest traffic while Physical Network 2 carries only guest traffic. 2. Provide Guest VLAN Range 2480 to 2500 on Physical Network 1 during deployment of the setup. 3. Provide Guest VLAN Range 2501 to 2520 on Physical Network 2 during deployment of the setup. 4. Once the deployment is done, edit the guest network details of Physical Network 1 such that the End Guest VLAN is edited from 2500 to 2510. 5. Click on Apply and observe the observation mentioned below. ============================================== Before Extending the Guest VLAN Range of Physical Network: ============================================== mysql> select * from physical_network \G *************************** 1. row *************************** id: 200 uuid: 6c5c0857-ca27-4e6d-97ad-64d82230db24 name: Physical Network 1 data_center_id: 1 vnet: 2481-2500 speed: NULL domain_id: NULL broadcast_domain_range: ZONE state: Enabled created: 2012-09-26 01:51:55 removed: NULL *************************** 2. row *************************** id: 201 uuid: 01736ead-fbf2-49b5-8e23-754db2e8afa1 name: Physical Network 2 data_center_id: 1 vnet: 2501-2520 speed: NULL domain_id: NULL broadcast_domain_range: ZONE state: Enabled created: 2012-09-26 01:51:55 removed: NULL 2 rows in set (0.00 sec) ========================= UpdatePhysicalNetworkCmd Job: ========================= 2012-09-27 14:15:18,835 DEBUG [cloud.async.AsyncJobManagerImpl] (catalina-exec-16:null) submit async job-70, details: AsyncJobVO {id:70, userId: 2, accountId: 2, sessionKey: null, instanceType: PhysicalNetwork, instanceId: null, cmd: com.cloud.api.commands.UpdatePhysicalNetworkCmd, cmdOriginator: null, cmdInfo: {"tags":"guest1","response":"json","id":"6c5c0857-ca27-4e6d-97ad-64d82230db24","sessionkey":"zXjqIlsgiABR8Ty4cYpLI+hNitE\u003d","ctxUserId":"2","vlan":"2481-2510","_":"1348780808027","ctxAccountId":"2","ctxStartEventId":"294"}, cmdVersion: 0, callbackType: 0, callbackAddress: null, status: 0, processStatus: 0, resultCode: 0, result: null, initMsid: 7471666038533, completeMsid: null, lastUpdated: null, lastPolled: null, created: null} 2012-09-27 14:15:18,840 DEBUG [cloud.async.AsyncJobManagerImpl] (Job-Executor-47:job-70) Executing com.cloud.api.commands.UpdatePhysicalNetworkCmd for job-70 2012-09-27 14:15:18,852 DEBUG [cloud.network.NetworkManagerImpl] (Job-Executor-47:job-70) ISOLATION METHODS:[VLAN] 2012-09-27 14:15:18,861 DEBUG [cloud.network.NetworkManagerImpl] (Job-Executor-47:job-70) Adding vnet range 2501-2510 for the physicalNetwork id= 200 and zone id=1 as a part of updatePhysicalNetwork call 2012-09-27 14:15:18,885 DEBUG [db.Transaction.Transaction] (Job-Executor-47:job-70) Rolling back the transaction: Time = 23 Name = -AsyncJobManagerImpl$1.run:398-Executors$RunnableAdapter.call:471-FutureTask$Sync.innerRun:334-FutureTask.run:166-ThreadPoolExecutor.runWorker:1110-ThreadPoolExecutor$Worker.run:603-Thread.run:679; called by -Transaction.rollback:887-Transaction.removeUpTo:830-Transaction.close:649-DatabaseCallback.interceptComplete:71-DatabaseCallback.intercept:36-DataCenterDaoImpl.addVnet:251-DatabaseCallback.intercept:34-NetworkManagerImpl.updatePhysicalNetwork:5411-ComponentLocator$InterceptorDispatcher.intercept:1231-UpdatePhysicalNetworkCmd.execute:101-ApiDispatcher.dispatch:138-AsyncJobManagerImpl$1.run:432 2012-09-27 14:15:18,897 ERROR [cloud.api.ApiDispatcher] (Job-Executor-47:job-70) Exception while executing UpdatePhysicalNetworkCmd: com.cloud.utils.exception.CloudRuntimeException: Exception caught adding vnet at com.cloud.dc.dao.DataCenterVnetDaoImpl.add(DataCenterVnetDaoImpl.java:94) at com.cloud.utils.db.DatabaseCallback.intercept(DatabaseCallback.java:34) at com.cloud.dc.dao.DataCenterDaoImpl.addVnet(DataCenterDaoImpl.java:251) at com.cloud.utils.db.DatabaseCallback.intercept(DatabaseCallback.java:34) at com.cloud.network.NetworkManagerImpl.updatePhysicalNetwork(NetworkManagerImpl.java:5411) at com.cloud.utils.component.ComponentLocator$InterceptorDispatcher.intercept(ComponentLocator.java:1231) at com.cloud.api.commands.UpdatePhysicalNetworkCmd.execute(UpdatePhysicalNetworkCmd.java:101) at com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:138) at com.cloud.async.AsyncJobManagerImpl$1.run(AsyncJobManagerImpl.java:432) 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: java.sql.BatchUpdateException: Duplicate entry '2510-1' for key 'i_op_dc_vnet_alloc__vnet__data_center_id' at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:2024) at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:1449) at org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:294) at com.cloud.dc.dao.DataCenterVnetDaoImpl.add(DataCenterVnetDaoImpl.java:91) ... 26 more Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '2510-1' for key 'i_op_dc_vnet_alloc__vnet__data_center_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:3597) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3529) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1990) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2151) at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2625) at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2119) at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2415) at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:1979) ... 29 more 2012-09-27 14:15:18,899 DEBUG [cloud.async.AsyncJobManagerImpl] (Job-Executor-47:job-70) Complete async job-70, jobStatus: 2, resultCode: 530, result: Error Code: 530 Error text: Exception caught adding vnet 2012-09-27 14:15:19,272 DEBUG [cloud.async.AsyncJobManagerImpl] (catalina-exec-1:null) submit async job-71, details: AsyncJobVO {id:71, userId: 2, accountId: 2, sessionKey: null, instanceType: TrafficType, instanceId: null, cmd: com.cloud.api.commands.UpdateTrafficTypeCmd, cmdOriginator: null, cmdInfo: {"response":"json","id":"3144b1eb-fe6a-4013-b27d-b39605922f94","sessionkey":"zXjqIlsgiABR8Ty4cYpLI+hNitE\u003d","ctxUserId":"2","xennetworklabel":"cloud-xenbr0","_":"1348780808528","ctxAccountId":"2","ctxStartEventId":"297"}, cmdVersion: 0, callbackType: 0, callbackAddress: null, status: 0, processStatus: 0, resultCode: 0, result: null, initMsid: 7471666038533, completeMsid: null, lastUpdated: null, lastPolled: null, created: null} 2012-09-27 14:15:19,276 DEBUG [cloud.async.AsyncJobManagerImpl] (Job-Executor-48:job-71) Executing com.cloud.api.commands.UpdateTrafficTypeCmd for job-71 2012-09-27 14:15:19,312 DEBUG [cloud.async.AsyncJobManagerImpl] (Job-Executor-48:job-71) Complete async job-71, jobStatus: 1, resultCode: 0, result: com.cloud.api.response.TrafficTypeResponse@35a2b667 2012-09-27 14:15:19,321 DEBUG [cloud.async.AsyncJobManagerImpl] (Job-Executor-48:job-71) Done executing com.cloud.api.commands.UpdateTrafficTypeCmd for job-71 ============================================== After Extending the Guest VLAN Range of Physical Network: ============================================== **Observe vnet info of both the Physical Networks** mysql> select * from physical_network \G *************************** 1. row *************************** id: 200 uuid: 6c5c0857-ca27-4e6d-97ad-64d82230db24 name: Physical Network 1 data_center_id: 1 vnet: 2481-2510 speed: NULL domain_id: NULL broadcast_domain_range: ZONE state: Enabled created: 2012-09-26 01:51:55 removed: NULL *************************** 2. row *************************** id: 201 uuid: 01736ead-fbf2-49b5-8e23-754db2e8afa1 name: Physical Network 2 data_center_id: 1 vnet: 2501-2520 speed: NULL domain_id: NULL broadcast_domain_range: ZONE state: Enabled created: 2012-09-26 01:51:55 removed: NULL 2 rows in set (0.00 sec) mysql> select * from op_dc_vnet_alloc; +----+------+---------------------+----------------+--------------------------------------+------------+---------------------+ | id | vnet | physical_network_id | data_center_id | reservation_id | account_id | taken | +----+------+---------------------+----------------+--------------------------------------+------------+---------------------+ | 41 | 2481 | 200 | 1 | NULL | NULL | NULL | | 42 | 2482 | 200 | 1 | 671879a8-8f68-47fb-ace0-bceadc31d152 | 3 | 2012-09-26 18:50:58 | | 43 | 2483 | 200 | 1 | NULL | NULL | NULL | | 44 | 2484 | 200 | 1 | NULL | NULL | NULL | | 45 | 2485 | 200 | 1 | NULL | NULL | NULL | | 46 | 2486 | 200 | 1 | NULL | NULL | NULL | | 47 | 2487 | 200 | 1 | NULL | NULL | NULL | | 48 | 2488 | 200 | 1 | NULL | NULL | NULL | | 49 | 2489 | 200 | 1 | NULL | NULL | NULL | | 50 | 2490 | 200 | 1 | NULL | NULL | NULL | | 51 | 2491 | 200 | 1 | NULL | NULL | NULL | | 52 | 2492 | 200 | 1 | NULL | NULL | NULL | | 53 | 2493 | 200 | 1 | NULL | NULL | NULL | | 54 | 2494 | 200 | 1 | NULL | NULL | NULL | | 55 | 2495 | 200 | 1 | NULL | NULL | NULL | | 56 | 2496 | 200 | 1 | NULL | NULL | NULL | | 57 | 2497 | 200 | 1 | NULL | NULL | NULL | | 58 | 2498 | 200 | 1 | NULL | NULL | NULL | | 59 | 2499 | 200 | 1 | d1af86fa-e4a1-42fd-9937-c1f0ffa33f45 | 3 | 2012-09-27 01:17:34 | | 60 | 2500 | 200 | 1 | NULL | NULL | NULL | | 61 | 2501 | 201 | 1 | NULL | NULL | NULL | | 62 | 2502 | 201 | 1 | 303a54eb-1c15-44ce-9316-e64b2d24b4cd | 3 | 2012-09-26 19:04:46 | | 63 | 2503 | 201 | 1 | NULL | NULL | NULL | | 64 | 2504 | 201 | 1 | NULL | NULL | NULL | | 65 | 2505 | 201 | 1 | NULL | NULL | NULL | | 66 | 2506 | 201 | 1 | ab9d8b6b-d5ce-4454-8015-157b480433e2 | 3 | 2012-09-27 01:19:24 | | 67 | 2507 | 201 | 1 | NULL | NULL | NULL | | 68 | 2508 | 201 | 1 | NULL | NULL | NULL | | 69 | 2509 | 201 | 1 | NULL | NULL | NULL | | 70 | 2510 | 201 | 1 | NULL | NULL | NULL | | 71 | 2511 | 201 | 1 | f078f8bb-8063-412f-91a7-3dce441e1759 | 3 | 2012-09-26 18:57:16 | | 72 | 2512 | 201 | 1 | NULL | NULL | NULL | | 73 | 2513 | 201 | 1 | NULL | NULL | NULL | | 74 | 2514 | 201 | 1 | NULL | NULL | NULL | | 75 | 2515 | 201 | 1 | NULL | NULL | NULL | | 76 | 2516 | 201 | 1 | NULL | NULL | NULL | | 77 | 2517 | 201 | 1 | NULL | NULL | NULL | | 78 | 2518 | 201 | 1 | NULL | NULL | NULL | | 79 | 2519 | 201 | 1 | NULL | NULL | NULL | | 80 | 2520 | 201 | 1 | NULL | NULL | NULL | +----+------+---------------------+----------------+--------------------------------------+------------+---------------------+ 40 rows in set (0.00 sec) ====== Git Info: ====== Git Revision: 30b19887fd05c7694f8fdf45be9fe9b02d90b1d1 Git URL: https://git-wip-us.apache.org/repos/asf/incubator-cloudstack.git -- 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