Based on a recent incident, I thought of bumping this thread.

I agree with Chinmay on using JDK7 for our 4.x builds. Now with 
Yetus support (after last discussion on this thread), maybe we
can consider supporting MULTIJDK environment (JDK7+JDK8) too 
with parallel execution of precommit checks stage?


On 2020/05/11 22:41:51, Chinmay Kulkarni <chinmayskulka...@gmail.com> wrote: 
> Sorry to slightly digress, but based on these discussions, shouldn't we be
> setting JAVA_HOME to point to JDK 7 in all our builds? Especially based on
> Andrew's comment above:
> "
> 
> 
> *Java 7 is not forwards compatible with Java 8, especially with respect
> toJRE internals. What that means is if you compile something with Java
> 8,even if you are not using Java 8 language features, you won't be able
> torun it on a Java 7 runtime.*"
> 
> Our 4.x build
> <https://builds.apache.org/view/M-R/view/Phoenix/job/Phoenix-4.x-matrix/configure>
> is configured with java 1.8:
> [image: 4.x.png]
> In our master build
> <https://builds.apache.org/view/M-R/view/Phoenix/job/Phoenix-master-matrix/configure>,
> we don't even specify JAVA_HOME, so essentially it picks up the latest
> version. Precommit gets JAVA_HOME set from $PHOENIX/dev/jenkensEnv.sh.
> 
> There have been issues where master builds failed because they used JDK 11 (
> https://builds.apache.org/job/Phoenix-master-matrix/HBASE_PROFILE=2.1/71/consoleFull),
> search for "JAVA VERSION" in the log file. The same build does not fail if
> run with JDK 8.
> 
> Also, doesn't this mean we are already compiling with Java 8 (at least in
> the 4.x branches) or am I missing something?
> 
> <https://builds.apache.org/view/M-R/view/Phoenix/job/Phoenix-4.x-matrix/configure>
> 
> On Wed, Apr 22, 2020 at 8:11 PM Ankit Singhal <ankitsingha...@gmail.com>
> wrote:
> 
> > Just linking a discussion we had one and a half years back on the same [1],
> > considering nothing has changed since then because Java 7 was EOLed in July
> > 2015
> > and Phoenix 5.0 was also out, it majorly comes to the point of the
> > inconvenience of working
> > on old code style and extra efforts required to create patches for each
> > branch.
> >
> > Let's say if we decide to upgrade to Java8(Option 3), don't we require the
> > following changes?
> >
> > * Major version upgrade from 4.x-HBase-1.x to 5.x-HBase-1.x:- As upgrading
> > 4.x branches
> > to Java8 breaks the compatibility with HBase and Java runtime, we need to
> > ensure that
> > we adhere to dependency compatibility between the minor releases as it is
> > expected that
> > Phoenix minor upgrade should be just a server jar drop and a restart (even
> > though
> > we don't explicit covers Java runtime in our backward compatibility [2] as
> > HBase does[3]
> > but people are used to it now)
> >
> > * Release Notes and convenience libraries:- Though we would say that it is
> > compatible with
> > HBase version 1.x but require a Java8, so we need to be explicit with our
> > convenience libraries
> > as well , like append "jdk8" to a name or something similar
> > (phoenix-server-HBase-1.x-jdk8.jar).
> > And also provide clarity on the version upgrade
> >
> > * Avoiding issues during runtime:- Though JAVA8 and JAVA7 are said to be
> > binary compatible
> > and are expected to be fine in Java8 runtime but it has been called out
> > there are rare instances
> > which can cause issues due to some incompatibilities between JRE and
> > JDK[4]. (As Andrew also
> > called out and might have observed the same)
> >
> >
> > Though I agreed with Istvan that creating multiple patches and dealing with
> > change in code style every time
> > we switch branches has put additional load on the contributor but IMHO, we
> > should wait for
> > HBase-1.x to upgrade Java before we do it to avoid the some of the issues
> > listed above related to Option 3.
> >
> > Option2 would be preferred at the time when we decide on whether we want to
> > diverge from feature
> > parity in our major releases and we do only limited fixes for 4.x branch.
> > So basically I'm also in favor of Option 1 (continuing Java 7 for HBase-1.x
> > and code style as much possible for 5.x).
> >
> > [1]
> >
> > https://lists.apache.org/thread.html/970db0b5cb0560c49654e450aafb8fb759596384cefe4f02808e80cc%40%3Cdev.phoenix.apache.org%3E
> > [2]http://phoenix.apache.org/upgrading.html
> > [3] https://hbase.apache.org/book.html#hbase.versioning
> > [4]
> >
> > https://www.oracle.com/technetwork/java/javase/8-compatibility-guide-2156366.html#A999387
> >
> > Regards,
> > Ankit Singhal
> >
> 
> 
> -- 
> Chinmay Kulkarni
> 

Reply via email to