+1, on 0.2.0. The major consumer of Ratis (HDDS/Ozone) will take it with or without –alpha (
--Anu On 5/14/18, 2:24 PM, "Elek, Marton" <e...@apache.org> wrote: All the issues are fixed now (Thanks Nanda, Tsz-Wo, Mukul) The only open question is the version of the release (alpha vs non-alpha). I think there are two kind of alpha releases: 1. Alpha as defined in the semantic versioning specification (https://semver.org/). Here the alpha is a pre-release version of the final release (0.2.0-alpha should be followed by an 0.2.0). This is the schema what is used by hadoop before hadoop 3.0 release. 2. The other alpha is just a label on every release to mark the current releases as not "production-ready". As I understood ratis had this kind of alpha label (there was a 0.1.0-alpha but not 0.1.0). I prefer to follow the semantic versioning. And I can't see the benefit to release both 0.2.0 and 0.2.0-alpha. I think the current version is stable enough to get a final number and the 0 as the major version makes it clear that the project is in an early phase. So I would use 0.2.0 as the next verison number (but not strongly against 0.2.0-alpha if this your preference). What do you think? Thanks, Marton On 05/08/2018 11:45 PM, Tsz Wo Sze wrote: > Agree. Let's fix #2 - #5 for now. > > I have a comment on the release version: In the previous release, we > called it 0.1.0-alpha. How about we use 0.2.0-alpha for the next > release? > > Tsz-Wo > > On Tue, May 8, 2018 at 2:16 PM, Elek, Marton <e...@apache.org> wrote: >> >> Hi, >> >> thank you the test and feedback for all of you. >> >> As a summary. The problems until now: >> >> 1. Unit test failures >> 2. OpenConsensus shading problem: RATIS-237 >> 3. Copyright 2017 >> 4. Missing information about increasing MVN memory. >> 5. Licence headers in shaded jar files >> >> >> >> 3/4: are not blockers (IMHO) >> >> 2: I think it's a blocker. As some of our unit tests are fragile and >> intermittent (1.) Hadoop Ozone could give us additional confidence about the >> stability of the release. Also we would like to provide a stable Ratis >> version to Ozone, so they should work together. >> >> I would cancel this vote. And initialize a new one with RATIS-237 (+ the >> trival fixes). >> >> 5. I am not sure if it's blocker or not (as LICENSE.txt is ok), but I think >> the shaded sources should not be included in the source distribution. I >> think they are just external dependencies similar to other maven >> dependencies (just on the source level). I would fix it with removing the >> src/main/java of the shaded project from the src release. >> >> 1. As I mentioned some of the unit tests seem to be fragile (see >> https://builds.apache.org/job/ratis-qbt-master-java8-linux-x86/). I don't >> think it's a blocker (but would be great to fix them long-term). >> >> Summary: I cancel this vote and propose to include the fix of 2,3,4,5 in rc1 >> (hopefully very soon). >> >> But this is just my view. Please let me know what do you think... >> >> Thanks a lot, >> Marton >> >> >> >> >> >> >> >> >> >> On 05/08/2018 10:08 PM, Tsz Wo Sze wrote: >>> >>> Thanks Nanda for the explanation. >>> >>> I seem able to fix the io.opencensus shading problem. Just have >>> posted a patch on RATIS-237. >>> >>> Tsz-Wo >>> >>> On Mon, May 7, 2018 at 8:28 PM, Nandakumar Vadivelu >>> <nvadiv...@hortonworks.com> wrote: >>>> >>>> Hi Tsz-Wo, >>>> >>>> True, there is only one version of opencensus in Ratis. Since we do >>>> shading of io.grpc we end up with new shaded class of ContextUtils (same >>>> fully qualified class name, but the reference of io.grpc inside the class is >>>> modified/relocated), we also have non shaded ContextUtils. Both are referred >>>> through Ratis dependency. >>>> >>>> The below is dependency tree of Ratis: >>>> >>>> [INFO] +- >>>> org.apache.ratis:ratis-proto-shaded:jar:0.1.1-alpha-SNAPSHOT:compile >>>> =========> Modified opencensus packed with proto-shaded >>>> [INFO] | +- com.google.auto.value:auto-value-annotations:jar:1.6:compile >>>> [INFO] | +- com.google.guava:guava:jar:24.1-jre:compile >>>> [INFO] | | +- com.google.code.findbugs:jsr305:jar:1.3.9:compile >>>> [INFO] | | +- >>>> org.checkerframework:checker-compat-qual:jar:2.0.0:compile >>>> [INFO] | | +- >>>> com.google.errorprone:error_prone_annotations:jar:2.1.3:compile >>>> [INFO] | | +- com.google.j2objc:j2objc-annotations:jar:1.1:compile >>>> [INFO] | | \- >>>> org.codehaus.mojo:animal-sniffer-annotations:jar:1.14:compile >>>> [INFO] | \- com.squareup:javapoet:jar:1.10.0:compile >>>> [INFO] +- org.apache.ratis:ratis-common:jar:0.1.1-alpha-SNAPSHOT:compile >>>> [INFO] | +- org.slf4j:slf4j-api:jar:1.7.10:compile >>>> [INFO] | +- org.slf4j:slf4j-log4j12:jar:1.7.10:compile >>>> [INFO] | | \- log4j:log4j:jar:1.2.17:compile >>>> [INFO] | \- io.dropwizard.metrics:metrics-core:jar:3.2.5:compile >>>> [INFO] +- org.apache.ratis:ratis-client:jar:0.1.1-alpha-SNAPSHOT:compile >>>> [INFO] +- org.apache.ratis:ratis-server:jar:0.1.1-alpha-SNAPSHOT:compile >>>> [INFO] +- org.apache.ratis:ratis-netty:jar:0.1.1-alpha-SNAPSHOT:compile >>>> [INFO] | \- org.jctools:jctools-core:jar:2.1.2:compile >>>> [INFO] \- org.apache.ratis:ratis-grpc:jar:0.1.1-alpha-SNAPSHOT:compile >>>> [INFO] +- io.opencensus:opencensus-api:jar:0.12.2:compile >>>> =========> Original jar >>>> [INFO] | \- io.grpc:grpc-context:jar:1.9.0:compile >>>> [INFO] \- >>>> io.opencensus:opencensus-contrib-grpc-metrics:jar:0.12.2:compile >>>> >>>> >>>> nvadivelu@HW12726 ~/w/t/p/o/t/dependency> javap -classpath >>>> ".:./opencensus-api-0.12.2.jar" io.opencensus.trace.unsafe.ContextUtils >>>> Compiled from "ContextUtils.java" >>>> public final class io.opencensus.trace.unsafe.ContextUtils { >>>> public static final io.grpc.Context$Key<io.opencensus.trace.Span> >>>> CONTEXT_SPAN_KEY; >>>> static {}; >>>> } >>>> >>>> nvadivelu@HW12726 ~/w/t/p/o/t/dependency> javap -classpath >>>> ".:./ratis-proto-shaded-0.1.1-alpha-SNAPSHOT.jar" >>>> io.opencensus.trace.unsafe.ContextUtils >>>> Compiled from "ContextUtils.java" >>>> public final class io.opencensus.trace.unsafe.ContextUtils { >>>> public static final >>>> org.apache.ratis.shaded.io.grpc.Context$Key<io.opencensus.trace.Span> >>>> CONTEXT_SPAN_KEY; >>>> static {}; >>>> } >>>> >>>> >>>> -Nanda >>>> >>>> On 5/8/18, 4:16 AM, "Tsz Wo Sze" <szets...@gmail.com> wrote: >>>> >>>> > The problem is because of two different definition of >>>> io.opencensus.trace.unsafe.ContextUtils class present in the classpath. The >>>> reason for having two different definition of ContextUtils in classpath is >>>> due to the fact that we are shading/relocating io.grpc and not >>>> io.opencensus. >>>> >>>> Nanda, in Ratis, there is only one version (0.12.2) of opencensus. >>>> It >>>> seems that another version of opencensus is pulled outside Ratis. >>>> >>>> Tsz-Wo >>>> >>>> >>>> On Mon, May 7, 2018 at 11:58 AM, Nandakumar Vadivelu >>>> <nvadiv...@hortonworks.com> wrote: >>>> > I'm not sure why the file is missing, I can see the attachment in >>>> my "sent items". >>>> > >>>> > Patch content for reference >>>> > >>>> > diff --git a/ratis-grpc/pom.xml b/ratis-grpc/pom.xml >>>> > index a3c3cc1..ebb73cc 100644 >>>> > --- a/ratis-grpc/pom.xml >>>> > +++ b/ratis-grpc/pom.xml >>>> > @@ -85,15 +85,5 @@ >>>> > <artifactId>jctools-core</artifactId> >>>> > </dependency> >>>> > >>>> > - <dependency> >>>> > - <groupId>io.opencensus</groupId> >>>> > - <artifactId>opencensus-api</artifactId> >>>> > - <version>${io.opencensus.version}</version> >>>> > - </dependency> >>>> > - <dependency> >>>> > - <groupId>io.opencensus</groupId> >>>> > - <artifactId>opencensus-contrib-grpc-metrics</artifactId> >>>> > - <version>${io.opencensus.version}</version> >>>> > - </dependency> >>>> > </dependencies> >>>> > </project> >>>> > >>>> > I will also create a jira under RATIS >>>> > >>>> > -Nanda >>>> > >>>> > On 5/8/18, 12:23 AM, "Ted Yu" <yuzhih...@gmail.com> wrote: >>>> > >>>> > I don't see patch attached. >>>> > >>>> > Please create RATIS JIRA and attach there. >>>> > >>>> > Thanks >>>> > >>>> > On Mon, May 7, 2018 at 10:24 AM, Nandakumar Vadivelu < >>>> > nvadiv...@hortonworks.com> wrote: >>>> > >>>> > > Hi All, >>>> > > >>>> > > Below is the exception which we get with Ratis 0.2.0 >>>> > > >>>> > > java.lang.NoSuchFieldError: CONTEXT_SPAN_KEY >>>> > > at >>>> org.apache.ratis.shaded.io.grpc.internal.CensusTracingModule$ >>>> > > ServerTracer.filterContext(CensusTracingModule.java:340) >>>> > > at >>>> org.apache.ratis.shaded.io.grpc.internal.StatsTraceContext. >>>> > > serverFilterContext(StatsTraceContext.java:121) >>>> > > at org.apache.ratis.shaded.io.grpc.internal.ServerImpl$ >>>> > > >>>> ServerTransportListenerImpl.createContext(ServerImpl.java:482) >>>> > > at org.apache.ratis.shaded.io.grpc.internal.ServerImpl$ >>>> > > >>>> ServerTransportListenerImpl.streamCreated(ServerImpl.java:416) >>>> > > <stack trace truncated> >>>> > > >>>> > > >>>> > > The problem is because of two different definition of >>>> > > io.opencensus.trace.unsafe.ContextUtils class present in the >>>> classpath. >>>> > > The reason for having two different definition of >>>> ContextUtils in classpath >>>> > > is due to the fact that we are shading/relocating io.grpc >>>> and not >>>> > > io.opencensus. >>>> > > >>>> > > >>>> > > With shading we are generating the below definition which >>>> ends up in >>>> > > ratis-proto-shaded jar >>>> > > >>>> > > package io.opencensus.trace.unsafe; >>>> > > >>>> > > import org.apache.ratis.shaded.io.grpc.Context; >>>> > > import io.opencensus.trace.Span; >>>> > > >>>> > > /** >>>> > > * Util methods/functionality to interact with the {@link >>>> > > org.apache.ratis.shaded.io.grpc.Context}. >>>> > > * >>>> > > * <p>Users must interact with the current Context via the >>>> public APIs in >>>> > > {@link >>>> > > * io.opencensus.trace.Tracer} and avoid usages of the >>>> {@link >>>> > > #CONTEXT_SPAN_KEY} directly. >>>> > > * >>>> > > * @since 0.5 >>>> > > */ >>>> > > public final class ContextUtils { >>>> > > // No instance of this class. >>>> > > private ContextUtils() {} >>>> > > >>>> > > /** >>>> > > * The {@link org.apache.ratis.shaded.io.grpc.Context.Key} >>>> used to >>>> > > interact with {@link >>>> org.apache.ratis.shaded.io.grpc.Context}. >>>> > > * >>>> > > * @since 0.5 >>>> > > */ >>>> > > public static final Context.Key<Span> CONTEXT_SPAN_KEY = >>>> > > Context.key("opencensus-trace-span-key"); >>>> > > } >>>> > > >>>> > > >>>> > > Since we have added io.opencensus as direct dependency in >>>> ratis-grpc we >>>> > > get the below definition in io.opencensus:opencensus-api:jar >>>> > > >>>> > > package io.opencensus.trace.unsafe; >>>> > > >>>> > > import io.grpc.Context; >>>> > > import io.opencensus.trace.Span; >>>> > > >>>> > > /** >>>> > > * Util methods/functionality to interact with the {@link >>>> io.grpc.Context}. >>>> > > * >>>> > > * <p>Users must interact with the current Context via the >>>> public APIs in >>>> > > {@link >>>> > > * io.opencensus.trace.Tracer} and avoid usages of the >>>> {@link >>>> > > #CONTEXT_SPAN_KEY} directly. >>>> > > * >>>> > > * @since 0.5 >>>> > > */ >>>> > > public final class ContextUtils { >>>> > > // No instance of this class. >>>> > > private ContextUtils() {} >>>> > > >>>> > > /** >>>> > > * The {@link io.grpc.Context.Key} used to interact with >>>> {@link >>>> > > io.grpc.Context}. >>>> > > * >>>> > > * @since 0.5 >>>> > > */ >>>> > > public static final Context.Key<Span> CONTEXT_SPAN_KEY = >>>> > > Context.key("opencensus-trace-span-key"); >>>> > > } >>>> > > >>>> > > Both of the jars end up in classpath and ContextUtils is >>>> getting loaded >>>> > > from io.opencensus:opencensus-api:jar which is causing the >>>> problem. >>>> > > >>>> > > The simple fix would be to remove the dependency of >>>> io.opencensus from >>>> > > ratis-grpc/pom.xml (patch for the same is attached in this >>>> mail). This is >>>> > > not a permanent fix, as any application might bring in >>>> > > io.opencensus:opencensus-api:jar of its own. >>>> > > >>>> > > We have to find a way to shade >>>> io.opencensus:opencensus-api:jar. >>>> > > >>>> > > Note: from the comment in ratis-proto-shaded/pom.xml: Cannot >>>> relocate >>>> > > io.opencensus due to AutoValue code generation >>>> > > >>>> > > >>>> > > -Nanda >>>> > > >>>> > > On 5/7/18, 3:28 PM, "Lokesh Jain" <lj...@hortonworks.com> >>>> wrote: >>>> > > >>>> > > We found an issue while updating ozone to Ratis snapshot >>>> build >>>> > > 0.1.1-alpha-4309324-SNAPSHOT (https://issues.apache.org/ >>>> > > jira/browse/HDDS-19). I feel we should hold the release till >>>> this is >>>> > > fixed. Please let us know of your opinion as well. >>>> > > >>>> > > Thanks >>>> > > Lokesh >>>> > > >>>> > > >>>> > > >>>> > > >>>> > >>>> > >>>> >>>> >>>> >>