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)

Reply via email to