ambari-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alejandro Fernandez" <afernan...@hortonworks.com>
Subject Re: Review Request 36564: Deleting a host using the API causes NPE
Date Fri, 17 Jul 2015 01:22:05 GMT

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/36564/
-----------------------------------------------------------

(Updated July 17, 2015, 1:22 a.m.)


Review request for Ambari, John Speidel, Sumit Mohanty, and Sid Wagle.


Bugs: AMBARI-12429
    https://issues.apache.org/jira/browse/AMBARI-12429


Repository: ambari


Description
-------

There are 3 issues while deleting hosts.
1. Created a cluster with multiple hosts, then stopped all of the services on 1 host (preferably
one with only clients so it has nothing to stop). Then deleted the host using the API.
E.g., curl -u admin:admin -H "X-Requested-By: ambari" -X DELETE http://c6401.ambari.apache.org:8080/api/v1/hosts/c6404.ambari.apache.org
This led to Null Pointer Exceptions in ambari-server because the UI is still generating requests
to get the ServiceComponentHost response, which isn't locking code, and makes request to get
the HostState (this record has been deleted), so a NPE is thrown. This needs to be more robust;
adding locks around here may have other repercussions, so I decided to just check for != null.

2. If a Host with DataNode  becomes decommissioned, it will have a record in the requestoperationlevel
table, whose records are not currently being deleted when a Host is deleted.

3. There are differences between deleting a Host using the /hosts/name and /clusters/name/hosts/name
API. In the former, since no cluster is provided, it blindly deletes the host without checking
if it has any masters/slaves on it, which need to be stopped and deleted first.


Diffs (updated)
-----

  ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
de9ae52 
  ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostResourceProvider.java
4c14426 
  ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RequestOperationLevel.java
c7c0160 
  ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RequestResourceProvider.java
fa49d7f 
  ambari-server/src/main/java/org/apache/ambari/server/orm/dao/RequestOperationLevelDAO.java
PRE-CREATION 
  ambari-server/src/main/java/org/apache/ambari/server/orm/entities/RequestOperationLevelEntity.java
2c11e55 
  ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClustersImpl.java 665dd56

  ambari-server/src/main/java/org/apache/ambari/server/state/svccomphost/ServiceComponentHostImpl.java
9f25ad7 
  ambari-server/src/test/java/org/apache/ambari/server/controller/internal/RequestOperationLevelTest.java
bd4ad90 
  ambari-server/src/test/java/org/apache/ambari/server/controller/internal/RequestResourceProviderTest.java
ed8336e 

Diff: https://reviews.apache.org/r/36564/diff/


Testing
-------

System tests passed, see test matrix in comments of AMBARI-12429.

Waiting for unit test results.


Thanks,

Alejandro Fernandez


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message