[
https://issues.apache.org/jira/browse/CLOUDSTACK-8696?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14653369#comment-14653369
]
ASF GitHub Bot commented on CLOUDSTACK-8696:
--------------------------------------------
GitHub user karuturi opened a pull request:
https://github.com/apache/cloudstack/pull/657
CLOUDSTACK-8696: Create Region fails with exception
'id' in the region table should not be an autoincrement unlike other
tables. This is because, region ids must be in sync across installs and
hence is accepted as input to the addRegions api.
It is not a good practise to override id for this purpose. another
column 'regionId' has to be created and used(CLOUDSTACK-8706). until it
is fixed, id should never be autoincrement in regions table.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/karuturi/cloudstack CLOUDSTACK-8696
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/cloudstack/pull/657.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #657
----
commit b6a78044a0881e17d045f35850222c275a84642e
Author: Rajani Karuturi <[email protected]>
Date: 2015-08-04T09:19:30Z
CLOUDSTACK-8696: Create Region fails with exception
'id' in the region table should not be an autoincrement unlike other
tables. This is because, region ids must be in sync across installs and
hence is accepted as input to the addRegions api.
It is not a good practise to override id for this purpose. another
column 'regionId' has to be created and used(CLOUDSTACK-8706). until it
is fixed, id should never be autoincrement in regions table.
----
> Create Region fails with endpoint parameter validation exception
> ----------------------------------------------------------------
>
> Key: CLOUDSTACK-8696
> URL: https://issues.apache.org/jira/browse/CLOUDSTACK-8696
> Project: CloudStack
> Issue Type: Bug
> Security Level: Public(Anyone can view this level - this is the
> default.)
> Components: API
> Affects Versions: 4.6.0
> Reporter: Pavan Kumar Bandarupally
> Assignee: Rajani Karuturi
> Priority: Critical
>
> Trying to add a new region fails with unhandled exception. The endpoint
> parameter validation seems to be failing. "Problem with getting the ec
> attribute"
> Exception:
> ===================
> 2015-07-31 19:48:32,669 DEBUG [c.c.a.ApiServlet]
> (catalina-exec-24:ctx-1106054b) ===START=== 10.252.193.9 -- GET
> command=addRegion&response=json&id=3&name=te&endpoint=http%3A%2F%2Flocalhost%3A8080%2Fclient&_=1438333561026
> 2015-07-31 19:48:32,691 DEBUG [c.c.u.d.T.Transaction]
> (catalina-exec-24:ctx-1106054b ctx-9e3359a9) Rolling back the transaction:
> Time = 3 Name = catalina-exec-24; called by
> -TransactionLegacy.rollback:879-TransactionLegacy.removeUpTo:822-TransactionLegacy.close:646-TransactionContextInterceptor.invoke:36-ReflectiveMethodInvocation.proceed:161-ExposeInvocationInterceptor.invoke:91-ReflectiveMethodInvocation.proceed:172-JdkDynamicAopProxy.invoke:204-$Proxy133.persist:-1-RegionManagerImpl.addRegion:113-RegionServiceImpl.addRegion:87-AddRegionCmd.execute:89
> 2015-07-31 19:48:32,699 ERROR [c.c.a.ApiServer]
> (catalina-exec-24:ctx-1106054b ctx-9e3359a9) unhandled exception executing
> api command: [Ljava.lang.String;@750f6a7c
> com.cloud.utils.exception.CloudRuntimeException: Problem with getting the ec
> attribute
> at com.cloud.utils.db.GenericDaoBase.persist(GenericDaoBase.java:1403)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at
> org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
> at
> org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
> at
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
> at
> com.cloud.utils.db.TransactionContextInterceptor.invoke(TransactionContextInterceptor.java:34)
> at
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
> at
> org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91)
> at
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
> at
> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
> at $Proxy133.persist(Unknown Source)
> at
> org.apache.cloudstack.region.RegionManagerImpl.addRegion(RegionManagerImpl.java:113)
> at
> org.apache.cloudstack.region.RegionServiceImpl.addRegion(RegionServiceImpl.java:87)
> at
> org.apache.cloudstack.api.command.admin.region.AddRegionCmd.execute(AddRegionCmd.java:89)
> at com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:141)
> at com.cloud.api.ApiServer.queueCommand(ApiServer.java:704)
> at com.cloud.api.ApiServer.handleRequest(ApiServer.java:529)
> at
> com.cloud.api.ApiServlet.processRequestInContext(ApiServlet.java:302)
> at com.cloud.api.ApiServlet$1.run(ApiServlet.java:127)
> at
> org.apache.cloudstack.managed.context.impl.DefaultManagedContext$1.call(DefaultManagedContext.java:56)
> at
> org.apache.cloudstack.managed.context.impl.DefaultManagedContext.callWithContext(DefaultManagedContext.java:103)
> at
> org.apache.cloudstack.managed.context.impl.DefaultManagedContext.runWithContext(DefaultManagedContext.java:53)
> at com.cloud.api.ApiServlet.processRequest(ApiServlet.java:124)
> at com.cloud.api.ApiServlet.doGet(ApiServlet.java:86)
> 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:722)
> Caused by: java.lang.IllegalArgumentException: Can not set int field
> org.apache.cloudstack.region.RegionVO.id to java.lang.Long
> at
> sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:164)
> at
> sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:168)
> at
> sun.reflect.UnsafeIntegerFieldAccessorImpl.set(UnsafeIntegerFieldAccessorImpl.java:98)
> at java.lang.reflect.Field.set(Field.java:680)
> at com.cloud.utils.db.GenericDaoBase.persist(GenericDaoBase.java:1373)
> ... 43 more
> 2015-07-31 19:48:32,709 DEBUG [c.c.a.ApiServlet]
> (catalina-exec-24:ctx-1106054b ctx-9e3359a9) ===END=== 10.252.193.9 -- GET
> command=addRegion&response=json&id=3&name=te&endpoint=http%3A%2F%2Flocalhost%3A8080%2Fclient&_=1438333561026
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)