You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@gobblin.apache.org by GitBox <gi...@apache.org> on 2021/01/26 21:36:56 UTC

[GitHub] [incubator-gobblin] ZihanLi58 opened a new pull request #3214: [GOBBLIN-1359] Fix the error that Exception thrown by writer be swallowed by Reactivex and cause jobs to hang

ZihanLi58 opened a new pull request #3214:
URL: https://github.com/apache/incubator-gobblin/pull/3214


   Dear Gobblin maintainers,
   
   Please accept this PR. I understand that it will not be reviewed until I have checked off all the steps below!
   
   
   ### JIRA
   - [ ] My PR addresses the following [Gobblin JIRA](https://issues.apache.org/jira/browse/GOBBLIN/) issues and references them in the PR title. For example, "[GOBBLIN-XXX] My Gobblin PR"
       - https://issues.apache.org/jira/browse/GOBBLIN-1359
   
   
   ### Description
   - [ ] Here are some details about my PR, including screenshots (if applicable):
   
   After the first change https://github.com/apache/incubator-gobblin/pull/3200, we still see the job hang if onNext throw error after a long processing time (i.e. 5 mins). And after investigating, we see the ConnectableFlowable.connect() which is supposed to return immediately does not return even the flow is finished and canceled. So the solution will be make the call in another thread, and let the sequence code get executed which is to periodically check whether the job finished.
   
   ### Tests
   - [ ] My PR adds the following unit tests __OR__ does not need testing for this extremely good reason:
   
   Run Azkaban job to simulate the slow write, and make sure the exception can set the fork state to FAIL and cause task to fail and retry
   
   ### Commits
   - [ ] My commits all reference JIRA issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "[How to write a good git commit message](http://chris.beams.io/posts/git-commit/)":
       1. Subject is separated from body by a blank line
       2. Subject is limited to 50 characters
       3. Subject does not end with a period
       4. Subject uses the imperative mood ("add", not "adding")
       5. Body wraps at 72 characters
       6. Body explains "what" and "why", not "how"
   
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-gobblin] sv2000 commented on a change in pull request #3214: [GOBBLIN-1359] Fix the error that Exception thrown by writer be swallowed by Reactivex and cause jobs to hang

Posted by GitBox <gi...@apache.org>.
sv2000 commented on a change in pull request #3214:
URL: https://github.com/apache/incubator-gobblin/pull/3214#discussion_r564866247



##########
File path: gobblin-modules/gobblin-kafka-common/src/main/java/org/apache/gobblin/source/extractor/extract/kafka/KafkaStreamingExtractor.java
##########
@@ -17,6 +17,9 @@
 
 package org.apache.gobblin.source.extractor.extract.kafka;
 
+import io.reactivex.Emitter;

Review comment:
       There seem to be many unused imports. 

