You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by GitBox <gi...@apache.org> on 2020/09/09 14:13:15 UTC

[GitHub] [flink] becketqin opened a new pull request #13366: [FLINK-17393][connector/common] Wakeup the SplitFetchers more elegantly.

becketqin opened a new pull request #13366:
URL: https://github.com/apache/flink/pull/13366


   ## What is the purpose of the change
   Currently the `FetchTask`s can only be waken up via `Thread.interrupt()` when the thread is blocking on putting an element into the `FutureCompletingBlockingQueue`. To ensure the thread is waken up, `FetchTask#wakeUp()` pessimistically interrupts the split fetcher thread. This means that the split fetcher thread might also be interrupted while it is in `SplitReader#fetch()`. This interruption is problematic because the `SplitReader` does not necessarily handle interruptions.
   
   This patch solves the problem by adding some logic to the `FutureCompletingBlockingQueue` so that a thread blocking on putting an element into the queue can be waken up elegantly.
   
   ## Brief change log
   a1ca80ac6de0f : Add logic to the `FutureCompletingBlockingQueue` to allow a putting thread to be waken up elegantly.
   38b675997be8 : Change the default capacity of `FutureCompletingBlockingQueue` to 1.
   
   
   ## Verifying this change
   
   This change added tests:
   * org.apache.flink.connector.base.source.reader.synchronization.FutureCompletingBlockingQueueTest
   
   ## Does this pull request potentially affect one of the following parts:
   
     - Dependencies (does it add or upgrade a dependency): (no)
     - The public API, i.e., is any changed class annotated with `@Public(Evolving)`: (no)
     - The serializers: (no)
     - The runtime per-record code paths (performance sensitive): (in the worst case yes)
     - Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn/Mesos, ZooKeeper: (no)
     - The S3 file system connector: (no)
   
   ## Documentation
   
     - Does this pull request introduce a new feature? (no)
     - If yes, how is the feature documented? (not applicable)
   


----------------------------------------------------------------
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] [flink] StephanEwen commented on pull request #13366: [FLINK-17393][connector/common] Wakeup the SplitFetchers more elegantly.

Posted by GitBox <gi...@apache.org>.
StephanEwen commented on pull request #13366:
URL: https://github.com/apache/flink/pull/13366#issuecomment-692021999


   Thanks @becketqin for creating this patch.
   
   This looks pretty good to me. I will rebase this onto the latest source API classes and merge this.
   Will also apply some minor cleanups that are made possible now with this fix (like removing some interruption clearing and some exceptions from signatures).


----------------------------------------------------------------
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] [flink] flinkbot commented on pull request #13366: [FLINK-17393][connector/common] Wakeup the SplitFetchers more elegantly.

Posted by GitBox <gi...@apache.org>.
flinkbot commented on pull request #13366:
URL: https://github.com/apache/flink/pull/13366#issuecomment-689608158


   <!--
   Meta data
   {
     "version" : 1,
     "metaDataEntries" : [ {
       "hash" : "38b675997be828d79dc2b87bf195bf8962f1150e",
       "status" : "UNKNOWN",
       "url" : "TBD",
       "triggerID" : "38b675997be828d79dc2b87bf195bf8962f1150e",
       "triggerType" : "PUSH"
     } ]
   }-->
   ## CI report:
   
   * 38b675997be828d79dc2b87bf195bf8962f1150e UNKNOWN
   
   <details>
   <summary>Bot commands</summary>
     The @flinkbot bot supports the following commands:
   
    - `@flinkbot run travis` re-run the last Travis build
    - `@flinkbot run azure` re-run the last Azure build
   </details>


----------------------------------------------------------------
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] [flink] flinkbot commented on pull request #13366: [FLINK-17393][connector/common] Wakeup the SplitFetchers more elegantly.

