cool! I'm on it.

On Tue, Jun 19, 2018 at 11:00 PM Pramod Immaneni <pramod.imman...@gmail.com>
wrote:

> Hi Aaron,
>
> That would be great if you can pitch in wherever you can. Let us know how
> we can help. Also, I was going to try the new kryo version later today and
> see if there are any internal errors that are bubbling up to those test
> failures but not getting logged.
>
> Thanks
>
> On Tue, Jun 19, 2018 at 7:54 PM Aaron Bossert <aa...@punchcyber.com>
> wrote:
>
>> P.S.  I am happy to roll up my sleeves, but from my initial attempt,
>> errors
>> I was seeing were not obviously related to the Kryo version update (though
>> I am certain they are...at least indirectly because they only show up when
>> the version is changed), in terms of tracking down where the changes would
>> be required...I am not really familiar with the inner workings of Apex
>> yet,
>> though this would definitely be a good excuse to learn...
>>
>> I also saw a bunch of annoying warnings when building related to use of
>> deprecated methods/classes within the com.datatorrent.* namespace...I'd be
>> happy to start tracking some of those down too if it would be helpful...
>>
>> On Tue, Jun 19, 2018 at 10:48 PM Aaron Bossert <aa...@punchcyber.com>
>> wrote:
>>
>> > Pramod,
>> >
>> > In a nutshell, yes.  I can set a @FieldSerializer to the fields in
>> > question...the only one I have run into thus far is Instant...but it
>> would
>> > be great to not need to annotate each field this way...Also, I could see
>> > this becoming problematic should I encounter more than a couple of
>> fields
>> > that are not serializable using the older version of Kryo (but
>> presumably
>> > would work with a more current one)...though admitedly, it would not be
>> > that big a deal in the interim.  It would be much cleaner to have an
>> update
>> > to the most current version of Kryo, IMHO...though I understand that is
>> > something of a lift.  By the way, Kryo 5 just came out yesterday, so if
>> > there is to be effort expended, it might be good to go with the latest
>> > version...though, heads up, I tried it out and there seem to be quite a
>> few
>> > changes that will be needed...new methods, and definitely some replaced
>> > ones...
>> >
>> >
>> >
>> > On Tue, Jun 19, 2018 at 10:37 PM Pramod Immaneni <
>> > pramod.imman...@gmail.com> wrote:
>> >
>> >> Hi Aaron,
>> >>
>> >> While we are debugging the test failures on dev, I didn't fully
>> >> understand the last question in your email. Looks like you mentioned
>> that
>> >> the workaround for adding the @FieldSerializer to the field is
>> working. Are
>> >> you looking for an alternative to this workaround and trying to set a
>> >> default serializer for all fields of type Instant (the field type you
>> >> mentioned in the earlier email) so that you don't have to set the
>> >> annotation each time?
>> >>
>> >> Thanks
>> >>
>> >> On Tue, Jun 19, 2018 at 12:59 PM Aaron Bossert <aa...@punchcyber.com>
>> >> wrote:
>> >>
>> >>> I sent an e-mail to the dev list...but have not heard any responses.
>> >>> How active is that list?  Do you know?  Basically, I have a
>> workaround that
>> >>> will deal with those "things" that Kryo v 2.24.0 will not handle (but
>> 4.0.2
>> >>> or 5.0.0-RC1 would) using the @FieldSerializer ...but this is not
>> ideal.  I
>> >>> have two options left: go it alone and try to update Kryo in the
>> apex-core,
>> >>> or simply change the default serializer.  The hiccup I am running
>> into is
>> >>> that I don't see how (from the documentation) to set the default
>> >>> serializer...perhaps I am missing it.  Can someone point me to where
>> that
>> >>> is in the docs?
>> >>>
>> >>> On Mon, Jun 11, 2018 at 4:20 PM Aaron Bossert <aa...@punchcyber.com>
>> >>> wrote:
>> >>>
>> >>>> Ah, you make a good point about the dev list...I am using IntelliJ
>> on a
>> >>>> Mac.  When I tried building without any changes, I also encountered
>> >>>> failures.  I can re-run the non-modified sources to do a diff and
>> see if
>> >>>> the errors were different...
>> >>>>
>> >>>> Sent from my iPhone
>> >>>>
>> >>>> On Jun 11, 2018, at 15:11, Pramod Immaneni <
>> pramod.imman...@gmail.com>
>> >>>> wrote:
>> >>>>
>> >>>> Aaron,
>> >>>>
>> >>>> The question might be best served on the dev@apex.apache.org mailing
>> >>>> list as you are starting to make changes to the sources. Nothing
>> obvious
>> >>>> jumps out to be, you don't need hadoop on your system to build the
>> sources
>> >>>> successfully with all the tests passing. The test failures you are
>> seeing
>> >>>> may or may not be related to the kryo change. What happens when you
>> try to
>> >>>> build the original sources with changing the Kryo version? What is
>> your
>> >>>> environment, mac, linux?
>> >>>>
>> >>>> On Mon, Jun 11, 2018 at 12:03 PM Aaron Bossert <aa...@punchcyber.com
>> >
>> >>>> wrote:
>> >>>>
>> >>>>> I know it has been a little while since I brought this up...I pulled
>> >>>>> down the 3.7.1-RELEASE branch from GitHub in order to test out the
>> change
>> >>>>> to Kryo v. 4.0.2 and encountered no problems while building,
>> however, when
>> >>>>> I try to do mvn install, there are several failed tests.  I am
>> hoping, that
>> >>>>> other than the obvious (to me, anyway) errors such as not finding
>> >>>>> yarn-site.xml on my laptop which does not have hadoop installed,
>> someone
>> >>>>> may be able to see what is going on?
>> >>>>>
>> >>>>>
>> >>>>>
>> -------------------------------------------------------------------------------
>> >>>>> Test set: com.datatorrent.stram.StramRecoveryTest
>> >>>>>
>> >>>>>
>> -------------------------------------------------------------------------------
>> >>>>> Tests run: 8, Failures: 1, Errors: 0, Skipped: 0, Time elapsed:
>> 6.372
>> >>>>> sec <<< FAILURE! - in com.datatorrent.stram.StramRecoveryTest
>> >>>>> testWriteAheadLog(com.datatorrent.stram.StramRecoveryTest)  Time
>> >>>>> elapsed: 0.115 sec  <<< FAILURE!
>> >>>>> java.lang.AssertionError: flush count expected:<1> but was:<2>
>> >>>>> at
>> >>>>>
>> com.datatorrent.stram.StramRecoveryTest.testWriteAheadLog(StramRecoveryTest.java:326)
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> -------------------------------------------------------------------------------
>> >>>>> Test set: com.datatorrent.stram.engine.StatsTest
>> >>>>>
>> >>>>>
>> -------------------------------------------------------------------------------
>> >>>>> Tests run: 6, Failures: 1, Errors: 0, Skipped: 0, Time elapsed:
>> 21.894
>> >>>>> sec <<< FAILURE! - in com.datatorrent.stram.engine.StatsTest
>> >>>>>
>> testQueueSizeForContainerLocalOperators(com.datatorrent.stram.engine.StatsTest)
>> >>>>>  Time elapsed: 3.266 sec  <<< FAILURE!
>> >>>>> java.lang.AssertionError: Validate input port queue size -1
>> >>>>> at
>> >>>>>
>> com.datatorrent.stram.engine.StatsTest.baseTestForQueueSize(StatsTest.java:270)
>> >>>>> at
>> >>>>>
>> com.datatorrent.stram.engine.StatsTest.testQueueSizeForContainerLocalOperators(StatsTest.java:285)
>> >>>>>
>> >>>>>
>> >>>>>
>> -------------------------------------------------------------------------------
>> >>>>> Test set: com.datatorrent.stram.StramMiniClusterTest
>> >>>>>
>> >>>>>
>> -------------------------------------------------------------------------------
>> >>>>> Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed:
>> 0.002
>> >>>>> sec <<< FAILURE! - in com.datatorrent.stram.StramMiniClusterTest
>> >>>>> com.datatorrent.stram.StramMiniClusterTest  Time elapsed: 0.002 sec
>> >>>>>  <<< ERROR!
>> >>>>> java.io.FileNotFoundException:
>> >>>>>
>> /Users/mbossert/Library/Mobile%20Documents/com~apple~CloudDocs/Punch/IdeaProjects/apex-core/engine/target/test-classes/yarn-site.xml
>> >>>>> (No such file or directory)
>> >>>>> at
>> >>>>>
>> com.datatorrent.stram.StramMiniClusterTest.setup(StramMiniClusterTest.java:151)
>> >>>>>
>> >>>>>
>> >>>>>
>> -------------------------------------------------------------------------------
>> >>>>> Test set: com.datatorrent.stram.StramLocalClusterTest
>> >>>>>
>> >>>>>
>> -------------------------------------------------------------------------------
>> >>>>> Tests run: 4, Failures: 2, Errors: 0, Skipped: 0, Time elapsed:
>> 15.081
>> >>>>> sec <<< FAILURE! - in com.datatorrent.stram.StramLocalClusterTest
>> >>>>> testAppPath(com.datatorrent.stram.StramLocalClusterTest)  Time
>> >>>>> elapsed: 0.138 sec  <<< FAILURE!
>> >>>>> java.lang.AssertionError: checkpoint path exists
>> >>>>> at
>> >>>>>
>> com.datatorrent.stram.StramLocalClusterTest.testAppPath(StramLocalClusterTest.java:413)
>> >>>>>
>> >>>>>
>> testLocalClusterInitShutdown(com.datatorrent.stram.StramLocalClusterTest)
>> >>>>>  Time elapsed: 5.191 sec  <<< FAILURE!
>> >>>>> java.lang.AssertionError:
>> >>>>>
>> ./target/com.datatorrent.stram.StramLocalClusterTest-testLocalClusterInitShutdown.out
>> >>>>> exists
>> >>>>> at
>> >>>>>
>> com.datatorrent.stram.StramLocalClusterTest.testLocalClusterInitShutdown(StramLocalClusterTest.java:117)
>> >>>>>
>> >>>>>
>> >>>>>
>> -------------------------------------------------------------------------------
>> >>>>> Test set: com.datatorrent.stram.client.AppPackageTest
>> >>>>>
>> >>>>>
>> -------------------------------------------------------------------------------
>> >>>>> Tests run: 4, Failures: 2, Errors: 0, Skipped: 0, Time elapsed:
>> 0.105
>> >>>>> sec <<< FAILURE! - in com.datatorrent.stram.client.AppPackageTest
>> >>>>> testAppPackage(com.datatorrent.stram.client.AppPackageTest)  Time
>> >>>>> elapsed: 0 sec  <<< FAILURE!
>> >>>>> java.lang.AssertionError: Number of applications expected:<2> but
>> >>>>> was:<0>
>> >>>>> at
>> >>>>>
>> com.datatorrent.stram.client.AppPackageTest.testAppPackage(AppPackageTest.java:91)
>> >>>>>
>> >>>>>
>> testAppLevelRequiredAndDefaultProperties(com.datatorrent.stram.client.AppPackageTest)
>> >>>>>  Time elapsed: 0.001 sec  <<< FAILURE!
>> >>>>> java.lang.AssertionError: Should consist of an app called
>> >>>>> MyFirstApplication
>> >>>>> at
>> >>>>>
>> com.datatorrent.stram.client.AppPackageTest.testAppLevelRequiredAndDefaultProperties(AppPackageTest.java:171)
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> -------------------------------------------------------------------------------
>> >>>>> Test set: com.datatorrent.stram.cli.ApexCliTest
>> >>>>>
>> >>>>>
>> -------------------------------------------------------------------------------
>> >>>>> Tests run: 7, Failures: 2, Errors: 2, Skipped: 0, Time elapsed:
>> 0.938
>> >>>>> sec <<< FAILURE! - in com.datatorrent.stram.cli.ApexCliTest
>> >>>>> testAppFromOnlyConfigPackage(com.datatorrent.stram.cli.ApexCliTest)
>> >>>>>  Time elapsed: 0.104 sec  <<< ERROR!
>> >>>>> com.datatorrent.stram.cli.ApexCli$CliException: No applications in
>> >>>>> Application Package
>> >>>>> at
>> >>>>>
>> com.datatorrent.stram.cli.ApexCliTest.testAppFromOnlyConfigPackage(ApexCliTest.java:235)
>> >>>>>
>> >>>>>
>> testLaunchAppPackagePropertyPrecedence(com.datatorrent.stram.cli.ApexCliTest)
>> >>>>>  Time elapsed: 0.045 sec  <<< FAILURE!
>> >>>>> org.junit.ComparisonFailure: expected:<[app]-default> but
>> >>>>> was:<[package]-default>
>> >>>>> at
>> >>>>>
>> com.datatorrent.stram.cli.ApexCliTest.testLaunchAppPackagePropertyPrecedence(ApexCliTest.java:143)
>> >>>>>
>> >>>>>
>> testLaunchAppPackageParametersWithConfigPackage(com.datatorrent.stram.cli.ApexCliTest)
>> >>>>>  Time elapsed: 0.045 sec  <<< ERROR!
>> >>>>> com.datatorrent.stram.cli.ApexCli$CliException: No applications in
>> >>>>> Application Package matching "MyFirstApplication"
>> >>>>> at
>> >>>>>
>> com.datatorrent.stram.cli.ApexCliTest.testLaunchAppPackageParametersWithConfigPackage(ApexCliTest.java:155)
>> >>>>>
>> >>>>>
>> testLaunchAppPackagePrecedenceWithConfigPackage(com.datatorrent.stram.cli.ApexCliTest)
>> >>>>>  Time elapsed: 0.058 sec  <<< FAILURE!
>> >>>>> org.junit.ComparisonFailure: expected:<[app]-default> but
>> >>>>> was:<[package]-default>
>> >>>>> at
>> >>>>>
>> com.datatorrent.stram.cli.ApexCliTest.testLaunchAppPackagePrecedenceWithConfigPackage(ApexCliTest.java:204)
>> >>>>>
>> >>>>>
>> >>>>> On Thu, May 17, 2018 at 1:31 PM, Aaron Bossert <
>> aa...@punchcyber.com>
>> >>>>> wrote:
>> >>>>>
>> >>>>>> Thanks, Thomas!  I have implemented the fix you suggested
>> >>>>>> (@FieldSerializer.BInd) and also created a JIRA ticket:
>> >>>>>> https://issues.apache.org/jira/browse/APEXCORE-816
>> >>>>>>
>> >>>>>> On Thu, May 17, 2018 at 1:31 AM, Thomas Weise <t...@apache.org>
>> wrote:
>> >>>>>>
>> >>>>>>> Hi,
>> >>>>>>>
>> >>>>>>> It is not necessary to use a different stream codec when you have
>> >>>>>>> control over the class that is causing the error. You can
>> annotate a
>> >>>>>>> different field serializer instead, using the
>> @FieldSerializer.Bind
>> >>>>>>> annotation. Here is an example:
>> >>>>>>>
>> >>>>>>>
>> >>>>>>>
>> https://github.com/apache/apex-malhar/blob/2fe2903bfe65055c7fd361a97549b6e7e12d4289/library/src/main/java/org/apache/apex/malhar/lib/window/WindowOption.java#L50
>> >>>>>>>
>> >>>>>>> It would be good to upgrade Kryo to 4.x in apex-core master. Would
>> >>>>>>> you like to create a JIRA for it? (
>> >>>>>>> http://apex.apache.org/contributing.html)
>> >>>>>>>
>> >>>>>>> Thanks,
>> >>>>>>> Thomas
>> >>>>>>>
>> >>>>>>>
>> >>>>>>>
>> >>>>>>>
>> >>>>>>>
>> >>>>>>> On Wed, May 16, 2018 at 10:31 AM, Aaron Bossert <
>> >>>>>>> aa...@punchcyber.com> wrote:
>> >>>>>>>
>> >>>>>>>> I am writing an application that includes a custom object.  One
>> of
>> >>>>>>>> the fields is of type Instant and seems to not agree with the
>> version of
>> >>>>>>>> Kryo that is used in Apex (see exception below).  I now that
>> kryo 4.X
>> >>>>>>>> supports serializing Instant fields, but for the life of me,
>> cannot seem to
>> >>>>>>>> find a way to either get Apex to use a newer version of Kryo.
>> Can anyone
>> >>>>>>>> help?  Perhaps setting a different streamcodec that uses the
>> newer version
>> >>>>>>>> of kryo would work, but I cannot seem to find an example of how
>> to set a
>> >>>>>>>> different streamcodec despite references to the two (Kryo and
>> Java) that
>> >>>>>>>> ship with Apex.
>> >>>>>>>>
>> >>>>>>>> ERROR com.datatorrent.stram.codec.DefaultStatefulStreamCodec -
>> >>>>>>>> Catastrophic Error: Execution halted due to Kryo exception!
>> >>>>>>>> com.esotericsoftware.kryo.KryoException: Class cannot be created
>> >>>>>>>> (missing no-arg constructor): java.time.Instant
>> >>>>>>>> Serialization trace:
>> >>>>>>>> systemTime
>> >>>>>>>> (com.punchcyber.streaming.pipeline.apex.datatypes.evtx.EvtxEvent)
>> >>>>>>>> at
>> >>>>>>>>
>> com.esotericsoftware.kryo.Kryo$DefaultInstantiatorStrategy.newInstantiatorOf(Kryo.java:1228)
>> >>>>>>>> at com.esotericsoftware.kryo.Kryo.newInstantiator(Kryo.java:1049)
>> >>>>>>>> at com.esotericsoftware.kryo.Kryo.newInstance(Kryo.java:1058)
>> >>>>>>>> at
>> >>>>>>>>
>> com.esotericsoftware.kryo.serializers.FieldSerializer.create(FieldSerializer.java:547)
>> >>>>>>>> at
>> >>>>>>>>
>> com.esotericsoftware.kryo.serializers.FieldSerializer.read(FieldSerializer.java:523)
>> >>>>>>>> at com.esotericsoftware.kryo.Kryo.readObjectOrNull(Kryo.java:730)
>> >>>>>>>> at
>> >>>>>>>>
>> com.esotericsoftware.kryo.serializers.ObjectField.read(ObjectField.java:113)
>> >>>>>>>> at
>> >>>>>>>>
>> com.esotericsoftware.kryo.serializers.FieldSerializer.read(FieldSerializer.java:528)
>> >>>>>>>> at
>> com.esotericsoftware.kryo.Kryo.readClassAndObject(Kryo.java:761)
>> >>>>>>>> at com.datatorrent.stram.codec.De
>> >>>>>>>>
>> faultStatefulStreamCodec.fromDataStatePair(DefaultStatefulStreamCodec.java:98)
>> >>>>>>>> at
>> >>>>>>>>
>> com.datatorrent.stram.stream.BufferServerSubscriber$BufferReservoir.processPayload(BufferServerSubscriber.java:391)
>> >>>>>>>> at
>> >>>>>>>>
>> com.datatorrent.stram.stream.BufferServerSubscriber$BufferReservoir.sweep(BufferServerSubscriber.java:339)
>> >>>>>>>> at
>> >>>>>>>>
>> com.datatorrent.stram.engine.GenericNode.run(GenericNode.java:269)
>> >>>>>>>> at
>> >>>>>>>>
>> com.datatorrent.stram.engine.StreamingContainer$2.run(StreamingContainer.java:1429)
>> >>>>>>>>
>> >>>>>>>>
>> >>>>>>>> --
>> >>>>>>>>
>> >>>>>>>> M. Aaron Bossert
>> >>>>>>>> (571) 242-4021
>> >>>>>>>> Punch Cyber Analytics Group
>> >>>>>>>>
>> >>>>>>>>
>> >>>>>>>>
>> >>>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>> --
>> >>>>>>
>> >>>>>> M. Aaron Bossert
>> >>>>>> (571) 242-4021
>> >>>>>> Punch Cyber Analytics Group
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>
>> >>>>>
>> >>>>> --
>> >>>>>
>> >>>>> M. Aaron Bossert
>> >>>>> (571) 242-4021
>> >>>>> Punch Cyber Analytics Group
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>
>> >>> --
>> >>>
>> >>> M. Aaron Bossert
>> >>> (571) 242-4021
>> >>> Punch Cyber Analytics Group
>> >>>
>> >>>
>> >>>
>> >
>> > --
>> >
>> > M. Aaron Bossert
>> > (571) 242-4021
>> > Punch Cyber Analytics Group
>> >
>> >
>> >
>>
>> --
>>
>> M. Aaron Bossert
>> (571) 242-4021
>> Punch Cyber Analytics Group
>>
>

-- 

M. Aaron Bossert
(571) 242-4021
Punch Cyber Analytics Group

Reply via email to