venkata swamybabu budumuru created CLOUDSTACK-4013:
------------------------------------------------------
Summary: [PortableIP] [MultiplePhysicalNetworks] Associate
portable IP is trying to insert network id as physical network id
Key: CLOUDSTACK-4013
URL: https://issues.apache.org/jira/browse/CLOUDSTACK-4013
Project: CloudStack
Issue Type: Bug
Security Level: Public (Anyone can view this level - this is the default.)
Components: Management Server
Affects Versions: 4.2.0
Environment: commit id # 9cd4e089a5798f422961940efbf8ae33ed906b87
Reporter: venkata swamybabu budumuru
Assignee: Murali Reddy
Priority: Critical
Fix For: 4.2.0
Steps to reproduce :
1. Have at least 1 zone with more than one physical network.
2. create at least one isolated / VPC network.
3. deploy at least one VM in the above network (This step doesn't matter here)
4. associate at least one portableIP.
Observations:
(i) It fails with the following error.
2013-08-01 21:08:22,035 DEBUG [db.Transaction.Transaction]
(catalina-exec-22:null) Rolling back the transaction: Time = 12 Name =
allocatePortableIp; called by
-Transaction.rollback:896-Transaction.removeUpTo:839-Transaction.close:663-TransactionContextBuilder.interceptException:63-ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept:133-NetworkManagerImpl.allocatePortableIp:834-ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept:125-NetworkServiceImpl.allocatePortableIP:603-ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept:125-AssociateIPAddrCmd.create:276-ApiDispatcher.dispatchCreateCmd:104-ApiServer.queueCommand:460
2013-08-01 21:08:22,047 ERROR [cloud.api.ApiServer] (catalina-exec-22:null)
unhandled exception executing api command: associateIpAddress
com.cloud.utils.exception.CloudRuntimeException: DB Exception on:
com.mysql.jdbc.JDBC4PreparedStatement@46638fd3: INSERT INTO vlan (vlan.vlan_id,
vlan.vlan_gateway, vlan.vlan_netmask, vlan.ip6_gateway, vlan.ip6_cidr,
vlan.data_center_id, vlan.description, vlan.ip6_range, vlan.network_id,
vlan.physical_network_id, vlan.vlan_type, vlan.uuid) VALUES (_binary'48',
_binary'10.147.48.1', _binary'255.255.255.0', null, null, 2,
_binary'10.147.48.103-10.147.48.103', null, 204, 204, 'VirtualNetwork',
_binary'9cbcf1ce-1a1c-47a7-af48-c4d074c44bb0')
at com.cloud.utils.db.GenericDaoBase.persist(GenericDaoBase.java:1348)
at
com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstantiationPostProcessor.java:125)
at
com.cloud.network.NetworkManagerImpl.allocatePortableIp(NetworkManagerImpl.java:834)
at
com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstantiationPostProcessor.java:125)
at
com.cloud.network.NetworkServiceImpl.allocatePortableIP(NetworkServiceImpl.java:603)
at
com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstantiationPostProcessor.java:125)
at
org.apache.cloudstack.api.command.user.address.AssociateIPAddrCmd.create(AssociateIPAddrCmd.java:276)
at com.cloud.api.ApiDispatcher.dispatchCreateCmd(ApiDispatcher.java:104)
at com.cloud.api.ApiServer.queueCommand(ApiServer.java:460)
at com.cloud.api.ApiServer.handleRequest(ApiServer.java:372)
at com.cloud.api.ApiServlet.processRequest(ApiServlet.java:305)
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: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 add or update a child row: a foreign key constraint fails
(`cloud`.`vlan`, CONSTRAINT `fk_vlan__physical_network_id` FOREIGN KEY
(`physical_network_id`) REFERENCES `physical_network` (`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.persist(GenericDaoBase.java:1311)
... 40 more
2013-08-01 21:08:22,058 DEBUG [cloud.api.ApiServlet] (catalina-exec-22:null)
===END=== 10.104.255.13 -- GET
command=associateIpAddress&response=json&sessionkey=h6Mx8XmDIxmLHaEr3fH7026LeBY%3D&isportable=true&networkid=295b399b-8bd5-44e0-bad2-ee48ba38eb7e&_=1375371510963
(iii) looks like we are by mistake inserting the network_id as
physical_network_id. In this case when 204 network id is inserted as
physical_network_id then it fails because there is no physical network with the
above id.
Attaching all the required logs along with db dump to the bug.
--
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