Bug 1115966 - Update storage domain from rhevm-shell fails with java.lang.NullPointerException
Summary: Update storage domain from rhevm-shell fails with java.lang.NullPointerException
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Virtualization Manager
Classification: Red Hat
Component: ovirt-engine-restapi
Version: 3.3.0
Hardware: All
OS: Linux
unspecified
medium
Target Milestone: ---
: 3.5.0
Assignee: Tal Nisan
QA Contact: Elad
URL:
Whiteboard: storage
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-07-03 12:13 UTC by Jaison Raju
Modified: 2019-04-28 09:30 UTC (History)
12 users (show)

Fixed In Version: org.ovirt.engine-root-3.5.0-22
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2015-02-11 18:05:20 UTC
oVirt Team: Storage
Target Upstream Version:
Embargoed:
amureini: Triaged+


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Knowledge Base (Solution) 1160083 0 None None None Never
Red Hat Product Errata RHSA-2015:0158 0 normal SHIPPED_LIVE Important: Red Hat Enterprise Virtualization Manager 3.5.0 2015-02-11 22:38:50 UTC
oVirt gerrit 33498 0 master MERGED restapi: Do not attempt to extend a block domain if LUNs data not supplied Never
oVirt gerrit 33524 0 ovirt-engine-3.5 MERGED restapi: Do not attempt to extend a block domain if LUNs data not supplied Never
oVirt gerrit 35294 0 master MERGED restapi: Null check on domain volume group when attempting to extend domain Never
oVirt gerrit 35334 0 ovirt-engine-3.5 MERGED restapi: Null check on domain volume group when attempting to extend domain Never

Description Jaison Raju 2014-07-03 12:13:25 UTC
Description of problem:
While changing name of storage domain from rhevm shell , the command fails .

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

How reproducible:
Always

Steps to Reproduce:
1.
2.
3.


Actual results:
Variation of commands tried :


[RHEVM shell (connected)]# update storagedomain Storage-2 --name jaison --host-id 0787ec6c-adda-4cea-89c6-7927275f1ca9 --storage-logical_unit  logical_unit.address=10.65.208.162,logical_unit.port=3260,logical_unit.target=iqn.1992-08.com.netapp:sn.135107447,logical_unit.serial=SNETAPP_LUN_P4DbSowwsL-f,logical_unit.vendor_id=NETAPP,logical_unit.product_id=LUN,logical_unit.lun_mapping=0,logical_unit.portal="10.65.208.162:3260,1001",logical_unit-paths=0,logical_unit.id=360a9800050344462536f7777734c2d66 

error: wrong number of arguments, try 'help update' for help.

[RHEVM shell (connected)]# update storagedomain Storage-2 --name jaison  --storage-logical_unit  logical_unit.address=10.65.208.162,logical_unit.port=3260,logical_unit.target=iqn.1992-08.com.netapp:sn.135107447,logical_unit.serial=SNETAPP_LUN_P4DbSowwsL-f,logical_unit.vendor_id=NETAPP,logical_unit.product_id=LUN,logical_unit.lun_mapping=0,logical_unit.portal="10.65.208.162:3260,1001",logical_unit-paths=0,logical_unit.id=360a9800050344462536f7777734c2d66 

error: wrong number of arguments, try 'help update' for help.

[RHEVM shell (connected)]# update storagedomain Storage-2 --name jaison  

error: 
status: 500
reason: Internal Server Error
detail: JBWEB000065: HTTP Status 500 - java.lang.NullPointerException



[RHEVM shell (connected)]# update storagedomain Storage-2 --name jaison --storage-type iscsi  --storage-address 10.65.208.162  --storage-override_luns false --storage-logical_unit  logical_unit.address=10.65.208.162,logical_unit.port=3260,logical_unit.target=iqn.1992-08.com.netapp:sn.135107447,logical_unit.serial=SNETAPP_LUN_P4DbSowwsL-f,logical_unit.vendor_id=NETAPP,logical_unit.product_id=LUN,logical_unit.lun_mapping=0,logical_unit.portal="10.65.208.162:3260,1001",logical_unit-paths=0,logical_unit.id=360a9800050344462536f7777734c2d66

error: wrong number of arguments, try 'help update' for help.

[RHEVM shell (connected)]# 
[RHEVM shell (connected)]# update storagedomain Storage-2 --name jaison --storage-type iscsi  --storage-address 10.65.208.162  --storage-override_luns false

