Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 923196

Summary: [RHEVM-RHS] Error "error: type "brick" does not exist." seen when trying to perform replace-brick from rhevm-shell.
Product: Red Hat Enterprise Virtualization Manager Reporter: Shruti Sampat <ssampat>
Component: ovirt-engine-restapiAssignee: Sahina Bose <sabose>
Status: CLOSED CURRENTRELEASE QA Contact: SATHEESARAN <sasundar>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 3.2.0CC: acathrow, bazulay, dtsang, grajaiya, iheim, jkt, juan.hernandez, knarra, mmahoney, oramraz, pprakash, Rhev-m-bugs, sabose, sbonazzo, scohen, sdharane, yeylon
Target Milestone: ---Flags: scohen: Triaged+
Target Release: 3.4.0   
Hardware: All   
OS: All   
Whiteboard: gluster
Fixed In Version: org.ovirt.engine-root-3.4.0-14 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: Gluster RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
engine.log none

Description Shruti Sampat 2013-03-19 12:13:19 UTC
Description of problem:
---------------------------------------
When trying to perform replace-brick operation from the rhevm-shell, using the following command, 

[RHEVM shell (connected)]# action brick bc0b1edc-2455-437a-991b-bfca4cb2b51a replace --cluster-identifier gluster --glustervolume-identifier vol1 --brick-server_id e54b7b16-92d2-4439-9312-74f1d435bd2f --brick-brick_dir /tmp/br1

the following error is seen - 

error: type "brick" does not exist.

Version-Release number of selected component (if applicable):
rhevm-cli-3.2.0.5-1.el6ev.noarch

How reproducible:
always

Steps to Reproduce:
1. Run command to replace a brick as described above.
  
Actual results:
The error says that the type 'brick' does not exist, which is not true.

Expected results:
The error message should give the correct error, if there is any error, otherwise the command should be executed.

Additional info:

Comment 1 Shruti Sampat 2013-04-29 07:25:05 UTC
I am seeing the following error on trying to replace a brick via the rhevm-shell  - 
[RHEVM shell (connected)]# action brick 0d5aeed2-aec0-4ea5-966c-0e348943e17f replace --glustervolume-identifier fb288143-b5c1-47fd-bbb0-5a8a0bb44d3b --cluster-identifier cluster1 --brick-server_id ac336c91-0825-427d-aea7-37196d3939c2 --brick-brick_dir /tmp/vb2


error: 
status: 400
reason: Bad Request
detail: Internal Engine Error

The following exception is seen in the engine logs - 

