You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@metron.apache.org by "Casey Stella (JIRA)" <ji...@apache.org> on 2016/12/05 14:54:58 UTC

[jira] [Created] (METRON-610) OnlineStatisticsProvider serialization is broken at random in the REPL

Casey Stella created METRON-610:
-----------------------------------

             Summary: OnlineStatisticsProvider serialization is broken at random in the REPL
                 Key: METRON-610
                 URL: https://issues.apache.org/jira/browse/METRON-610
             Project: Metron
          Issue Type: Bug
            Reporter: Casey Stella
            Assignee: Casey Stella


We rely on the t-digest library version 3.1 and elasticsearch brings along 3.0.  There is a small API incompatibility between the two versions (namely  the static method TDigest.createAvlTreeDigest() is available in 3.1 but not 3.0).

If the classpath for the Stellar REPL chooses the 3.0 version of the library, then deserialization is broken.

Strictly speaking this is not a problem of the serialized form being incorrect, but a problem in the custom kryo serialization code in the class.  It relies on the default constructor being called and then the digest being deserialized using the code within the t-digest library.  Because the default constructor initializes the digest via a call that does not exist in 3.0, it breaks.  The serialization logic is safe to use in both versions, but the object can't be constructed in 3.0.

This fix directly instantiates the AvlTreeDigest, which exists in both versions.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)