error: 
status: 500
reason: Internal Server Error
detail: JBWEB000065: HTTP Status 500 - java.lang.NullPointerException

[RHEVM shell (connected)]# update storagedomain Storage-2 --name jaison --format v3 --host-id 0787ec6c-adda-4cea-89c6-7927275f1ca9 --storage-address 10.65.208.162 --storage-logical_unit  logical_unit.address=10.65.208.162,logical_unit.port=3260,logical_unit.target=iqn.1992-08.com.netapp:sn.135107447,logical_unit.serial=SNETAPP_LUN_P4DbSowwsL-f,logical_unit.vendor_id=NETAPP,logical_unit.product_id=LUN,logical_unit.lun_mapping=0,logical_unit.portal='10.65.208.162:3260,1001',logical_unit-paths=0,logical_unit.id=360a9800050344462536f7777734c2d66 --storage-override_luns false --storage-type iscsi --type data

error: wrong number of arguments, try 'help update' for help.




Expected results:
As per https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Virtualization/3.3/html/Command_Line_Shell_Guide/storagedomain.html
the following should succeed .
[RHEVM shell (connected)]# update storagedomain DataStorage --name DataStorageOld



Additional info:
Logs noticed on 3.3 & 3.4 are similar : /var/log/ovirt-engine/server.log

3.3

2014-07-03 02:10:37,481 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/api].[org.ovirt.engine.api.restapi.BackendApplication]] (ajp-/127.0.0.1:870
2-6) JBWEB000236: Servlet.service() for servlet org.ovirt.engine.api.restapi.BackendApplication threw exception: org.jboss.resteasy.spi.UnhandledException: java.lang.NullPoin
terException
        at org.jboss.resteasy.core.SynchronousDispatcher.handleApplicationException(SynchronousDispatcher.java:365) [resteasy-jaxrs.jar:2.3.7.Final-redhat-2]
        at org.jboss.resteasy.core.SynchronousDispatcher.handleException(SynchronousDispatcher.java:233) [resteasy-jaxrs.jar:2.3.7.Final-redhat-2]
        at org.jboss.resteasy.core.SynchronousDispatcher.handleInvokerException(SynchronousDispatcher.java:209) [resteasy-jaxrs.jar:2.3.7.Final-redhat-2]
        at org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:557) [resteasy-jaxrs.jar:2.3.7.Final-redhat-2]
        at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:524) [resteasy-jaxrs.jar:2.3.7.Final-redhat-2]
        at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:126) [resteasy-jaxrs.jar:2.3.7.Final-redhat-2]
        at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208) [resteasy-jaxrs.jar:2.3.7.Final-redhat-2]
        at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55) [resteasy-jaxrs.jar:2.3.7.Final-redhat-2]
        at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50) [resteasy-jaxrs.jar:2.3.7.Final-redhat-2]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec.jar:1.0.2.Final-redhat-1]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295) [jbossweb.jar:7.3.0.Final-redhat-1]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb.jar:7.3.0.Final-redhat-1]
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) [jbossweb.jar:7.3.0.Final-redhat-1]
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149) [jbossweb.jar:7.3.0.Final-redhat-1]
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:499) [jbossweb.jar:7.3.0.Final-redhat-1]
        at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169) [jboss-as-web.jar:7.3.1.Final-redhat-4]
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145) [jbossweb.jar:7.3.0.Final-redhat-1]
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97) [jbossweb.jar:7.3.0.Final-redhat-1]
        at org.jboss.web.rewrite.RewriteValve.invoke(RewriteValve.java:466) [jbossweb.jar:7.3.0.Final-redhat-1]
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102) [jbossweb.jar:7.3.0.Final-redhat-1]
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:336) [jbossweb.jar:7.3.0.Final-redhat-1]
        at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:488) [jbossweb.jar:7.3.0.Final-redhat-1]
        at org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:420) [jbossweb.jar:7.3.0.Final-redhat-1]
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:920) [jbossweb.jar:7.3.0.Final-redhat-1]
        at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_51]