2013-04-29 08:46:50,582 INFO  [org.ovirt.engine.core.bll.gluster.ReplaceGlusterVolumeBrickCommand] (ajp-/127.0.0.1:8702-14) [33ff6751] Running command: ReplaceGlusterVolumeBrickCommand internal: false. Entities affected :  ID: fb288143-b5c1-47fd-bbb0-5a8a0bb44d3b Type: GlusterVolume
2013-04-29 08:46:50,583 INFO  [org.ovirt.engine.core.vdsbroker.gluster.ReplaceGlusterVolumeBrickVDSCommand] (ajp-/127.0.0.1:8702-14) [33ff6751] START, ReplaceGlusterVolumeBrickVDSCommand(HostName = 10.70.35.154, HostId = ba1323b8-8151-499d-82a5-9559b154a3d2), log id: d165701
2013-04-29 08:46:51,535 INFO  [org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumesListVDSCommand] (QuartzScheduler_Worker-11) FINISH, GlusterVolumesListVDSCommand, return: {88281bf4-8261-42ee-8bf9-a47a9435a156=org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity@f621d257, fb288143-b5c1-47fd-bbb0-5a8a0bb44d3b=org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity@db6eaffa}, log id: 7e3f6431
2013-04-29 08:46:51,549 INFO  [org.ovirt.engine.core.vdsbroker.gluster.GlusterServersListVDSCommand] (QuartzScheduler_Worker-11) START, GlusterServersListVDSCommand(HostName = 10.70.35.96, HostId = c31516ff-0915-4b3e-b0d5-ac2e7a91ee48), log id: 6ff23d92
2013-04-29 08:46:53,194 INFO  [org.ovirt.engine.core.vdsbroker.gluster.GlusterServersListVDSCommand] (QuartzScheduler_Worker-11) FINISH, GlusterServersListVDSCommand, return: [org.ovirt.engine.core.common.businessentities.gluster.GlusterServerInfo@960860ea, org.ovirt.engine.core.common.businessentities.gluster.GlusterServerInfo@2a9be40a], log id: 6ff23d92
2013-04-29 08:46:53,196 INFO  [org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumesListVDSCommand] (QuartzScheduler_Worker-11) START, GlusterVolumesListVDSCommand(HostName = 10.70.35.96, HostId = c31516ff-0915-4b3e-b0d5-ac2e7a91ee48), log id: 2cb61789
2013-04-29 08:46:54,190 INFO  [org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector] (QuartzScheduler_Worker-88) No string for UNASSIGNED type. Use default Log
2013-04-29 08:46:54,191 INFO  [org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector] (QuartzScheduler_Worker-88) No string for UNASSIGNED type. Use default Log
2013-04-29 08:46:54,624 INFO  [org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumesListVDSCommand] (QuartzScheduler_Worker-11) FINISH, GlusterVolumesListVDSCommand, return: {a3fc2f28-4245-4392-8265-0da3c52c492d=org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity@41dd9d02, da9380c3-aacd-4bba-ba20-4fb03d6520a6=org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity@1753230b}, log id: 2cb61789
2013-04-29 08:46:59,640 INFO  [org.ovirt.engine.core.vdsbroker.gluster.GlusterServersListVDSCommand] (QuartzScheduler_Worker-14) START, GlusterServersListVDSCommand(HostName = 10.70.35.154, HostId = ba1323b8-8151-499d-82a5-9559b154a3d2), log id: 6350147a
2013-04-29 08:47:00,831 INFO  [org.ovirt.engine.core.vdsbroker.gluster.ReplaceGlusterVolumeBrickVDSCommand] (ajp-/127.0.0.1:8702-14) [33ff6751] FINISH, ReplaceGlusterVolumeBrickVDSCommand, log id: d165701
2013-04-29 08:47:00,832 ERROR [org.ovirt.engine.core.bll.gluster.ReplaceGlusterVolumeBrickCommand] (ajp-/127.0.0.1:8702-14) [33ff6751] Command org.ovirt.engine.core.bll.gluster.ReplaceGlusterVolumeBrickCommand throw exception: java.lang.NullPointerException
	at org.ovirt.engine.core.bll.gluster.ReplaceGlusterVolumeBrickCommand.executeCommand(ReplaceGlusterVolumeBrickCommand.java:80) [engine-bll.jar:]
	at org.ovirt.engine.core.bll.CommandBase.executeWithoutTransaction(CommandBase.java:1042) [engine-bll.jar:]
	at org.ovirt.engine.core.bll.CommandBase.executeActionInTransactionScope(CommandBase.java:1127) [engine-bll.jar:]
	at org.ovirt.engine.core.bll.CommandBase.runInTransaction(CommandBase.java:1513) [engine-bll.jar:]
	at org.ovirt.engine.core.utils.transaction.TransactionSupport.executeInSuppressed(TransactionSupport.java:166) [engine-utils.jar:]
	at org.ovirt.engine.core.utils.transaction.TransactionSupport.executeInScope(TransactionSupport.java:108) [engine-utils.jar:]
	at org.ovirt.engine.core.bll.CommandBase.execute(CommandBase.java:1145) [engine-bll.jar:]
	at org.ovirt.engine.core.bll.CommandBase.executeAction(CommandBase.java:315) [engine-bll.jar:]
	at org.ovirt.engine.core.bll.Backend.runActionImpl(Backend.java:361) [engine-bll.jar:]
	at org.ovirt.engine.core.bll.Backend.RunAction(Backend.java:307) [engine-bll.jar:]
	at sun.reflect.GeneratedMethodAccessor136.invoke(Unknown Source) [:1.7.0_09-icedtea]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_09-icedtea]
	at java.lang.reflect.Method.invoke(Method.java:601) [rt.jar:1.7.0_09-icedtea]
	at org.jboss.as.ee.component.ManagedReferenceMethodInterceptorFactory$ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptorFactory.java:72) [jboss-as-ee.jar:7.2.0.Final-redhat-3]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation.jar:1.1.1.Final-redhat-2]
	at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53) [jboss-invocation.jar:1.1.1.Final-redhat-2]
	at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:58) [jboss-as-ee.jar:7.2.0.Final-redhat-3]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation.jar:1.1.1.Final-redhat-2]
	at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:374) [jboss-invocation.jar:1.1.1.Final-redhat-2]
	at org.ovirt.engine.core.utils.ThreadLocalSessionCleanerInterceptor.injectWebContextToThreadLocal(ThreadLocalSessionCleanerInterceptor.java:11) [engine-utils.jar:]
	at sun.reflect.GeneratedMethodAccessor23.invoke(Unknown Source) [:1.7.0_09-icedtea]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_09-icedtea]
	at java.lang.reflect.Method.invoke(Method.java:601) [rt.jar:1.7.0_09-icedtea]
	at org.jboss.as.ee.component.ManagedReferenceLifecycleMethodInterceptorFactory$ManagedReferenceLifecycleMethodInterceptor.processInvocation(ManagedReferenceLifecycleMethodInterceptorFactory.java:123) [jboss-as-ee.jar:7.2.0.Final-redhat-3]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation.jar:1.1.1.Final-redhat-2]
	at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53) [jboss-invocation.jar:1.1.1.Final-redhat-2]
	at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:58) [jboss-as-ee.jar:7.2.0.Final-redhat-3]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation.jar:1.1.1.Final-redhat-2]
	at org.jboss.as.ejb3.component.invocationmetrics.ExecutionTimeInterceptor.processInvocation(ExecutionTimeInterceptor.java:43) [jboss-as-ejb3.jar:7.2.0.Final-redhat-3]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation.jar:1.1.1.Final-redhat-2]
	at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21) [jboss-invocation.jar:1.1.1.Final-redhat-2]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation.jar:1.1.1.Final-redhat-2]
	at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) [jboss-invocation.jar:1.1.1.Final-redhat-2]
	at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:53) [jboss-as-ee.jar:7.2.0.Final-redhat-3]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation.jar:1.1.1.Final-redhat-2]
	at org.jboss.as.ejb3.component.singleton.SingletonComponentInstanceAssociationInterceptor.processInvocation(SingletonComponentInstanceAssociationInterceptor.java:52) [jboss-as-ejb3.jar:7.2.0.Final-redhat-3]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation.jar:1.1.1.Final-redhat-2]
	at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInNoTx(CMTTxInterceptor.java:235) [jboss-as-ejb3.jar:7.2.0.Final-redhat-3]
	at org.jboss.as.ejb3.tx.CMTTxInterceptor.supports(CMTTxInterceptor.java:374) [jboss-as-ejb3.jar:7.2.0.Final-redhat-3]
	at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:218) [jboss-as-ejb3.jar:7.2.0.Final-redhat-3]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation.jar:1.1.1.Final-redhat-2]
	at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41) [jboss-as-ejb3.jar:7.2.0.Final-redhat-3]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation.jar:1.1.1.Final-redhat-2]
	at org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(ShutDownInterceptorFactory.java:64) [jboss-as-ejb3.jar:7.2.0.Final-redhat-3]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation.jar:1.1.1.Final-redhat-2]
	at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:59) [jboss-as-ejb3.jar:7.2.0.Final-redhat-3]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation.jar:1.1.1.Final-redhat-2]
	at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50) [jboss-as-ee.jar:7.2.0.Final-redhat-3]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation.jar:1.1.1.Final-redhat-2]
	at org.jboss.as.ee.component.TCCLInterceptor.processInvocation(TCCLInterceptor.java:45) [jboss-as-ee.jar:7.2.0.Final-redhat-3]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation.jar:1.1.1.Final-redhat-2]
	at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) [jboss-invocation.jar:1.1.1.Final-redhat-2]
	at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:165) [jboss-as-ee.jar:7.2.0.Final-redhat-3]
	at org.jboss.as.ee.component.ViewDescription$1.processInvocation(ViewDescription.java:182) [jboss-as-ee.jar:7.2.0.Final-redhat-3]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation.jar:1.1.1.Final-redhat-2]
	at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) [jboss-invocation.jar:1.1.1.Final-redhat-2]
	at org.jboss.as.ee.component.ProxyInvocationHandler.invoke(ProxyInvocationHandler.java:72) [jboss-as-ee.jar:7.2.0.Final-redhat-3]
	at org.ovirt.engine.core.common.interfaces.BackendLocal$$$view9.RunAction(Unknown Source) [engine-common.jar:]
	at org.ovirt.engine.api.restapi.resource.BackendResource.doAction(BackendResource.java:191)
	at org.ovirt.engine.api.restapi.resource.AbstractBackendActionableResource.doAction(AbstractBackendActionableResource.java:77)
	at org.ovirt.engine.api.restapi.resource.AbstractBackendActionableResource.doAction(AbstractBackendActionableResource.java:119)
	at org.ovirt.engine.api.restapi.resource.gluster.BackendGlusterBrickResource.replace(BackendGlusterBrickResource.java:65)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_09-icedtea]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_09-icedtea]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_09-icedtea]
	at java.lang.reflect.Method.invoke(Method.java:601) [rt.jar:1.7.0_09-icedtea]
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:167) [resteasy-jaxrs.jar:2.3.5.Final-redhat-1]
	at org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:257) [resteasy-jaxrs.jar:2.3.5.Final-redhat-1]
	at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:222) [resteasy-jaxrs.jar:2.3.5.Final-redhat-1]
	at org.jboss.resteasy.core.ResourceLocator.invokeOnTargetObject(ResourceLocator.java:159) [resteasy-jaxrs.jar:2.3.5.Final-redhat-1]
	at org.jboss.resteasy.core.ResourceLocator.invoke(ResourceLocator.java:107) [resteasy-jaxrs.jar:2.3.5.Final-redhat-1]
	at org.jboss.resteasy.core.ResourceLocator.invokeOnTargetObject(ResourceLocator.java:154) [resteasy-jaxrs.jar:2.3.5.Final-redhat-1]
	at org.jboss.resteasy.core.ResourceLocator.invoke(ResourceLocator.java:107) [resteasy-jaxrs.jar:2.3.5.Final-redhat-1]
	at org.jboss.resteasy.core.ResourceLocator.invokeOnTargetObject(ResourceLocator.java:154) [resteasy-jaxrs.jar:2.3.5.Final-redhat-1]
	at org.jboss.resteasy.core.ResourceLocator.invoke(ResourceLocator.java:107) [resteasy-jaxrs.jar:2.3.5.Final-redhat-1]
	at org.jboss.resteasy.core.ResourceLocator.invokeOnTargetObject(ResourceLocator.java:154) [resteasy-jaxrs.jar:2.3.5.Final-redhat-1]
	at org.jboss.resteasy.core.ResourceLocator.invoke(ResourceLocator.java:107) [resteasy-jaxrs.jar:2.3.5.Final-redhat-1]
	at org.jboss.resteasy.core.ResourceLocator.invokeOnTargetObject(ResourceLocator.java:154) [resteasy-jaxrs.jar:2.3.5.Final-redhat-1]
	at org.jboss.resteasy.core.ResourceLocator.invoke(ResourceLocator.java:92) [resteasy-jaxrs.jar:2.3.5.Final-redhat-1]
	at org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:542) [resteasy-jaxrs.jar:2.3.5.Final-redhat-1]
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:524) [resteasy-jaxrs.jar:2.3.5.Final-redhat-1]
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:126) [resteasy-jaxrs.jar:2.3.5.Final-redhat-1]
	at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208) [resteasy-jaxrs.jar:2.3.5.Final-redhat-1]
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55) [resteasy-jaxrs.jar:2.3.5.Final-redhat-1]
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50) [resteasy-jaxrs.jar:2.3.5.Final-redhat-1]
	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)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)
	at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97)
	at org.jboss.web.rewrite.RewriteValve.invoke(RewriteValve.java:465)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:336)
	at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:488)
	at org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:420)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:920)
	at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_09-icedtea]

