You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When the number of splits exceeded the parallelism, the leftover splits were never assigned to source readers, leading to data not being processed by the sink.
When running the SourceToSinkExample file and adding one more subject (i.e., split ID), the sink output was missing data because the additional split was never assigned by the enumerator to a source reader.
As it can be seen from the logs, data-source3-15 never reached sink because it was never assigned to reader. Only source1 and source2 has been assigned to readers.
adding logs to handleSplitRequest also verifies that one of the splits was not assigned to reader.
public void handleSplitRequest(int subtaskId, @Nullable String requesterHostname) {
final NatsSubjectSplit nextSplit = remainingSplits.poll();
if (nextSplit != null) {
context.assignSplit(nextSplit, subtaskId);
}
else {
context.signalNoMoreSplits(subtaskId);
}
System.out.println("should be 0 at one time, current value: " + remainingSplits.size());
}
Output of above log:
should be 0 at one time, current value: 2
should be 0 at one time, current value: 1
Expected behavior
Each splits should be assigned properly to all the source readers. No split should be left.
Observed behavior
When the number of splits exceeded the parallelism, the leftover splits were never assigned to source readers, leading to data not being processed by the sink.
When running the SourceToSinkExample file and adding one more subject (i.e., split ID), the sink output was missing data because the additional split was never assigned by the enumerator to a source reader.
Below are logs from the observed issue:
As it can be seen from the logs,
data-source3-15
never reached sink because it was never assigned to reader. Only source1 and source2 has been assigned to readers.adding logs to
handleSplitRequest
also verifies that one of the splits was not assigned to reader.Output of above log:
Expected behavior
Each splits should be assigned properly to all the source readers. No split should be left.
Server and client version
nats-server --version : nats-server: v2.10.22
natscli --version : 0.1.5
flink --version : Version: 1.17.2, Commit ID: c0027e5
Host environment
Apple M2 Pro, OS : 14.5 (23F79)
Steps to reproduce
env.setParallelism(2);
source.subjects=source1,source2,source3
andsink.subjects=sink1,sink2,sink3
inapplication.properties
.The text was updated successfully, but these errors were encountered: