You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ratis.apache.org by "Elek, Marton" <el...@apache.org> on 2018/05/14 21:24:15 UTC

[DISCUSS] version of next release (was Re: [VOTE] Release of Apache Ratis (incubating) 0.2.0 (rc0))

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 <el...@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
>>> <nv...@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" <sz...@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
>>>>       <nv...@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" <yu...@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 <
>>>>       >     nvadivelu@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
>>>>       >     >
>>>>       >     >
>>>>       >     >
>>>>       >     >
>>>>       >
>>>>       >
>>>>
>>>>
>>>>
>>

Re: [DISCUSS] version of next release (was Re: [VOTE] Release of Apache Ratis (incubating) 0.2.0 (rc0))

Posted by Tsz Wo Sze <sz...@gmail.com>.
+1
I do not have a strong opinion on the version.  Either way sounds good
to me.  Thanks.

Tsz-Wo

On Tue, May 15, 2018 at 8:12 AM, Mukul Kumar Singh
<ms...@hortonworks.com> wrote:
> +1 as well. Tested the latest snapshot on Ozone. And Ozone is working perfectly fine with the new version.
>
> On 15/05/18, 8:34 PM, "Xiaoyu Yao" <xy...@hortonworks.com> wrote:
>
>     +1 for 0.2.0.
>
>     Thanks
>
>     On 5/14/18, 4:29 PM, "Anu Engineer" <ae...@hortonworks.com> wrote:
>
>         +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" <el...@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 <el...@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
>             >>> <nv...@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" <sz...@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
>             >>>>       <nv...@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" <yu...@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 <
>             >>>>       >     nvadivelu@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
>             >>>>       >     >
>             >>>>       >     >
>             >>>>       >     >
>             >>>>       >     >
>             >>>>       >
>             >>>>       >
>             >>>>
>             >>>>
>             >>>>
>             >>
>
>
>
>
>
>
>

Re: [DISCUSS] version of next release (was Re: [VOTE] Release of Apache Ratis (incubating) 0.2.0 (rc0))

Posted by Mukul Kumar Singh <ms...@hortonworks.com>.
+1 as well. Tested the latest snapshot on Ozone. And Ozone is working perfectly fine with the new version.

On 15/05/18, 8:34 PM, "Xiaoyu Yao" <xy...@hortonworks.com> wrote:

    +1 for 0.2.0.
    
    Thanks
    
    On 5/14/18, 4:29 PM, "Anu Engineer" <ae...@hortonworks.com> wrote:
    
        +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" <el...@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 <el...@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
            >>> <nv...@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" <sz...@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
            >>>>       <nv...@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" <yu...@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 <
            >>>>       >     nvadivelu@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
            >>>>       >     >
            >>>>       >     >
            >>>>       >     >
            >>>>       >     >
            >>>>       >
            >>>>       >
            >>>>
            >>>>
            >>>>
            >>
            
            
        
        
    
    


Re: [DISCUSS] version of next release (was Re: [VOTE] Release of Apache Ratis (incubating) 0.2.0 (rc0))

Posted by Xiaoyu Yao <xy...@hortonworks.com>.
+1 for 0.2.0.

Thanks

On 5/14/18, 4:29 PM, "Anu Engineer" <ae...@hortonworks.com> wrote:

    +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" <el...@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 <el...@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
        >>> <nv...@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" <sz...@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
        >>>>       <nv...@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" <yu...@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 <
        >>>>       >     nvadivelu@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
        >>>>       >     >
        >>>>       >     >
        >>>>       >     >
        >>>>       >     >
        >>>>       >
        >>>>       >
        >>>>
        >>>>
        >>>>
        >>
        
        
    
    


Re: [DISCUSS] version of next release (was Re: [VOTE] Release of Apache Ratis (incubating) 0.2.0 (rc0))

Posted by Anu Engineer <ae...@hortonworks.com>.
+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" <el...@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 <el...@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
    >>> <nv...@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" <sz...@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
    >>>>       <nv...@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" <yu...@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 <
    >>>>       >     nvadivelu@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
    >>>>       >     >
    >>>>       >     >
    >>>>       >     >
    >>>>       >     >
    >>>>       >
    >>>>       >
    >>>>
    >>>>
    >>>>
    >>