##########
File path: gobblin-runtime/src/main/java/org/apache/gobblin/runtime/StreamModelTaskRunner.java
##########
@@ -86,7 +87,10 @@ protected void run() throws Exception {
 
     // The cancel is not propagated to the extractor's record generator when it has been turned into a hot Flowable
     // by publish, so set the shutdownRequested flag on cancel to stop the extractor
-    Flowable streamWithShutdownOnCancel = connectableStream.doOnCancel(() -> this.shutdownRequested.set(true));
+    Flowable streamWithShutdownOnCancel = connectableStream.doOnCancel(() -> {
+      this.shutdownRequested.set(true);
+      this.extractor.shutdown();

Review comment:
       Shouldn't the extractor shutdown be called as a result of setting the shutdownRequestedFlag?




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-gobblin] ZihanLi58 commented on a change in pull request #3214: [GOBBLIN-1359] Fix the error that Exception thrown by writer be swallowed by Reactivex and cause jobs to hang

Posted by GitBox <gi...@apache.org>.
ZihanLi58 commented on a change in pull request #3214:
URL: https://github.com/apache/incubator-gobblin/pull/3214#discussion_r564886611



##########
File path: gobblin-runtime/src/main/java/org/apache/gobblin/runtime/StreamModelTaskRunner.java
##########
@@ -86,7 +87,10 @@ protected void run() throws Exception {
 
     // The cancel is not propagated to the extractor's record generator when it has been turned into a hot Flowable
     // by publish, so set the shutdownRequested flag on cancel to stop the extractor
-    Flowable streamWithShutdownOnCancel = connectableStream.doOnCancel(() -> this.shutdownRequested.set(true));
+    Flowable streamWithShutdownOnCancel = connectableStream.doOnCancel(() -> {
+      this.shutdownRequested.set(true);
+      this.extractor.shutdown();

Review comment:
       only when we request a new record in publisher,  the extractor will shutdown. But in some edge case, i.e. consumer is really slow and we have meet the buffer and not requests record anymore. So I add this to force/make sure executor.shutdown() is called.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-gobblin] sv2000 commented on a change in pull request #3214: [GOBBLIN-1359] Fix the error that Exception thrown by writer be swallowed by Reactivex and cause jobs to hang

Posted by GitBox <gi...@apache.org>.
sv2000 commented on a change in pull request #3214:
URL: https://github.com/apache/incubator-gobblin/pull/3214#discussion_r565655741



##########
File path: gobblin-core-base/src/main/java/org/apache/gobblin/source/extractor/extract/FlushingExtractor.java
##########
@@ -40,6 +40,7 @@
 import org.apache.gobblin.configuration.WorkUnitState;
 import org.apache.gobblin.metrics.MetricContextUtils;
 import org.apache.gobblin.publisher.DataPublisher;
+import org.apache.gobblin.runtime.JobShutdownException;

Review comment:
       Unused import.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-gobblin] ZihanLi58 commented on a change in pull request #3214: [GOBBLIN-1359] Fix the error that Exception thrown by writer be swallowed by Reactivex and cause jobs to hang

Posted by GitBox <gi...@apache.org>.
ZihanLi58 commented on a change in pull request #3214:
URL: https://github.com/apache/incubator-gobblin/pull/3214#discussion_r564888071



##########
File path: gobblin-runtime/src/main/java/org/apache/gobblin/runtime/fork/Fork.java
##########
@@ -229,7 +229,7 @@ public void consumeRecordStream(RecordStreamWithMetadata<D, S> stream)
         }
       }, e -> {
           logger.error("Failed to process record.", e);
-          throw(new RuntimeException(e));
+          verifyAndSetForkState(ForkState.RUNNING, ForkState.FAILED);

Review comment:
       writer close is handled in the doFinal() part. It will be executed when the subscription is finished either by error or complete.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-gobblin] ZihanLi58 commented on a change in pull request #3214: [GOBBLIN-1359] Fix the error that Exception thrown by writer be swallowed by Reactivex and cause jobs to hang

Posted by GitBox <gi...@apache.org>.
ZihanLi58 commented on a change in pull request #3214:
URL: https://github.com/apache/incubator-gobblin/pull/3214#discussion_r565722354



##########
File path: gobblin-core-base/src/main/java/org/apache/gobblin/source/extractor/extract/FlushingExtractor.java
##########
@@ -298,6 +298,14 @@ protected void publishTaskOutput() throws IOException {
     this.flushPublisher.get().publish(Collections.singletonList(workUnitState));
   }
 
+  @Override
+  public void shutdown() {

Review comment:
       Yeah, it's a newly added method which will be called in kafkaStreamingExtractor.shutdown(), and the kafkaStreamingExtractor.shutdown() method did not call super.shutdown(), so I did not add it here as well. Also super.shutdown is meaning to check it's a decorator, which is not applied to this case as well.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-gobblin] autumnust commented on a change in pull request #3214: [GOBBLIN-1359] Fix the error that Exception thrown by writer be swallowed by Reactivex and cause jobs to hang

Posted by GitBox <gi...@apache.org>.
autumnust commented on a change in pull request #3214:
URL: https://github.com/apache/incubator-gobblin/pull/3214#discussion_r565719362



##########
File path: gobblin-runtime/src/main/java/org/apache/gobblin/runtime/StreamModelTaskRunner.java
##########
@@ -86,7 +87,10 @@ protected void run() throws Exception {
 
     // The cancel is not propagated to the extractor's record generator when it has been turned into a hot Flowable
     // by publish, so set the shutdownRequested flag on cancel to stop the extractor
-    Flowable streamWithShutdownOnCancel = connectableStream.doOnCancel(() -> this.shutdownRequested.set(true));
+    Flowable streamWithShutdownOnCancel = connectableStream.doOnCancel(() -> {
+      this.shutdownRequested.set(true);
+      this.extractor.shutdown();

Review comment:
       I don't quite remember how was the failure propagated when the slow write happens, but feels like the right fix here is to add finally block in the place where `extractor.shutdown()` is called in `Task` (e.g. line 514) after catching failure, instead of forcing extractor closure here. 

##########
File path: gobblin-core-base/src/main/java/org/apache/gobblin/source/extractor/extract/FlushingExtractor.java
##########
@@ -298,6 +298,14 @@ protected void publishTaskOutput() throws IOException {
     this.flushPublisher.get().publish(Collections.singletonList(workUnitState));
   }
 
+  @Override
+  public void shutdown() {

Review comment:
       What's the reason super.shutdown is not called, is this intentional ? 




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-gobblin] asfgit closed pull request #3214: [GOBBLIN-1359] Fix the error that Exception thrown by writer be swallowed by Reactivex and cause jobs to hang

Posted by GitBox <gi...@apache.org>.
asfgit closed pull request #3214:
URL: https://github.com/apache/incubator-gobblin/pull/3214


   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-gobblin] codecov-io commented on pull request #3214: [GOBBLIN-1359] Fix the error that Exception thrown by writer be swallowed by Reactivex and cause jobs to hang

Posted by GitBox <gi...@apache.org>.
codecov-io commented on pull request #3214:
URL: https://github.com/apache/incubator-gobblin/pull/3214#issuecomment-768029792


   # [Codecov](https://codecov.io/gh/apache/incubator-gobblin/pull/3214?src=pr&el=h1) Report
   > Merging [#3214](https://codecov.io/gh/apache/incubator-gobblin/pull/3214?src=pr&el=desc) (b1b37a7) into [master](https://codecov.io/gh/apache/incubator-gobblin/commit/b021e9ca48f79cb36c94f3afba592e4603af9d91?el=desc) (b021e9c) will **decrease** coverage by `36.99%`.
   > The diff coverage is `0.00%`.
   
   [![Impacted file tree graph](https://codecov.io/gh/apache/incubator-gobblin/pull/3214/graphs/tree.svg?width=650&height=150&src=pr&token=4MgURJ0bGc)](https://codecov.io/gh/apache/incubator-gobblin/pull/3214?src=pr&el=tree)
   
   ```diff
   @@             Coverage Diff              @@
   ##             master   #3214       +/-   ##
   ============================================
   - Coverage     46.16%   9.16%   -37.00%     
   + Complexity     9766    1737     -8029     
   ============================================
     Files          2019    2019               
     Lines         77506   77524       +18     
     Branches       8607    8608        +1     
   ============================================
   - Hits          35778    7108    -28670     
   - Misses        38396   69721    +31325     
   + Partials       3332     695     -2637     
   ```
   
   
   | [Impacted Files](https://codecov.io/gh/apache/incubator-gobblin/pull/3214?src=pr&el=tree) | Coverage Δ | Complexity Δ | |
   |---|---|---|---|
   | [...pache/gobblin/configuration/ConfigurationKeys.java](https://codecov.io/gh/apache/incubator-gobblin/pull/3214/diff?src=pr&el=tree#diff-Z29iYmxpbi1hcGkvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2dvYmJsaW4vY29uZmlndXJhdGlvbi9Db25maWd1cmF0aW9uS2V5cy5qYXZh) | `0.00% <ø> (ø)` | `0.00 <0.00> (ø)` | |
   | [.../apache/gobblin/runtime/StreamModelTaskRunner.java](https://codecov.io/gh/apache/incubator-gobblin/pull/3214/diff?src=pr&el=tree#diff-Z29iYmxpbi1ydW50aW1lL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9nb2JibGluL3J1bnRpbWUvU3RyZWFtTW9kZWxUYXNrUnVubmVyLmphdmE=) | `0.00% <0.00%> (-81.64%)` | `0.00 <0.00> (-12.00)` | |
   | [...ain/java/org/apache/gobblin/runtime/fork/Fork.java](https://codecov.io/gh/apache/incubator-gobblin/pull/3214/diff?src=pr&el=tree#diff-Z29iYmxpbi1ydW50aW1lL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9nb2JibGluL3J1bnRpbWUvZm9yay9Gb3JrLmphdmE=) | `48.78% <0.00%> (-27.14%)` | `37.00 <0.00> (-34.00)` | |
   | [...rg/apache/gobblin/yarn/GobblinYarnAppLauncher.java](https://codecov.io/gh/apache/incubator-gobblin/pull/3214/diff?src=pr&el=tree#diff-Z29iYmxpbi15YXJuL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9nb2JibGluL3lhcm4vR29iYmxpbllhcm5BcHBMYXVuY2hlci5qYXZh) | `0.00% <0.00%> (-24.11%)` | `0.00 <0.00> (-12.00)` | |
   | [...c/main/java/org/apache/gobblin/util/FileUtils.java](https://codecov.io/gh/apache/incubator-gobblin/pull/3214/diff?src=pr&el=tree#diff-Z29iYmxpbi11dGlsaXR5L3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9nb2JibGluL3V0aWwvRmlsZVV0aWxzLmphdmE=) | `0.00% <0.00%> (-100.00%)` | `0.00% <0.00%> (-4.00%)` | |
   | [...n/java/org/apache/gobblin/fork/CopyableSchema.java](https://codecov.io/gh/apache/incubator-gobblin/pull/3214/diff?src=pr&el=tree#diff-Z29iYmxpbi1jb3JlL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9nb2JibGluL2ZvcmsvQ29weWFibGVTY2hlbWEuamF2YQ==) | `0.00% <0.00%> (-100.00%)` | `0.00% <0.00%> (-2.00%)` | |
   | [...java/org/apache/gobblin/stream/ControlMessage.java](https://codecov.io/gh/apache/incubator-gobblin/pull/3214/diff?src=pr&el=tree#diff-Z29iYmxpbi1hcGkvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2dvYmJsaW4vc3RyZWFtL0NvbnRyb2xNZXNzYWdlLmphdmE=) | `0.00% <0.00%> (-100.00%)` | `0.00% <0.00%> (-1.00%)` | |
   | [...va/org/apache/gobblin/dataset/DatasetResolver.java](https://codecov.io/gh/apache/incubator-gobblin/pull/3214/diff?src=pr&el=tree#diff-Z29iYmxpbi1hcGkvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2dvYmJsaW4vZGF0YXNldC9EYXRhc2V0UmVzb2x2ZXIuamF2YQ==) | `0.00% <0.00%> (-100.00%)` | `0.00% <0.00%> (-3.00%)` | |
   | [...va/org/apache/gobblin/converter/EmptyIterable.java](https://codecov.io/gh/apache/incubator-gobblin/pull/3214/diff?src=pr&el=tree#diff-Z29iYmxpbi1jb3JlL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9nb2JibGluL2NvbnZlcnRlci9FbXB0eUl0ZXJhYmxlLmphdmE=) | `0.00% <0.00%> (-100.00%)` | `0.00% <0.00%> (-1.00%)` | |
   | [...org/apache/gobblin/ack/BasicAckableForTesting.java](https://codecov.io/gh/apache/incubator-gobblin/pull/3214/diff?src=pr&el=tree#diff-Z29iYmxpbi1hcGkvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2dvYmJsaW4vYWNrL0Jhc2ljQWNrYWJsZUZvclRlc3RpbmcuamF2YQ==) | `0.00% <0.00%> (-100.00%)` | `0.00% <0.00%> (-3.00%)` | |
   | ... and [1062 more](https://codecov.io/gh/apache/incubator-gobblin/pull/3214/diff?src=pr&el=tree-more) | |
   
   ------
   
   [Continue to review full report at Codecov](https://codecov.io/gh/apache/incubator-gobblin/pull/3214?src=pr&el=continue).
   > **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
   > `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
   > Powered by [Codecov](https://codecov.io/gh/apache/incubator-gobblin/pull/3214?src=pr&el=footer). Last update [b021e9c...28709c6](https://codecov.io/gh/apache/incubator-gobblin/pull/3214?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-gobblin] sv2000 commented on a change in pull request #3214: [GOBBLIN-1359] Fix the error that Exception thrown by writer be swallowed by Reactivex and cause jobs to hang

Posted by GitBox <gi...@apache.org>.
sv2000 commented on a change in pull request #3214:
URL: https://github.com/apache/incubator-gobblin/pull/3214#discussion_r564877757



##########
File path: gobblin-runtime/src/main/java/org/apache/gobblin/runtime/fork/Fork.java
##########
@@ -229,7 +229,7 @@ public void consumeRecordStream(RecordStreamWithMetadata<D, S> stream)
         }
       }, e -> {
           logger.error("Failed to process record.", e);
-          throw(new RuntimeException(e));
+          verifyAndSetForkState(ForkState.RUNNING, ForkState.FAILED);

Review comment:
       Does the writer need to be closed or will it be taken care of as part of shutdown sequence?




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-gobblin] sv2000 commented on a change in pull request #3214: [GOBBLIN-1359] Fix the error that Exception thrown by writer be swallowed by Reactivex and cause jobs to hang

Posted by GitBox <gi...@apache.org>.
sv2000 commented on a change in pull request #3214:
URL: https://github.com/apache/incubator-gobblin/pull/3214#discussion_r565644740



##########
File path: gobblin-core-base/src/main/java/org/apache/gobblin/source/extractor/extract/FlushingExtractor.java
##########
@@ -108,8 +108,8 @@
   protected Long flushIntervalMillis;
 
   protected Long timeOfLastFlush = System.currentTimeMillis();
-  private FlushAckable lastFlushAckable;
-  private boolean hasOutstandingFlush = false;
+  protected FlushAckable lastFlushAckable;

Review comment:
       See the comment below about creating a shutdown() method in FlushingExtractor class.

##########
File path: gobblin-runtime/src/main/java/org/apache/gobblin/runtime/StreamModelTaskRunner.java
##########
@@ -89,6 +89,7 @@ protected void run() throws Exception {
     // by publish, so set the shutdownRequested flag on cancel to stop the extractor
     Flowable streamWithShutdownOnCancel = connectableStream.doOnCancel(() -> {
       this.shutdownRequested.set(true);
+      // In the case that extractor sucks in reading record when cancel get called, we call shutdown again to force it

Review comment:
       sucks -> stuck.

##########
File path: gobblin-modules/gobblin-kafka-common/src/main/java/org/apache/gobblin/source/extractor/extract/kafka/KafkaStreamingExtractor.java
##########
@@ -139,6 +129,10 @@ public void shutdown() {
       log.error("Interrupted when attempting to shutdown metrics collection threads.");
     }
     this.shutdownRequested.set(true);
+    // In case hasOutstandingFlush, we need to manually nack the ackable to make sure the CountDownLatch not hang

Review comment:
       Can we move this block to the parent class inside its own shutdown() method and call super.shutdown() here?




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-gobblin] codecov-io edited a comment on pull request #3214: [GOBBLIN-1359] Fix the error that Exception thrown by writer be swallowed by Reactivex and cause jobs to hang

Posted by GitBox <gi...@apache.org>.
codecov-io edited a comment on pull request #3214:
URL: https://github.com/apache/incubator-gobblin/pull/3214#issuecomment-768029792


   # [Codecov](https://codecov.io/gh/apache/incubator-gobblin/pull/3214?src=pr&el=h1) Report
   > Merging [#3214](https://codecov.io/gh/apache/incubator-gobblin/pull/3214?src=pr&el=desc) (b1b37a7) into [master](https://codecov.io/gh/apache/incubator-gobblin/commit/b021e9ca48f79cb36c94f3afba592e4603af9d91?el=desc) (b021e9c) will **increase** coverage by `0.02%`.
   > The diff coverage is `66.66%`.
   
   [![Impacted file tree graph](https://codecov.io/gh/apache/incubator-gobblin/pull/3214/graphs/tree.svg?width=650&height=150&src=pr&token=4MgURJ0bGc)](https://codecov.io/gh/apache/incubator-gobblin/pull/3214?src=pr&el=tree)
   
   ```diff
   @@             Coverage Diff              @@
   ##             master    #3214      +/-   ##
   ============================================
   + Coverage     46.16%   46.19%   +0.02%     
   - Complexity     9766     9770       +4     
   ============================================
     Files          2019     2019              
     Lines         77506    77524      +18     
     Branches       8607     8608       +1     
   ============================================
   + Hits          35778    35809      +31     
   + Misses        38396    38383      -13     
     Partials       3332     3332              
   ```
   
   
   | [Impacted Files](https://codecov.io/gh/apache/incubator-gobblin/pull/3214?src=pr&el=tree) | Coverage Δ | Complexity Δ | |
   |---|---|---|---|
   | [...pache/gobblin/configuration/ConfigurationKeys.java](https://codecov.io/gh/apache/incubator-gobblin/pull/3214/diff?src=pr&el=tree#diff-Z29iYmxpbi1hcGkvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2dvYmJsaW4vY29uZmlndXJhdGlvbi9Db25maWd1cmF0aW9uS2V5cy5qYXZh) | `0.00% <ø> (ø)` | `0.00 <0.00> (ø)` | |
   | [...ain/java/org/apache/gobblin/runtime/fork/Fork.java](https://codecov.io/gh/apache/incubator-gobblin/pull/3214/diff?src=pr&el=tree#diff-Z29iYmxpbi1ydW50aW1lL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9nb2JibGluL3J1bnRpbWUvZm9yay9Gb3JrLmphdmE=) | `76.42% <0.00%> (+0.50%)` | `72.00 <0.00> (+1.00)` | |
   | [...rg/apache/gobblin/yarn/GobblinYarnAppLauncher.java](https://codecov.io/gh/apache/incubator-gobblin/pull/3214/diff?src=pr&el=tree#diff-Z29iYmxpbi15YXJuL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9nb2JibGluL3lhcm4vR29iYmxpbllhcm5BcHBMYXVuY2hlci5qYXZh) | `24.05% <0.00%> (-0.06%)` | `12.00 <0.00> (ø)` | |
   | [.../apache/gobblin/runtime/StreamModelTaskRunner.java](https://codecov.io/gh/apache/incubator-gobblin/pull/3214/diff?src=pr&el=tree#diff-Z29iYmxpbi1ydW50aW1lL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9nb2JibGluL3J1bnRpbWUvU3RyZWFtTW9kZWxUYXNrUnVubmVyLmphdmE=) | `83.63% <88.88%> (+2.00%)` | `13.00 <2.00> (+1.00)` | |
   | [...a/org/apache/gobblin/util/limiter/NoopLimiter.java](https://codecov.io/gh/apache/incubator-gobblin/pull/3214/diff?src=pr&el=tree#diff-Z29iYmxpbi11dGlsaXR5L3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9nb2JibGluL3V0aWwvbGltaXRlci9Ob29wTGltaXRlci5qYXZh) | `40.00% <0.00%> (-20.00%)` | `2.00% <0.00%> (-1.00%)` | |
   | [...lin/util/filesystem/FileSystemInstrumentation.java](https://codecov.io/gh/apache/incubator-gobblin/pull/3214/diff?src=pr&el=tree#diff-Z29iYmxpbi11dGlsaXR5L3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9nb2JibGluL3V0aWwvZmlsZXN5c3RlbS9GaWxlU3lzdGVtSW5zdHJ1bWVudGF0aW9uLmphdmE=) | `92.85% <0.00%> (-7.15%)` | `3.00% <0.00%> (-1.00%)` | |
   | [...g/apache/gobblin/hive/orc/HiveOrcSerDeManager.java](https://codecov.io/gh/apache/incubator-gobblin/pull/3214/diff?src=pr&el=tree#diff-Z29iYmxpbi1oaXZlLXJlZ2lzdHJhdGlvbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvZ29iYmxpbi9oaXZlL29yYy9IaXZlT3JjU2VyRGVNYW5hZ2VyLmphdmE=) | `60.46% <0.00%> (-3.49%)` | `12.00% <0.00%> (ø%)` | |
   | [...a/org/apache/gobblin/cluster/GobblinHelixTask.java](https://codecov.io/gh/apache/incubator-gobblin/pull/3214/diff?src=pr&el=tree#diff-Z29iYmxpbi1jbHVzdGVyL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9nb2JibGluL2NsdXN0ZXIvR29iYmxpbkhlbGl4VGFzay5qYXZh) | `60.21% <0.00%> (-2.16%)` | `6.00% <0.00%> (ø%)` | |
   | [.../org/apache/gobblin/metrics/RootMetricContext.java](https://codecov.io/gh/apache/incubator-gobblin/pull/3214/diff?src=pr&el=tree#diff-Z29iYmxpbi1tZXRyaWNzLWxpYnMvZ29iYmxpbi1tZXRyaWNzLWJhc2Uvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2dvYmJsaW4vbWV0cmljcy9Sb290TWV0cmljQ29udGV4dC5qYXZh) | `78.12% <0.00%> (-1.57%)` | `15.00% <0.00%> (-1.00%)` | |
   | [...a/management/copy/publisher/CopyDataPublisher.java](https://codecov.io/gh/apache/incubator-gobblin/pull/3214/diff?src=pr&el=tree#diff-Z29iYmxpbi1kYXRhLW1hbmFnZW1lbnQvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2dvYmJsaW4vZGF0YS9tYW5hZ2VtZW50L2NvcHkvcHVibGlzaGVyL0NvcHlEYXRhUHVibGlzaGVyLmphdmE=) | `74.00% <0.00%> (-1.34%)` | `31.00% <0.00%> (-1.00%)` | |
   | ... and [9 more](https://codecov.io/gh/apache/incubator-gobblin/pull/3214/diff?src=pr&el=tree-more) | |
   
   ------
   
   [Continue to review full report at Codecov](https://codecov.io/gh/apache/incubator-gobblin/pull/3214?src=pr&el=continue).
   > **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
   > `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
   > Powered by [Codecov](https://codecov.io/gh/apache/incubator-gobblin/pull/3214?src=pr&el=footer). Last update [b021e9c...28709c6](https://codecov.io/gh/apache/incubator-gobblin/pull/3214?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org