Posted by GitBox <gi...@apache.org>.
flinkbot commented on pull request #13366:
URL: https://github.com/apache/flink/pull/13366#issuecomment-689595313


   Thanks a lot for your contribution to the Apache Flink project. I'm the @flinkbot. I help the community
   to review your pull request. We will use this comment to track the progress of the review.
   
   
   ## Automated Checks
   Last check on commit 38b675997be828d79dc2b87bf195bf8962f1150e (Wed Sep 09 14:20:58 UTC 2020)
   
   **Warnings:**
    * No documentation files were touched! Remember to keep the Flink docs up to date!
    * **This pull request references an unassigned [Jira ticket](https://issues.apache.org/jira/browse/FLINK-17393).** According to the [code contribution guide](https://flink.apache.org/contributing/contribute-code.html), tickets need to be assigned before starting with the implementation work.
   
   
   <sub>Mention the bot in a comment to re-run the automated checks.</sub>
   ## Review Progress
   
   * ❓ 1. The [description] looks good.
   * ❓ 2. There is [consensus] that the contribution should go into to Flink.
   * ❓ 3. Needs [attention] from.
   * ❓ 4. The change fits into the overall [architecture].
   * ❓ 5. Overall code [quality] is good.
   
   Please see the [Pull Request Review Guide](https://flink.apache.org/contributing/reviewing-prs.html) for a full explanation of the review process.<details>
    The Bot is tracking the review progress through labels. Labels are applied according to the order of the review items. For consensus, approval by a Flink committer of PMC member is required <summary>Bot commands</summary>
     The @flinkbot bot supports the following commands:
   
    - `@flinkbot approve description` to approve one or more aspects (aspects: `description`, `consensus`, `architecture` and `quality`)
    - `@flinkbot approve all` to approve all aspects
    - `@flinkbot approve-until architecture` to approve everything until `architecture`
    - `@flinkbot attention @username1 [@username2 ..]` to require somebody's attention
    - `@flinkbot disapprove architecture` to remove an approval you gave earlier
   </details>


----------------------------------------------------------------
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] [flink] flinkbot edited a comment on pull request #13366: [FLINK-17393][connector/common] Wakeup the SplitFetchers more elegantly.

Posted by GitBox <gi...@apache.org>.
flinkbot edited a comment on pull request #13366:
URL: https://github.com/apache/flink/pull/13366#issuecomment-689608158


   <!--
   Meta data
   {
     "version" : 1,
     "metaDataEntries" : [ {
       "hash" : "38b675997be828d79dc2b87bf195bf8962f1150e",
       "status" : "PENDING",
       "url" : "https://dev.azure.com/apache-flink/98463496-1af2-4620-8eab-a2ecc1a2e6fe/_build/results?buildId=6404",
       "triggerID" : "38b675997be828d79dc2b87bf195bf8962f1150e",
       "triggerType" : "PUSH"
     } ]
   }-->
   ## CI report:
   
   * 38b675997be828d79dc2b87bf195bf8962f1150e Azure: [PENDING](https://dev.azure.com/apache-flink/98463496-1af2-4620-8eab-a2ecc1a2e6fe/_build/results?buildId=6404) 
   
   <details>
   <summary>Bot commands</summary>
     The @flinkbot bot supports the following commands:
   
    - `@flinkbot run travis` re-run the last Travis build
    - `@flinkbot run azure` re-run the last Azure build
   </details>


----------------------------------------------------------------
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] [flink] asfgit closed pull request #13366: [FLINK-17393][connector/common] Wakeup the SplitFetchers more elegantly.

Posted by GitBox <gi...@apache.org>.
asfgit closed pull request #13366:
URL: https://github.com/apache/flink/pull/13366


   


----------------------------------------------------------------
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] [flink] flinkbot edited a comment on pull request #13366: [FLINK-17393][connector/common] Wakeup the SplitFetchers more elegantly.

Posted by GitBox <gi...@apache.org>.
flinkbot edited a comment on pull request #13366:
URL: https://github.com/apache/flink/pull/13366#issuecomment-689608158


   <!--
   Meta data
   {
     "version" : 1,
     "metaDataEntries" : [ {
       "hash" : "38b675997be828d79dc2b87bf195bf8962f1150e",
       "status" : "SUCCESS",
       "url" : "https://dev.azure.com/apache-flink/98463496-1af2-4620-8eab-a2ecc1a2e6fe/_build/results?buildId=6404",
       "triggerID" : "38b675997be828d79dc2b87bf195bf8962f1150e",
       "triggerType" : "PUSH"
     } ]
   }-->
   ## CI report:
   
   * 38b675997be828d79dc2b87bf195bf8962f1150e Azure: [SUCCESS](https://dev.azure.com/apache-flink/98463496-1af2-4620-8eab-a2ecc1a2e6fe/_build/results?buildId=6404) 
   
   <details>
   <summary>Bot commands</summary>
     The @flinkbot bot supports the following commands:
   
    - `@flinkbot run travis` re-run the last Travis build
    - `@flinkbot run azure` re-run the last Azure build
   </details>


----------------------------------------------------------------
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] [flink] becketqin commented on pull request #13366: [FLINK-17393][connector/common] Wakeup the SplitFetchers more elegantly.

Posted by GitBox <gi...@apache.org>.
becketqin commented on pull request #13366:
URL: https://github.com/apache/flink/pull/13366#issuecomment-689590588


   @StephanEwen Would you help take a look?


----------------------------------------------------------------
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] [flink] StephanEwen commented on pull request #13366: [FLINK-17393][connector/common] Wakeup the SplitFetchers more elegantly.

Posted by GitBox <gi...@apache.org>.
StephanEwen commented on pull request #13366:
URL: https://github.com/apache/flink/pull/13366#issuecomment-692355604


   I incorporated this PR in a follow-up PR with some more changes and bug fixes: #13385


----------------------------------------------------------------
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