Caused by: java.lang.NullPointerException
        at org.ovirt.engine.api.restapi.resource.BackendStorageDomainResource.getIncomingLuns(BackendStorageDomainResource.java:199) [restapi-jaxrs.jar:]
        at org.ovirt.engine.api.restapi.resource.BackendStorageDomainResource.extendStorageDomain(BackendStorageDomainResource.java:131) [restapi-jaxrs.jar:]
        at org.ovirt.engine.api.restapi.resource.BackendStorageDomainResource.update(BackendStorageDomainResource.java:77) [restapi-jaxrs.jar:]
        at org.ovirt.engine.api.restapi.resource.BackendStorageDomainResource.update(BackendStorageDomainResource.java:46) [restapi-jaxrs.jar:]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_51]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_51]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_51]
        at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_51]
        at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:167) [resteasy-jaxrs.jar:2.3.7.Final-redhat-2]
        at org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:269) [resteasy-jaxrs.jar:2.3.7.Final-redhat-2]
        at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:227) [resteasy-jaxrs.jar:2.3.7.Final-redhat-2]
        at org.jboss.resteasy.core.ResourceLocator.invokeOnTargetObject(ResourceLocator.java:159) [resteasy-jaxrs.jar:2.3.7.Final-redhat-2]
        at org.jboss.resteasy.core.ResourceLocator.invoke(ResourceLocator.java:92) [resteasy-jaxrs.jar:2.3.7.Final-redhat-2]






3.4

2014-07-03 03:39:13,551 INFO  [org.jboss.resteasy.spi.ResteasyDeployment] (ajp-/127.0.0.1:8702-11) Adding singleton resource org.ovirt.engine.api.restapi.resource.BackendApiR
esource from Application javax.ws.rs.core.Application
2014-07-03 03:39:21,161 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/api].[org.ovirt.engine.api.restapi.BackendApplication]] (ajp-/127.0.0.1:870
2-6) JBWEB000236: Servlet.service() for servlet org.ovirt.engine.api.restapi.BackendApplication threw exception: org.jboss.resteasy.spi.UnhandledException: java.lang.NullPoin
terException
        at org.jboss.resteasy.core.SynchronousDispatcher.handleApplicationException(SynchronousDispatcher.java:365) [resteasy-jaxrs.jar:2.3.7.Final-redhat-2]
        at org.jboss.resteasy.core.SynchronousDispatcher.handleException(SynchronousDispatcher.java:233) [resteasy-jaxrs.jar:2.3.7.Final-redhat-2]
        at org.jboss.resteasy.core.SynchronousDispatcher.handleInvokerException(SynchronousDispatcher.java:209) [resteasy-jaxrs.jar:2.3.7.Final-redhat-2]
        at org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:557) [resteasy-jaxrs.jar:2.3.7.Final-redhat-2]
        at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:524) [resteasy-jaxrs.jar:2.3.7.Final-redhat-2]
        at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:126) [resteasy-jaxrs.jar:2.3.7.Final-redhat-2]
        at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208) [resteasy-jaxrs.jar:2.3.7.Final-redhat-2]
        at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55) [resteasy-jaxrs.jar:2.3.7.Final-redhat-2]
        at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50) [resteasy-jaxrs.jar:2.3.7.Final-redhat-2]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec.jar:1.0.2.Final-redhat-1]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295) [jbossweb.jar:7.3.0.Final-redhat-1]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb.jar:7.3.0.Final-redhat-1]
        at org.ovirt.engine.core.authentication.AuthenticationFilter.doFilter(AuthenticationFilter.java:80) [common.jar:]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) [jbossweb.jar:7.3.0.Final-redhat-1]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb.jar:7.3.0.Final-redhat-1]
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) [jbossweb.jar:7.3.0.Final-redhat-1]
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149) [jbossweb.jar:7.3.0.Final-redhat-1]
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:499) [jbossweb.jar:7.3.0.Final-redhat-1]
        at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169) [jboss-as-web.jar:7.3.1.Final-redhat-4]
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145) [jbossweb.jar:7.3.0.Final-redhat-1]
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97) [jbossweb.jar:7.3.0.Final-redhat-1]
        at org.jboss.web.rewrite.RewriteValve.invoke(RewriteValve.java:466) [jbossweb.jar:7.3.0.Final-redhat-1]
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102) [jbossweb.jar:7.3.0.Final-redhat-1]
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:336) [jbossweb.jar:7.3.0.Final-redhat-1]
        at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:488) [jbossweb.jar:7.3.0.Final-redhat-1]
        at org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:420) [jbossweb.jar:7.3.0.Final-redhat-1]
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:920) [jbossweb.jar:7.3.0.Final-redhat-1]
        at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_51]
