[ 
https://issues.apache.org/jira/browse/GOBBLIN-1781?focusedWorklogId=844435&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-844435
 ]

ASF GitHub Bot logged work on GOBBLIN-1781:
-------------------------------------------

                Author: ASF GitHub Bot
            Created on: 08/Feb/23 19:31
            Start Date: 08/Feb/23 19:31
    Worklog Time Spent: 10m 
      Work Description: Will-Lo commented on code in PR #3638:
URL: https://github.com/apache/gobblin/pull/3638#discussion_r1100589492


##########
gobblin-yarn/src/main/java/org/apache/gobblin/yarn/YarnService.java:
##########
@@ -463,9 +465,14 @@ private EventSubmitter buildEventSubmitter() {
    * @param yarnContainerRequestBundle the desired containers information, 
including numbers, resource and helix tag
    * @param inUseInstances  a set of in use instances
    */

Review Comment:
   Update the javadoc for what the return value means in this case



##########
gobblin-yarn/src/main/java/org/apache/gobblin/yarn/YarnService.java:
##########
@@ -463,9 +465,14 @@ private EventSubmitter buildEventSubmitter() {
    * @param yarnContainerRequestBundle the desired containers information, 
including numbers, resource and helix tag
    * @param inUseInstances  a set of in use instances
    */
-  public synchronized void 
requestTargetNumberOfContainers(YarnContainerRequestBundle 
yarnContainerRequestBundle, Set<String> inUseInstances) {
+  public synchronized boolean 
requestTargetNumberOfContainers(YarnContainerRequestBundle 
yarnContainerRequestBundle, Set<String> inUseInstances) {
     LOGGER.info("Trying to set numTargetContainers={}, in-use helix instances 
count is {}, container map size is {}",
         yarnContainerRequestBundle.getTotalContainers(), 
inUseInstances.size(), this.containerMap.size());
+    if (startupInProgress) {
+      LOGGER.info("YarnService is still starting up. Unable to request 
containers from yarn until YarnService is finished starting up.");

Review Comment:
   Nit: This should be a warn log





Issue Time Tracking
-------------------

    Worklog Id:     (was: 844435)
    Time Spent: 1h 20m  (was: 1h 10m)

> Helix offline instance purging is not thread safe in the yarn service
> ---------------------------------------------------------------------
>
>                 Key: GOBBLIN-1781
>                 URL: https://issues.apache.org/jira/browse/GOBBLIN-1781
>             Project: Apache Gobblin
>          Issue Type: Bug
>            Reporter: Andy Jiang
>            Priority: Major
>          Time Spent: 1h 20m
>  Remaining Estimate: 0h
>
> Helix instances are purged during startup of the yarn service. This operation 
> must be done without new helix instances being added or removed (i.e. the API 
> call is not thread safe).
>  
> The current implementation blocks the yarn service from allocating initial 
> containers while the helix instance purging is enabled, but it does not 
> prevent other external services from requesting containers through its public 
> methods.
> These 2 services start up concurrently, and it's possible that the 
> AutoScalingYarnManager starts up before the Yarn Service is completely 
> finished purging. This means leads to the AutoScalingYarnManager to 
> requestContainers while the instances are still purging.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to