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
>>>> > >
>>>> > >
>>>> > >
>>>> > >
>>>> >
>>>> >
>>>>
>>>>
>>>>
>>