+1 Drop Java7 support, start using JDK8 features. On Fri, Jun 3, 2016 at 12:39 PM, Prasanth Jayachandran < pjayachand...@hortonworks.com> wrote:
> +1 for using jdk8 as minimum required version. > > Thanks > Prasanth > > > > > On Fri, Jun 3, 2016 at 10:21 AM -0700, "Siddharth Seth" <ss...@apache.org > <mailto:ss...@apache.org>> wrote: > > +1. Drop Java7 support, and start using JDK8 features. > > On Fri, Jun 3, 2016 at 8:13 AM, Ashutosh Chauhan <hashut...@apache.org> > wrote: > > > What I meant was that we start compiling using jdk8 as well. That will > > allow devs to use jdk8 only features (lambda functions etc.) > > > > On Fri, Jun 3, 2016 at 8:10 AM, Sergio Pena <sergio.p...@cloudera.com> > > wrote: > > > > > Hey Ashutosh, > > > > > > I switched to JDK8 in master last weekend. Jenkins has been running all > > > tests in Java8 successfully for a week now. > > > There are still a few tests we need to fix, but so far is looking good. > > > > > > Sergio > > > > > > On Fri, Jun 3, 2016 at 12:02 AM, Ashutosh Chauhan < > hashut...@apache.org> > > > wrote: > > > > > > > Now that branch-2.1 has been cut, I think its an opportune time to > drop > > > > support of jdk7 altogether in master. That is we compile using jdk8 > as > > > > well. What do others think? > > > > > > > > Ashutosh > > > > > > > > On Fri, May 27, 2016 at 7:41 PM, Sergio Pena < > sergio.p...@cloudera.com > > > > > > > wrote: > > > > > > > > > I did the change to JDK8 on Ptest now. > > > > > > > > > > Please let me tknow if there are issues with Java8. > > > > > > > > > > - Sergio > > > > > > > > > > On Fri, May 27, 2016 at 2:45 PM, Sergio Pena < > > sergio.p...@cloudera.com > > > > > > > > > wrote: > > > > > > > > > > > Thanks Mohit. > > > > > > > > > > > > I will plan to do the JDK8 change on Jenkins today EOD and > monitor > > > any > > > > > > issues through the weekend. > > > > > > > > > > > > - Sergio > > > > > > > > > > > > > > > > > > On Fri, May 27, 2016 at 2:58 AM, Mohit Sabharwal < > > mo...@cloudera.com > > > > > > > > > > wrote: > > > > > > > > > > > >> Update on moving Hive2 tests to JDK8: I've addressed almost all > > test > > > > > >> failures in HIVE-13547 on java8 branch. There is one remaining > > > > > >> open item (HIVE-13834) which is currently assigned. Given > current > > > > > >> state of flaky test runs, there might be few more. > > > > > >> > > > > > >> I will work with Sergio to merge the test fixes to master and > > switch > > > > > >> the Hive2 pre-commit job to use JDK8, hopefully sometime > tomorrow. > > > > > >> > > > > > >> After Hive2 tests switch, if your patch sees ordering related > test > > > > > >> failures in pre-commit run, it's likely JDK version related and > > > you'll > > > > > >> need to build & re-run the test using JDK8. Number of such tests > > > > > >> should be relatively small. > > > > > >> > > > > > >> On Tue, Apr 19, 2016 at 10:43 AM, Mohit Sabharwal < > > > mo...@cloudera.com > > > > > > > > > > >> wrote: > > > > > >> > > > > > >> > Created HIVE-13547 to track switching 2x tests to JDK8. > > > > > >> > > > > > > >> > On Wed, Apr 13, 2016 at 10:02 AM, Sergio Pena < > > > > > sergio.p...@cloudera.com > > > > > >> > > > > > > >> > wrote: > > > > > >> > > > > > > >> >> I agree with such change as JDK7 is not longer supported. > > > > > >> >> > > > > > >> >> Changes on Jenkins and Hive PTest shouldn't be hard. We just > > need > > > > to > > > > > >> >> replace the path from java7 to java8. But I think we should > fix > > > all > > > > > >> JDK8 > > > > > >> >> issues or most of them before doing the change or we will end > > up > > > > > >> having a > > > > > >> >> lot of failures on all JIRAs running pre-commit tests. > > > > > >> >> > > > > > >> >> +1 with the change. > > > > > >> >> > > > > > >> >> On Mon, Apr 11, 2016 at 9:34 PM, Siddharth Seth < > > > ss...@apache.org> > > > > > >> wrote: > > > > > >> >> > > > > > >> >> > Option 3 sounds good. I'd ideally like to make JDK8 the > > minimum > > > > > >> >> requirement > > > > > >> >> > soon as well. > > > > > >> >> > > > > > > >> >> > On Mon, Apr 11, 2016 at 4:59 PM, Szehon Ho < > > > sze...@cloudera.com> > > > > > >> wrote: > > > > > >> >> > > > > > > >> >> > > Sounds like a good plan, +1 > > > > > >> >> > > > > > > > >> >> > > On Mon, Apr 11, 2016 at 4:31 PM, Mohit Sabharwal < > > > > > >> mo...@cloudera.com> > > > > > >> >> > > wrote: > > > > > >> >> > > > > > > > >> >> > > > Thanks, Ashutosh. Makes sense to keep the source and > > target > > > > as > > > > > >> 1.7 > > > > > >> >> > since > > > > > >> >> > > > we're not using any JDK8 specific features yet. So, > > option > > > > (3) > > > > > >> >> > > essentially > > > > > >> >> > > > just means using JDK8 exclusively to build & test > Hive2. > > > > > >> >> > > > > > > > > >> >> > > > On Sat, Apr 9, 2016 at 12:23 PM, Ashutosh Chauhan < > > > > > >> >> > hashut...@apache.org> > > > > > >> >> > > > wrote: > > > > > >> >> > > > > > > > > >> >> > > > > Hi Mohit, > > > > > >> >> > > > > > > > > > >> >> > > > > I also think option 3 makes sense. We should strive > to > > > keep > > > > > >> test > > > > > >> >> > matrix > > > > > >> >> > > > > small so that we can do fast QA runs for dev patches. > > > > > >> >> > > > > We can just use jdk7 to build & test Hive1 and jdk8 > to > > > > build > > > > > & > > > > > >> >> test > > > > > >> >> > > > Hive2. > > > > > >> >> > > > > However, I am not sure of explicitly dropping support > > > > > >> altogether > > > > > >> >> for > > > > > >> >> > > jdk7 > > > > > >> >> > > > > on Hive2. We should make sure that in pom.xml java > > > source & > > > > > >> target > > > > > >> >> > > > > compatibility is still 1.7 (which already is the case > > > > > >> currently) > > > > > >> >> so > > > > > >> >> > > that > > > > > >> >> > > > > Hive2 is still compatible with jdk7. Unit tests as I > > said > > > > we > > > > > >> can > > > > > >> >> run > > > > > >> >> > on > > > > > >> >> > > > > jdk8. > > > > > >> >> > > > > > > > > > >> >> > > > > Thanks, > > > > > >> >> > > > > Ashutosh > > > > > >> >> > > > > > > > > > >> >> > > > > On Fri, Apr 8, 2016 at 4:34 PM, Mohit Sabharwal < > > > > > >> >> mo...@cloudera.com> > > > > > >> >> > > > > wrote: > > > > > >> >> > > > > > > > > > >> >> > > > > > Hi folks, > > > > > >> >> > > > > > > > > > > >> >> > > > > > Oracle EOL'ed (ended public updates) for Java 7 in > > > April > > > > > >> 2015. > > > > > >> >> > > > > > In order to support Java 8, we fixed quite a bunch > of > > > > tests > > > > > >> in > > > > > >> >> > > > > > HIVE-8607 (*) early last year. However, since our > > > > > pre-commit > > > > > >> >> tests > > > > > >> >> > > run > > > > > >> >> > > > > > on JDK7 only, any JDK8 test failures are getting > > > ignored. > > > > > As > > > > > >> a > > > > > >> >> > > result, > > > > > >> >> > > > > > the count has crept up > > > > > >> >> > > > > > < > > > > > >> >> > > > > > > > > > > >> >> > > > > > > > > > >> >> > > > > > > > > >> >> > > > > > > > >> >> > > > > > > >> >> > > > > > >> > > > > > > > > > > > > > > > http://ec2-174-129-184-35.compute-1.amazonaws.com/jenkins/job/HIVE-TRUNK-JAVA8/ > > > > > >> >> > > > > > > > > > > > >> >> > > > > > back > > > > > >> >> > > > > > from zero to 125. > > > > > >> >> > > > > > > > > > > >> >> > > > > > Some options to address this: > > > > > >> >> > > > > > > > > > > >> >> > > > > > (1) Run pre-commit tests on both JDK7 and JDK8, in > > both > > > > 1.x > > > > > >> >> > > > > > and 2.x: This will further slow down the pre-commit > > > run. > > > > > >> >> > > > > > > > > > > >> >> > > > > > (2) Alternate pre-commit test runs between JDK7 and > > > JDK8 > > > > > (in > > > > > >> >> > > > > > both 1.x and 2.x): It's a cheap hack. More messy, > > > though > > > > > >> >> failures > > > > > >> >> > > > > > won't get ignored. > > > > > >> >> > > > > > > > > > > >> >> > > > > > (3) Drop support for JDK7 in Hive 2.x, i.e. build > and > > > > test > > > > > >> Hive > > > > > >> >> 2.x > > > > > >> >> > > on > > > > > >> >> > > > > > JDK8 only. For Hive 1.x, continue running JDK7 > > > pre-commit > > > > > >> tests. > > > > > >> >> > > > > > The pros are: > > > > > >> >> > > > > > - Simple test matrix. > > > > > >> >> > > > > > - No need to slow down test run or maintain version > > > > > specific > > > > > >> >> golden > > > > > >> >> > > > files > > > > > >> >> > > > > > (**). > > > > > >> >> > > > > > - 2.x looks like the logical place to move to JDK8. > > > > > >> >> > > > > > - Users transitioning to JDK8 for all other > services > > do > > > > not > > > > > >> >> have to > > > > > >> >> > > > > > maintain > > > > > >> >> > > > > > multiple java versions on the cluster. > > > > > >> >> > > > > > > > > > > >> >> > > > > > Option (3) looks most attractive to me. > > > > > >> >> > > > > > > > > > > >> >> > > > > > Moving to JDK8 also lines us up better for Java 9, > > > which > > > > is > > > > > >> on > > > > > >> >> the > > > > > >> >> > > > > > horizon (Oracle will end public updates for Java 8 > in > > > Sep > > > > > >> 2017) > > > > > >> >> > > > > > > > > > > >> >> > > > > > Around 100 of the latest crop of failures are due > to > > > one > > > > > >> cause > > > > > >> >> > > > > > (HIVE-13409). > > > > > >> >> > > > > > I can take a pass at triaging the rest if there is > > > > > consensus > > > > > >> >> around > > > > > >> >> > > > what > > > > > >> >> > > > > > to do overall. > > > > > >> >> > > > > > > > > > > >> >> > > > > > Thanks, > > > > > >> >> > > > > > Mohit > > > > > >> >> > > > > > > > > > > >> >> > > > > > (*) Most test failures are due to JDK8 using a > > > different > > > > > hash > > > > > >> >> > > function > > > > > >> >> > > > > for > > > > > >> >> > > > > > HashMap compared to JDK7. This results in (mostly > > > > benign, > > > > > >> but > > > > > >> >> hard > > > > > >> >> > > > > > to debug) ordering differences in q-file output > > related > > > > to > > > > > >> >> > > > serialization > > > > > >> >> > > > > > order of map entries, numbering of stages in query > > > plan, > > > > > etc. > > > > > >> >> > > > > > > > > > > >> >> > > > > > (**) In some cases, hash function related ordering > > > > > >> differences > > > > > >> >> > > > originate > > > > > >> >> > > > > > in external libraries like Avro, antlr, json > > ,Thrift's > > > > map, > > > > > >> etc. > > > > > >> >> > for > > > > > >> >> > > > > which > > > > > >> >> > > > > > code > > > > > >> >> > > > > > changes are either more involved or led to more > test > > > > > >> failures. > > > > > >> >> To > > > > > >> >> > > > > address > > > > > >> >> > > > > > this, > > > > > >> >> > > > > > we added support for version specific golden files > > > > > >> (HIVE-9109). > > > > > >> >> > > > > Currently, > > > > > >> >> > > > > > there > > > > > >> >> > > > > > are ~40 golden files with ".java1.8.out" extension. > > > > > >> >> > > > > > > > > > > >> >> > > > > > > > > > >> >> > > > > > > > > >> >> > > > > > > > >> >> > > > > > > >> >> > > > > > >> > > > > > > >> > > > > > > >> > > > > > > > > > > > > > > > > > > > > > > > > > > >