Bug 902242

Summary: [REST-API] malformed guid's cause http 500
Product: Red Hat Enterprise Virtualization Manager Reporter: Michael Pasternak <mpastern>
Component: ovirt-engine-restapiAssignee: Ravi Nori <rnori>
Status: CLOSED CURRENTRELEASE QA Contact: Barak Dagan <bdagan>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 3.2.0CC: acathrow, bazulay, dyasny, iheim, lhornyak, mpastern, oramraz, pstehlik, Rhev-m-bugs, rnori, sgrinber, ykaul
Target Milestone: ---   
Target Release: 3.2.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: infra
Fixed In Version: sf9 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 902073 Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: Infra RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 902073    
Bug Blocks: 917401    

Description Michael Pasternak 2013-01-21 08:49:42 UTC
+++ This bug was initially created as a clone of Bug #902073 +++

Description of problem:
some of the malformed guids are able to cause unexpected error in engine.
example for such a case:
    <quota id="8972844b-45ab-4369-927c-6cfec17fdfb3-FAIL"/>


Version-Release number of selected component (if applicable):


How reproducible:
always

  
Actual results:

2013-01-20 21:07:15,063 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) java.lang.reflect.InvocationTargetException
2013-01-20 21:07:15,064 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2013-01-20 21:07:15,064 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
2013-01-20 21:07:15,064 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2013-01-20 21:07:15,065 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at java.lang.reflect.Method.invoke(Method.java:601)
2013-01-20 21:07:15,065 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at org.ovirt.engine.api.restapi.types.MappingLocator$MethodInvokerMapper.map(MappingLocator.java:115)
2013-01-20 21:07:15,065 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at org.ovirt.engine.api.restapi.resource.BackendVmResource$UpdateParametersProvider.getParameters(BackendVmResource.java:369)
2013-01-20 21:07:15,066 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at org.ovirt.engine.api.restapi.resource.BackendVmResource$UpdateParametersProvider.getParameters(BackendVmResource.java:364)
2013-01-20 21:07:15,066 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at org.ovirt.engine.api.restapi.resource.AbstractBackendSubResource.doUpdate(AbstractBackendSubResource.java:93)
2013-01-20 21:07:15,066 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at org.ovirt.engine.api.restapi.resource.AbstractBackendSubResource.performUpdate(AbstractBackendSubResource.java:82)
2013-01-20 21:07:15,067 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at org.ovirt.engine.api.restapi.resource.BackendVmResource.update(BackendVmResource.java:114)
2013-01-20 21:07:15,067 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at org.ovirt.engine.api.restapi.resource.BackendVmResource.update(BackendVmResource.java:66)
2013-01-20 21:07:15,067 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2013-01-20 21:07:15,067 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
2013-01-20 21:07:15,068 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2013-01-20 21:07:15,068 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at java.lang.reflect.Method.invoke(Method.java:601)
2013-01-20 21:07:15,068 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:155)
2013-01-20 21:07:15,068 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:257)
2013-01-20 21:07:15,069 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:222)
2013-01-20 21:07:15,069 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at org.jboss.resteasy.core.ResourceLocator.invokeOnTargetObject(ResourceLocator.java:152)
2013-01-20 21:07:15,070 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at org.jboss.resteasy.core.ResourceLocator.invoke(ResourceLocator.java:91)
2013-01-20 21:07:15,070 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:525)
2013-01-20 21:07:15,071 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:502)
2013-01-20 21:07:15,071 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:119)
2013-01-20 21:07:15,072 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208)
2013-01-20 21:07:15,072 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)
2013-01-20 21:07:15,073 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50)
2013-01-20 21:07:15,073 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
2013-01-20 21:07:15,073 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)
2013-01-20 21:07:15,074 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
2013-01-20 21:07:15,074 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
2013-01-20 21:07:15,074 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
2013-01-20 21:07:15,074 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:489)
2013-01-20 21:07:15,075 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153)
2013-01-20 21:07:15,075 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)
2013-01-20 21:07:15,075 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
2013-01-20 21:07:15,076 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
2013-01-20 21:07:15,076 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368)
2013-01-20 21:07:15,076 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)
2013-01-20 21:07:15,076 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671)
2013-01-20 21:07:15,077 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930)
2013-01-20 21:07:15,077 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at java.lang.Thread.run(Thread.java:722)
2013-01-20 21:07:15,078 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) Caused by: java.lang.IllegalArgumentException: Invalid UUID string: 8972844b-45ab-4369-927c-6cfec17fdfb3-FAIL
2013-01-20 21:07:15,079 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at java.util.UUID.fromString(UUID.java:194)
2013-01-20 21:07:15,080 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at org.ovirt.engine.core.compat.NGuid.<init>(NGuid.java:55)
2013-01-20 21:07:15,080 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at org.ovirt.engine.core.compat.Guid.<init>(Guid.java:24)
2013-01-20 21:07:15,080 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	at org.ovirt.engine.api.restapi.types.VmMapper.map(VmMapper.java:228)
2013-01-20 21:07:15,081 ERROR [stderr] (http--0_0_0_0_0_0_0_0-8080-1) 	... 41 more
2013-01-20 21:07:15,083 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/api].[org.ovirt.engine.api.restapi.BackendApplication]] (http--0_0_0_0_0_0_0_0-8080-1) Servlet.service() for servlet org.ovirt.engine.api.restapi.BackendApplication threw exception: org.jboss.resteasy.spi.UnhandledException: java.lang.NullPointerException
	at org.jboss.resteasy.core.SynchronousDispatcher.handleApplicationException(SynchronousDispatcher.java:340) [resteasy-jaxrs-2.3.2.Final.jar:]
	at org.jboss.resteasy.core.SynchronousDispatcher.handleException(SynchronousDispatcher.java:214) [resteasy-jaxrs-2.3.2.Final.jar:]
	at org.jboss.resteasy.core.SynchronousDispatcher.handleInvokerException(SynchronousDispatcher.java:190) [resteasy-jaxrs-2.3.2.Final.jar:]
	at org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:540) [resteasy-jaxrs-2.3.2.Final.jar:]
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:502) [resteasy-jaxrs-2.3.2.Final.jar:]
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:119) [resteasy-jaxrs-2.3.2.Final.jar:]
	at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208) [resteasy-jaxrs-2.3.2.Final.jar:]
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55) [resteasy-jaxrs-2.3.2.Final.jar:]
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50) [resteasy-jaxrs-2.3.2.Final.jar:]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329) [jbossweb-7.0.13.Final.jar:]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.13.Final.jar:]
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [jbossweb-7.0.13.Final.jar:]
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) [jbossweb-7.0.13.Final.jar:]
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:489) [jbossweb-7.0.13.Final.jar:]
	at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155) [jbossweb-7.0.13.Final.jar:]
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [jbossweb-7.0.13.Final.jar:]
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [jbossweb-7.0.13.Final.jar:]
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368) [jbossweb-7.0.13.Final.jar:]
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [jbossweb-7.0.13.Final.jar:]
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671) [jbossweb-7.0.13.Final.jar:]
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930) [jbossweb-7.0.13.Final.jar:]
	at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_07]
