[ https://issues.apache.org/jira/browse/FLINK-29707?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17621182#comment-17621182 ]
Ferenc Csaky commented on FLINK-29707: -------------------------------------- Just opened a PR with the proposed fix. > 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 > 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)