[ https://issues.apache.org/jira/browse/KUDU-2524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16570314#comment-16570314 ]
Grant Henke commented on KUDU-2524: ----------------------------------- I think it makes sense to disable scalafmt in the Jenkins build permanently. We could add a test that validates the patch is formatted and fails the build if not. I will use this Jira to track those updates. > scalafmt incompatible with jdk8 older than u25 > ---------------------------------------------- > > Key: KUDU-2524 > URL: https://issues.apache.org/jira/browse/KUDU-2524 > Project: Kudu > Issue Type: Bug > Components: java > Affects Versions: 1.8.0 > Reporter: Adar Dembo > Assignee: Grant Henke > Priority: Major > > We're seeing a fair number of Gradle build failures in scalafmt with the > following output: > {noformat} > 1: Task failed with an exception. > ----------- > * What went wrong: > Execution failed for task ':kudu-spark:scalafmt'. > > Uninitialized object exists on backward branch 209 > Exception Details: > Location: > > scala/collection/immutable/HashMap$HashTrieMap.split()Lscala/collection/immutable/Seq; > @249: goto > Reason: > Error exists in the bytecode > Bytecode: > 0000000: 2ab6 005b 04a0 001e b200 b3b2 00b8 04bd > 0000010: 0002 5903 2a53 c000 bab6 00be b600 c2c0 > 0000020: 00c4 b02a b600 31b8 003b 3c1b 04a4 015e > 0000030: 1b05 6c3d 2a1b 056c 2ab6 0031 b700 c63e > 0000040: 2ab6 0031 021d 787e 3604 2ab6 0031 0210 > 0000050: 201d 647c 7e36 05bb 0014 59b2 00b8 2ab6 > 0000060: 0033 c000 bab6 00ca b700 cd1c b600 d13a > 0000070: 0619 06c6 001a 1906 b600 d5c0 0081 3a07 > 0000080: 1906 b600 d8c0 0081 3a08 a700 0dbb 00da > 0000090: 5919 06b7 00dd bf19 073a 0919 083a 0abb > 00000a0: 0002 5915 0419 09bb 0014 59b2 00b8 1909 > 00000b0: c000 bab6 00ca b700 cd03 b800 e33a 0e3a > 00000c0: 0d03 190d b900 e701 0019 0e3a 1136 1036 > 00000d0: 0f15 0f15 109f 0027 150f 0460 1510 190d > 00000e0: 150f b900 ea02 00c0 0005 3a17 1911 1917 > 00000f0: b800 ee3a 1136 1036 0fa7 ffd8 1911 b800 > 0000100: f2b7 0060 3a0b bb00 0259 1505 190a bb00 > 0000110: 1459 b200 b819 0ac0 00ba b600 cab7 00cd > 0000120: 03b8 00e3 3a13 3a12 0319 12b9 00e7 0100 > 0000130: 1913 3a16 3615 3614 1514 1515 9f00 2715 > 0000140: 1404 6015 1519 1215 14b9 00ea 0200 c000 > 0000150: 053a 1819 1619 18b8 00f5 3a16 3615 3614 > 0000160: a7ff d819 16b8 00f2 b700 603a 0cb2 00fa > 0000170: b200 b805 bd00 0259 0319 0b53 5904 190c > 0000180: 53c0 00ba b600 beb6 00fd b02a b600 3303 > 0000190: 32b6 00ff b0 > Stackmap Table: > same_frame(@35) > > full_frame(@141,{Object[#2],Integer,Integer,Integer,Integer,Integer,Object[#109]},{}) > append_frame(@151,Object[#129],Object[#129]) > > full_frame(@209,{Object[#2],Integer,Integer,Integer,Integer,Integer,Object[#109],Object[#129],Object[#129],Object[#129],Object[#129],Top,Top,Object[#20],Object[#55],Integer,Integer,Object[#107]},{Uninitialized[#159],Uninitialized[#159],Integer,Object[#129]}) > > full_frame(@252,{Object[#2],Integer,Integer,Integer,Integer,Integer,Object[#109],Object[#129],Object[#129],Object[#129],Object[#129],Top,Top,Object[#20],Object[#55],Integer,Integer,Object[#107]},{Uninitialized[#159],Uninitialized[#159],Integer,Object[#129]}) > > full_frame(@312,{Object[#2],Integer,Integer,Integer,Integer,Integer,Object[#109],Object[#129],Object[#129],Object[#129],Object[#129],Object[#2],Top,Object[#20],Object[#55],Integer,Integer,Object[#107],Object[#20],Object[#55],Integer,Integer,Object[#107]},{Uninitialized[#262],Uninitialized[#262],Integer,Object[#129]}) > > full_frame(@355,{Object[#2],Integer,Integer,Integer,Integer,Integer,Object[#109],Object[#129],Object[#129],Object[#129],Object[#129],Object[#2],Top,Object[#20],Object[#55],Integer,Integer,Object[#107],Object[#20],Object[#55],Integer,Integer,Object[#107]},{Uninitialized[#262],Uninitialized[#262],Integer,Object[#129]}) > full_frame(@395,{Object[#2],Integer},{}){noformat} > This appears to be due to [this JDK > issue|https://stackoverflow.com/questions/24061672/verifyerror-uninitialized-object-exists-on-backward-branch-jvm-spec-4-10-2-4], > which was fixed in JDK 8u25. > And sure enough, here's the JDK version for failing builds: > {noformat} > -- Found Java: /opt/toolchain/sun-jdk-64bit-1.8.0.05/bin/java (found suitable > version "1.8.0.05", minimum required is "1.7") > {noformat} > And here it is for successful builds: > {noformat} > 19:06:12 -- Found Java: /usr/lib/jvm/java-1.8.0-openjdk-amd64/bin/java (found > suitable version "1.8.0.111", minimum required is "1.7") > {noformat} > We either need to blacklist JDK8 versions older than u25, or we need to > condition the scalafmt step on the JDK version. -- This message was sent by Atlassian JIRA (v7.6.3#76005)