[
https://issues.apache.org/jira/browse/FLINK-29707?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17624509#comment-17624509
]
Márton Balassi edited comment on FLINK-29707 at 10/26/22 2:28 PM:
------------------------------------------------------------------
[5176fb2|https://github.com/apache/flink/commit/5176fb2c334edceb828f92ed90606401b8381d3f]
in master
was (Author: mbalassi):
[5176fb2|https://github.com/apache/flink/commit/5176fb2c334edceb828f92ed90606401b8381d3f]
in main
> Fix possible comparator violation for "flink list"
> --------------------------------------------------
>
> Key: FLINK-29707
> URL: https://issues.apache.org/jira/browse/FLINK-29707
> Project: Flink
> Issue Type: Bug
> Components: Command Line Client
> Affects Versions: 1.16.0
> Reporter: Ferenc Csaky
> Assignee: Ferenc Csaky
> Priority: Major
> Labels: pull-request-available
>
> For the {{list}} CLI option, the code that prints the jobs, there is a
> {{startTimeComparator}} definition, which orders the jobs and it is done this
> way:
> {code:java}
> Comparator<JobStatusMessage> startTimeComparator =
> (o1, o2) -> (int) (o1.getStartTime() - o2.getStartTime());
> {code}
> In some rare situation this can lead to this:
> {code:java}
> 2022-10-19 09:58:11,690 ERROR org.apache.flink.client.cli.CliFrontend
> [] - Error while running the command.
> java.lang.IllegalArgumentException: Comparison method violates its general
> contract!
> at java.util.TimSort.mergeLo(TimSort.java:777) ~[?:1.8.0_312]
> at java.util.TimSort.mergeAt(TimSort.java:514) ~[?:1.8.0_312]
> at java.util.TimSort.mergeForceCollapse(TimSort.java:457) ~[?:1.8.0_312]
> at java.util.TimSort.sort(TimSort.java:254) ~[?:1.8.0_312]
> at java.util.Arrays.sort(Arrays.java:1512) ~[?:1.8.0_312]
> at java.util.ArrayList.sort(ArrayList.java:1464) ~[?:1.8.0_312]
> at java.util.stream.SortedOps$RefSortingSink.end(SortedOps.java:392)
> ~[?:1.8.0_312]
> at java.util.stream.Sink$ChainedReference.end(Sink.java:258)
> ~[?:1.8.0_312]
> at java.util.stream.Sink$ChainedReference.end(Sink.java:258)
> ~[?:1.8.0_312]
> at
> java.util.stream.SortedOps$SizedRefSortingSink.end(SortedOps.java:363)
> ~[?:1.8.0_312]
> at
> java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:483)
> ~[?:1.8.0_312]
> at
> java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
> ~[?:1.8.0_312]
> at
> java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
> ~[?:1.8.0_312]
> at
> java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
> ~[?:1.8.0_312]
> at
> java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
> ~[?:1.8.0_312]
> at
> java.util.stream.ReferencePipeline.forEachOrdered(ReferencePipeline.java:490)
> ~[?:1.8.0_312]
> at
> org.apache.flink.client.cli.CliFrontend.printJobStatusMessages(CliFrontend.java:574)
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)