2013-04-29 08:47:00,837 WARN  [org.ovirt.engine.core.compat.backendcompat.PropertyInfo] (ajp-/127.0.0.1:8702-14) Unable to get value of property: glusterVolume for class org.ovirt.engine.core.bll.gluster.ReplaceGlusterVolumeBrickCommand
2013-04-29 08:47:00,837 WARN  [org.ovirt.engine.core.compat.backendcompat.PropertyInfo] (ajp-/127.0.0.1:8702-14) Unable to get value of property: vds for class org.ovirt.engine.core.bll.gluster.ReplaceGlusterVolumeBrickCommand
2013-04-29 08:47:00,869 ERROR [org.ovirt.engine.api.restapi.resource.AbstractBackendResource] (ajp-/127.0.0.1:8702-14) Operation Failed: [Internal Engine Error]


Moving the bug to ASSIGNED state.

Comment 2 Michael Pasternak 2013-04-29 07:43:45 UTC
(In reply to comment #1)
> I am seeing the following error on trying to replace a brick via the
> rhevm-shell  - 
> [RHEVM shell (connected)]# action brick 0d5aeed2-aec0-4ea5-966c-0e348943e17f
> replace --glustervolume-identifier fb288143-b5c1-47fd-bbb0-5a8a0bb44d3b
> --cluster-identifier cluster1 --brick-server_id
> ac336c91-0825-427d-aea7-37196d3939c2 --brick-brick_dir /tmp/vb2
> 
> 
> error: 
> status: 400
> reason: Bad Request
> detail: Internal Engine Error
> 

AFAICS the error you see ain't related to the originally reported bug for cli,
please consider opening new one for api/engine instead.

Comment 3 Sahina Bose 2013-08-26 06:57:49 UTC
Have posted patch to remove replace-brick, as this operation is planned to be removed from gluster as well.

Comment 6 Sahina Bose 2013-11-28 06:41:09 UTC
Replace brick is marked deprecated.

Checked that the following command does not give a Null Pointer exception

action brick 9831a197-4efb-44a8-846a-2e7555d7aeaa replace --glustervolume-identifier 0b83bb0b-5a1a-4000-a489-1a95c044f683 --cluster-identifier Default --brick-server_id d3f5b6d8-fa84-4267-8dff-cd24bb119967 --brick-brick_dir /export/td3

Comment 7 SATHEESARAN 2014-01-06 06:59:58 UTC
Tested with IS30 and glusterfs-3.4.0.53rhs-1

I hit NPE here in this context, when did tried to replace the brick as follows :

[RHEVM shell (connected)]# action brick e93eeec7-d2b6-49da-b340-6d8837901b04 replace --glustervolume-identifier b6e2ed30-370d-46b1-9071-fe851aa57caf --cluster-identifier 155234fe-976e-43af-ad30-7b760d7e7ca7 --brick-server_id fa1b1b2e-a433-4718-b3fd-13fcafa8fddd --brick-brick_dir /rhs/brick1/sbr1


error: 
status: 400
reason: Bad Request
detail: Internal Engine Error


[RHEVM shell (connected)]# action brick e93eeec7-d2b6-49da-b340-6d8837901b04 replace --glustervolume-identifier b6e2ed30-370d-46b1-9071-fe851aa57caf --cluster-identifier 155234fe-976e-43af-ad30-7b760d7e7ca7 --brick-server_id fa1b1b2e-a433-4718-b3fd-13fcafa8fddd --brick-brick_dir /rhs/brick1/sbr1


error: 
status: 400
reason: Bad Request
detail: volume replace brick start failed
error: replace brick is already started for volume
return code: -1


I also see the following error snip from engine.log :
<snip>
nd, log id: 43978848
2014-01-06 03:18:21,275 ERROR [org.ovirt.engine.core.bll.gluster.ReplaceGlusterVolumeBrickCommand] (ajp-/127.0.0.1:8702-7) [62678f59] Command org.ovirt.engine.core.bll.gluster.ReplaceG
lusterVolumeBrickCommand throw exception: java.lang.NullPointerException
        at org.ovirt.engine.core.bll.gluster.ReplaceGlusterVolumeBrickCommand.executeCommand(ReplaceGlusterVolumeBrickCommand.java:80) [bll.jar:]
        at org.ovirt.engine.core.bll.CommandBase.executeWithoutTransaction(CommandBase.java:1134) [bll.jar:]
        at org.ovirt.engine.core.bll.CommandBase.executeActionInTransactionScope(CommandBase.java:1219) [bll.jar:]
        at org.ovirt.engine.core.bll.CommandBase.runInTransaction(CommandBase.java:1895) [bll.jar:]
        at org.ovirt.engine.core.utils.transaction.TransactionSupport.executeInSuppressed(TransactionSupport.java:174) [utils.jar:]
        at org.ovirt.engine.core.utils.transaction.TransactionSupport.executeInScope(TransactionSupport.java:116) [utils.jar:]
        at org.ovirt.engine.core.bll.CommandBase.execute(CommandBase.java:1239) [bll.jar:]
        at org.ovirt.engine.core.bll.CommandBase.executeAction(CommandBase.java:362) [bll.jar:]
        at org.ovirt.engine.core.bll.Backend.runAction(Backend.java:416) [bll.jar:]
        at org.ovirt.engine.core.bll.Backend.runActionImpl(Backend.java:395) [bll.jar:]
        at org.ovirt.engine.core.bll.Backend.RunAction(Backend.java:353) [bll.jar:]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_45]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_45]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_45]
        at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_45]
        at org.jboss.as.ee.component.ManagedReferenceMethodInterceptorFactory$ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptorFactory.java:72) [jbo
ss-as-ee.jar:7.3.0.Final-redhat-14]

</snip>

SETUP INFORMATION
==================
1. Created a GlusterFS Datacenter (3.3)
2. Created a gluster enabled cluster (by name gluster-cluster-1)
3. Added 2 RHSS Nodes to the cluster
4. Created a distribute-replicate volume of 2X2
5. Optimized the volume for virt-store
6. Started the volume
7. Tried to replace one of the brick, using rhevm-shell as follows :

[RHEVM shell (connected)]# action brick e93eeec7-d2b6-49da-b340-6d8837901b04 replace --glustervolume-identifier b6e2ed30-370d-46b1-9071-fe851aa57caf --cluster-identifier 155234fe-976e-43af-ad30-7b760d7e7ca7 --brick-server_id fa1b1b2e-a433-4718-b3fd-13fcafa8fddd --brick-brick_dir /rhs/brick1/sbr1


error: 
status: 400
reason: Bad Request
detail: Internal Engine Error

Got the error and engine.log pointed to NPE

Comment 8 SATHEESARAN 2014-01-06 07:01:51 UTC
Created attachment 845935 [details]
engine.log

engine.log  is attached and it contains the NULL POINTER EXCEPTION error, while doing replace brick from rhevm-shell

Comment 10 Juan Hernández 2014-02-25 15:16:49 UTC
Sahina, is this still going to make 3.4? If not, please retarget.