Caused by: java.lang.NullPointerException
        at org.ovirt.engine.api.restapi.resource.BackendStorageDomainResource.getIncomingLuns(BackendStorageDomainResource.java:199) [restapi-jaxrs.jar:]
        at org.ovirt.engine.api.restapi.resource.BackendStorageDomainResource.extendStorageDomain(BackendStorageDomainResource.java:131) [restapi-jaxrs.jar:]
        at org.ovirt.engine.api.restapi.resource.BackendStorageDomainResource.update(BackendStorageDomainResource.java:77) [restapi-jaxrs.jar:]
        at org.ovirt.engine.api.restapi.resource.BackendStorageDomainResource.update(BackendStorageDomainResource.java:46) [restapi-jaxrs.jar:]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_51]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_51]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_51]
        at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_51]
        at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:167) [resteasy-jaxrs.jar:2.3.7.Final-redhat-2]
        at org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:269) [resteasy-jaxrs.jar:2.3.7.Final-redhat-2]
        at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:227) [resteasy-jaxrs.jar:2.3.7.Final-redhat-2]
        at org.jboss.resteasy.core.ResourceLocator.invokeOnTargetObject(ResourceLocator.java:159) [resteasy-jaxrs.jar:2.3.7.Final-redhat-2]
        at org.jboss.resteasy.core.ResourceLocator.invoke(ResourceLocator.java:92) [resteasy-jaxrs.jar:2.3.7.Final-redhat-2]
        at org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:542) [resteasy-jaxrs.jar:2.3.7.Final-redhat-2]
        ... 24 more

Comment 1 Juan Hernández 2014-07-03 13:12:12 UTC
This happens because the BackendStorageDomainResource.getIncomingLuns() method doesn't take into account that the incoming storage object may be null, like in this case.

Comment 2 Eyal Edri 2014-10-07 07:13:24 UTC
this bug status was moved to MODIFIED before engine vt5 was built,
hence moving to on_qa, if this was mistake and the fix isn't in,
please contact rhev-integ

Comment 3 Elad 2014-10-23 12:49:15 UTC
Still failing with a NUllPointerExceptoin for editing a storage domain via rhevm-shell:

[RHEVM shell (connected)]# update storagedomain --host-name green-vdsa iscsi1 --name  --storage-type iscsi  --storage-address 10.35.160.104  --storage-override_luns false
  ====================================================================================================== ERROR ====================================================================================================
  status: 500
  reason: Internal Server Error
  detail: JBWEB000065: HTTP Status 500 - java.lang.NullPointerException

Comment 4 Tal Nisan 2014-10-23 13:33:24 UTC
Which version did you test it on?

Comment 5 Elad 2014-10-23 13:38:32 UTC
rhev 3.5 vt7   rhevm-3.5.0-0.17.beta.el6ev.noarch

Comment 7 Elad 2014-11-27 12:40:16 UTC
Update storage domain using rhevm-shell now works as expected:

[RHEVM shell (connected)]# update storagedomain --host-name green-vdsc iscsi2 --name iscsi22 --storage-type iscsi  --storage-address 10.35.146.129  --storage-override_luns false

2014-11-27 14:38:37,271 INFO  [org.ovirt.engine.core.bll.storage.UpdateStorageDomainCommand] (ajp-/127.0.0.1:8702-9) [362d1785] Running command: UpdateStorageDomainCommand internal: false. Entities affected :  ID: 7105b661-ba03-4362-b692-3091c1aff5e7 Type: StorageAction group EDIT_STORAGE_DOMAIN_CONFIGURATION with role type ADMIN
2014-11-27 14:38:37,275 INFO  [org.ovirt.engine.core.vdsbroker.irsbroker.SetStorageDomainDescriptionVDSCommand] (ajp-/127.0.0.1:8702-9) [362d1785] START, SetStorageDomainDescriptionVDSCommand( storagePoolId = fb436630-9318-41b1-a2b8-bc3d3aa17097, ignoreFailoverLimit = false, storageDomainId = 7105b661-ba03-4362-b692-3091c1aff5e7, description = iscsi22), log id: 2727da2e
2014-11-27 14:38:37,443 INFO  [org.ovirt.engine.core.vdsbroker.irsbroker.SetStorageDomainDescriptionVDSCommand] (ajp-/127.0.0.1:8702-9) [362d1785] FINISH, SetStorageDomainDescriptionVDSCommand, log id: 2727da2e


Verified using rhev 3.5 vt12

Comment 9 errata-xmlrpc 2015-02-11 18:05:20 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHSA-2015-0158.html


Note You need to log in before you can comment on or make changes to this bug.