Caused by: java.lang.NullPointerException
	at org.ovirt.engine.api.restapi.resource.BackendVmResource$UpdateParametersProvider.getParameters(BackendVmResource.java:372) [restapi-jaxrs-3.2.0.jar:]
	at org.ovirt.engine.api.restapi.resource.BackendVmResource$UpdateParametersProvider.getParameters(BackendVmResource.java:364) [restapi-jaxrs-3.2.0.jar:]
	at org.ovirt.engine.api.restapi.resource.AbstractBackendSubResource.doUpdate(AbstractBackendSubResource.java:93) [restapi-jaxrs-3.2.0.jar:]
	at org.ovirt.engine.api.restapi.resource.AbstractBackendSubResource.performUpdate(AbstractBackendSubResource.java:82) [restapi-jaxrs-3.2.0.jar:]
	at org.ovirt.engine.api.restapi.resource.BackendVmResource.update(BackendVmResource.java:114) [restapi-jaxrs-3.2.0.jar:]
	at org.ovirt.engine.api.restapi.resource.BackendVmResource.update(BackendVmResource.java:66) [restapi-jaxrs-3.2.0.jar:]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_07]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_07]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_07]
	at java.lang.reflect.Method.invoke(Method.java:601) [rt.jar:1.7.0_07]
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:155) [resteasy-jaxrs-2.3.2.Final.jar:]
	at org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:257) [resteasy-jaxrs-2.3.2.Final.jar:]
	at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:222) [resteasy-jaxrs-2.3.2.Final.jar:]
	at org.jboss.resteasy.core.ResourceLocator.invokeOnTargetObject(ResourceLocator.java:152) [resteasy-jaxrs-2.3.2.Final.jar:]
	at org.jboss.resteasy.core.ResourceLocator.invoke(ResourceLocator.java:91) [resteasy-jaxrs-2.3.2.Final.jar:]
	at org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:525) [resteasy-jaxrs-2.3.2.Final.jar:]
	... 20 more


Expected results:


Additional info:

Comment 4 Ravi Nori 2013-03-21 14:18:45 UTC
Hi Oded,

The bug was that, instead of reporting to he user that the UUID is invalid the server was throwing an internal exception. The patch returns a message to the user that the UUID is invalid. 

So what you see is the expected result.

Comment 5 Oded Ramraz 2013-03-21 14:30:38 UTC
Verify according to comment 4

Comment 6 Itamar Heim 2013-06-11 09:08:38 UTC
3.2 has been released

Comment 7 Itamar Heim 2013-06-11 09:08:38 UTC
3.2 has been released

Comment 8 Itamar Heim 2013-06-11 09:08:44 UTC
3.2 has been released

Comment 9 Itamar Heim 2013-06-11 09:37:09 UTC
3.2 has been released