Comment 12 Juan Hernández 2014-02-26 13:13:14 UTC
I think that this can't be closed as WONTFIX, even if the replace-brick operation is deprecated. We need to either make it work (and that is what I prefer) or at least generate a clear error message for the user.

What is the impact for the user of not fixing this? Is the replace-brick operation something that users did frequently? Is there any alternative?

Comment 13 Sahina Bose 2014-02-27 05:06:01 UTC
No, replace-brick is not done frequently. replace-brick is no longer supported in the underlying glusterfs. Users should do a remove-brick (with migrate) and add-brick instead.

We could change the REST API to return an error from the replace-brick call.

Comment 14 Juan Hernández 2014-02-27 10:11:02 UTC
Yes, please modify the REST API so that it returns an error when the replace-brick call is performed. The error message should clearly indicate that the command isn't supported.

Also, open a new bug to remove the command completely in 4.0.

Comment 15 Juan Hernández 2014-02-27 10:44:09 UTC
In the bug for 4.0, please add [DEPRECATION] as a prefix to the subject of the bug.

Comment 16 Juan Hernández 2014-03-25 14:45:16 UTC
Sahina, it isn't clear to me if you finally modified the RESTAPI as suggested in comment 14. If you did, where is the patch?

Comment 17 Sahina Bose 2014-03-26 11:00:53 UTC
Sorry - missed this...Yes..patch submitted as per comment 14. http://gerrit.ovirt.org/#/c/25259/

Comment 18 Sandro Bonazzola 2014-04-18 08:04:45 UTC
All referenced patches have been merged, shouldn't this be in modified state?

Comment 19 SATHEESARAN 2014-05-20 12:01:09 UTC
Verified with RHEV 3.4 [ av9.1] and RHS 3.0 nightly [ glusterfs-3.6.0.3-1.el6rhs ]

[RHEVM shell (connected)]# action brick 38c9bb58-5de8-46cd-a0f4-ee663a1df4fc replace --cluster-identifier gluster-cluster-1-3_4 --glustervolume-identifier vol-vol1 --brick-server_id  2eaad963-3be5-472f-b4d6-1c42e931e0d4 --brick-brick_dir /rhs/brick4/newbrick

  =================================================================================================== ERROR =================================================================================================
  status: 503
  reason: Service Unavailable
  detail: Replace brick is not supported. First migrate brick and add new brick instead.
  ===========================================================================================================================================================================================================

Based on the above output moving this bug as VERIFIED

Comment 20 Itamar Heim 2014-06-12 14:09:49 UTC
Closing as part of 3.4.0