[
https://issues.apache.org/jira/browse/BEAM-8577?focusedWorklogId=343710&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-343710
]
ASF GitHub Bot logged work on BEAM-8577:
----------------------------------------
Author: ASF GitHub Bot
Created on: 14/Nov/19 19:53
Start Date: 14/Nov/19 19:53
Worklog Time Spent: 10m
Work Description: mxm commented on pull request #10027: [BEAM-8577]
Initialize FileSystems during Coder deserialization in Re…
URL: https://github.com/apache/beam/pull/10027#discussion_r346515687
##########
File path:
runners/flink/src/main/java/org/apache/beam/runners/flink/FlinkBatchTransformTranslators.java
##########
@@ -306,11 +308,19 @@ public void translateNode(
@Override
public void translateNode(
Reshuffle<K, InputT> transform, FlinkBatchTranslationContext context) {
-
- DataSet<WindowedValue<KV<K, InputT>>> inputDataSet =
+ final DataSet<WindowedValue<KV<K, InputT>>> inputDataSet =
context.getInputDataSet(context.getInput(transform));
-
- context.setOutputDataSet(context.getOutput(transform),
inputDataSet.rebalance());
+ @SuppressWarnings("unchecked")
+ final CoderTypeInformation<WindowedValue<KV<K, InputT>>> outputType =
+ ((CoderTypeInformation) inputDataSet.getType())
+ .withPipelineOptions(context.getPipelineOptions());
+ final DataSet<WindowedValue<KV<K, InputT>>> retypedDataSet =
+ new MapOperator<>(
+ inputDataSet,
+ outputType,
+ FlinkIdentityFunction.of(),
Review comment:
I see. Would be good then to generally move to this approach. Let's add a
comment here why this is necessary.
----------------------------------------------------------------
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:
[email protected]
Issue Time Tracking
-------------------
Worklog Id: (was: 343710)
Time Spent: 40m (was: 0.5h)
> FileSystems may have not be initialized during ResourceId deserialization
> -------------------------------------------------------------------------
>
> Key: BEAM-8577
> URL: https://issues.apache.org/jira/browse/BEAM-8577
> Project: Beam
> Issue Type: Bug
> Components: runner-flink
> Affects Versions: 2.16.0
> Reporter: David Moravek
> Assignee: David Moravek
> Priority: Major
> Fix For: 2.17.0
>
> Time Spent: 40m
> Remaining Estimate: 0h
>
> - FileSystems use static registration using
> *FileSystems#setDefaultPipelineOptions* method.
> - *#setDefaultPipelineOptions* is called either when deserializaing
> SerializablePipelineOptions or during opening of various beam operators.
> - *FileIO#matchAll* is expanded using *Reshuffle.viaRandomKey()*.
> - Reshuffle is implemented using *.rebalance*, that doesn't have a
> "RichFunction" lifecycle, so we need to find another way to register
> FileSystems, as the deserialization may happen before other "rich operators"
> get executed on particular task manager.
> This results in random pipeline fails as the task assignment is not
> deterministic.
> We can workaround this, by registering FileSystems during coder
> deserialization.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)