aws / random-cut-forest-by-aws

An implementation of the Random Cut Forest data structure for sketching streaming data, with support for anomaly detection, density estimation, imputation, and more.
https://github.com/aws/random-cut-forest-by-aws
Apache License 2.0
206 stars 33 forks source link

AD&ml-commons fail to deserialize 1.3 model in latest RCF code #305

Closed ylwu-amzn closed 2 years ago

ylwu-amzn commented 2 years ago

Steps to reproduce

  1. Train RCF model on 1.3 domain.
  2. Start 2.0 test cluster and write RCF model created in step1 to .plugins-ml-model index with id test_old_model
  3. Call predict API with model id test_old_model, it works.
  4. Build RCF latest code, place RCF and parkservice jars to ml-commons lib, run 2.0 test cluster, call predict with model test_old_model throws exception and error shows
    [2022-03-24T00:02:59,289][ERROR][o.o.m.t.MLPredictTaskRunner] [integTest-0] Failed to predict BATCH_RCF, modelId: test_old_model
    org.opensearch.ml.engine.exceptions.ModelSerDeSerException: Failed to deserialize model.
        at org.opensearch.ml.engine.utils.ModelSerDeSer.deserialize(ModelSerDeSer.java:47) ~[?:?]
        at org.opensearch.ml.engine.algorithms.rcf.BatchRandomCutForest.predict(BatchRandomCutForest.java:71) ~[?:?]
        at org.opensearch.ml.engine.MLEngine.predict(MLEngine.java:38) ~[?:?]
        at org.opensearch.ml.task.MLPredictTaskRunner.lambda$predict$5(MLPredictTaskRunner.java:190) ~[?:?]
        at org.opensearch.action.ActionListener$1.onResponse(ActionListener.java:78) [opensearch-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
        at org.opensearch.action.ActionListener$6.onResponse(ActionListener.java:297) [opensearch-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
        at org.opensearch.action.support.TransportAction$1.onResponse(TransportAction.java:103) [opensearch-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
        at org.opensearch.action.support.TransportAction$1.onResponse(TransportAction.java:97) [opensearch-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
        at org.opensearch.action.support.single.shard.TransportSingleShardAction$AsyncSingleAction$2.handleResponse(TransportSingleShardAction.java:287) [opensearch-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
        at org.opensearch.action.support.single.shard.TransportSingleShardAction$AsyncSingleAction$2.handleResponse(TransportSingleShardAction.java:273) [opensearch-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
        at org.opensearch.transport.TransportService$ContextRestoreResponseHandler.handleResponse(TransportService.java:1340) [opensearch-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
        at org.opensearch.transport.TransportService$DirectResponseChannel.processResponse(TransportService.java:1418) [opensearch-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
        at org.opensearch.transport.TransportService$DirectResponseChannel.sendResponse(TransportService.java:1398) [opensearch-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
        at org.opensearch.transport.TaskTransportChannel.sendResponse(TaskTransportChannel.java:65) [opensearch-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
        at org.opensearch.action.support.ChannelActionListener.onResponse(ChannelActionListener.java:57) [opensearch-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
        at org.opensearch.action.support.ChannelActionListener.onResponse(ChannelActionListener.java:40) [opensearch-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
        at org.opensearch.action.ActionRunnable.lambda$supply$0(ActionRunnable.java:71) [opensearch-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
        at org.opensearch.action.ActionRunnable$2.doRun(ActionRunnable.java:86) [opensearch-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
        at org.opensearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:792) [opensearch-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
        at org.opensearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:50) [opensearch-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) [?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) [?:?]
        at java.lang.Thread.run(Thread.java:832) [?:?]
ylwu-amzn commented 2 years ago

ml-commons 1.3 is using this commit https://github.com/aws/random-cut-forest-by-aws/commit/4b1d376290a90147f6d004bfe23ac95fa2dcbae1 which was the latest commit when we develop and release ml-commons

ylwu-amzn commented 2 years ago

Find the root cause. RCF jar in ml-commons was built from my own branch commit https://github.com/ylwu-amzn/random-cut-forest-by-aws/commit/8d887683b4b37bd02bab7af298a3849604940361. Then later I added a new commit "add serialVersionUID and example" https://github.com/ylwu-amzn/random-cut-forest-by-aws/commit/12028681df1ca1dc78bae14dcc52a3fe634c9b04. But forgot to update the the RCF jar file in ml-commons. That means the old model serialized with default serialVersionUID but latest RCF code tries to deserialize with serialVersionUID=1. I think we'd better publish a patch version for ml-commons or we have to roll back the commit "add serialVersionUID and example".

ylwu-amzn commented 2 years ago

Tested AD 1.3.0 RCF model with different RCF jars. Reproduce by running this unit test: https://github.com/ylwu-amzn/anomaly-detection-2/blob/test_deserialize_ad_model/src/test/java/org/opensearch/ad/ml/CheckpointDaoTests.java#L1003-L1018

https://github.com/aws/random-cut-forest-by-aws/commit/92968553178bc3aa09780bb0482121e2155f5a4e PR #282

This version is what AD 1.3.0 using. It works.

https://github.com/aws/random-cut-forest-by-aws/commit/3bb8fcee46507ba83e6ce10432df45254654c363 PR #283

Works

https://github.com/aws/random-cut-forest-by-aws/commit/26d12d952df6c051196e57f4032b0880820db32b PR #284

Doesn't work

[2022-03-26T03:43:27,647][ERROR][o.o.a.m.CheckpointDao    ] [testToRCF] Failed to deserialize TRCF model
java.lang.NullPointerException: null
    at com.amazon.randomcutforest.tree.CompactRandomCutTreeFloat.getMutableLeafBoxFromLeafNode(CompactRandomCutTreeFloat.java:57) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.CompactRandomCutTreeFloat.getMutableLeafBoxFromLeafNode(CompactRandomCutTreeFloat.java:28) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.AbstractCompactRandomCutTree.constructBoxInPlace(AbstractCompactRandomCutTree.java:282) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.AbstractCompactRandomCutTree.constructBoxInPlace(AbstractCompactRandomCutTree.java:291) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.AbstractCompactRandomCutTree.constructBoxInPlace(AbstractCompactRandomCutTree.java:48) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.AbstractRandomCutTree.getBoundingBox(AbstractRandomCutTree.java:175) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.AbstractRandomCutTree.addPoint(AbstractRandomCutTree.java:517) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.lambda$singlePrecisionForest$2(RandomCutForestMapper.java:379) ~[randomcutforest-core-2.0.1.jar:?]
    at java.util.ArrayList.forEach(ArrayList.java:1511) ~[?:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.singlePrecisionForest(RandomCutForestMapper.java:379) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.toModel(RandomCutForestMapper.java:275) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.toModel(RandomCutForestMapper.java:62) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.IContextualStateMapper.toModel(IContextualStateMapper.java:24) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.toModel(RandomCutForestMapper.java:338) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.parkservices.state.ThresholdedRandomCutForestMapper.toModel(ThresholdedRandomCutForestMapper.java:50) ~[randomcutforest-parkservices-2.0.1.jar:?]
    at com.amazon.randomcutforest.parkservices.state.ThresholdedRandomCutForestMapper.toModel(ThresholdedRandomCutForestMapper.java:38) ~[randomcutforest-parkservices-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.IStateMapper.toModel(IStateMapper.java:24) ~[randomcutforest-core-2.0.1.jar:?]
    at org.opensearch.ad.ml.CheckpointDao.toTrcf(CheckpointDao.java:569) [main/:?]
    at org.opensearch.ad.ml.CheckpointDaoTests.testToRCF(CheckpointDaoTests.java:1010) [test/:?]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
    at java.lang.reflect.Method.invoke(Method.java:564) ~[?:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner.invoke(RandomizedRunner.java:1750) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$8.evaluate(RandomizedRunner.java:938) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$9.evaluate(RandomizedRunner.java:974) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$10.evaluate(RandomizedRunner.java:988) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at org.junit.rules.RunRules.evaluate(RunRules.java:20) [junit-4.13.2.jar:4.13.2]
    at org.apache.lucene.util.TestRuleSetupTeardownChained$1.evaluate(TestRuleSetupTeardownChained.java:49) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:45) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleThreadAndTestName$1.evaluate(TestRuleThreadAndTestName.java:48) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:64) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:47) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.junit.rules.RunRules.evaluate(RunRules.java:20) [junit-4.13.2.jar:4.13.2]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:368) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl.forkTimeoutingTask(ThreadLeakControl.java:817) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl$3.evaluate(ThreadLeakControl.java:468) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner.runSingleTest(RandomizedRunner.java:947) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$5.evaluate(RandomizedRunner.java:832) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$6.evaluate(RandomizedRunner.java:883) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$7.evaluate(RandomizedRunner.java:894) [randomizedtesting-runner-2.7.1.jar:?]
    at org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:45) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at org.apache.lucene.util.TestRuleStoreClassName$1.evaluate(TestRuleStoreClassName.java:41) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at org.apache.lucene.util.TestRuleAssertionsRequired$1.evaluate(TestRuleAssertionsRequired.java:53) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:47) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:64) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleIgnoreTestSuites$1.evaluate(TestRuleIgnoreTestSuites.java:54) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.junit.rules.RunRules.evaluate(RunRules.java:20) [junit-4.13.2.jar:4.13.2]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:368) [randomizedtesting-runner-2.7.1.jar:?]
    at java.lang.Thread.run(Thread.java:832) [?:?]

https://github.com/aws/random-cut-forest-by-aws/commit/f21951b453c9978532ecb20408a6b3f1fb3289df PR #285

Doesn't work

[2022-03-25T23:16:10,291][ERROR][o.o.a.m.CheckpointDao    ] [testToRCF] Failed to deserialize TRCF model
java.lang.NullPointerException: null
    at com.amazon.randomcutforest.tree.CompactRandomCutTreeFloat.getMutableLeafBoxFromLeafNode(CompactRandomCutTreeFloat.java:57) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.CompactRandomCutTreeFloat.getMutableLeafBoxFromLeafNode(CompactRandomCutTreeFloat.java:28) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.AbstractCompactRandomCutTree.constructBoxInPlace(AbstractCompactRandomCutTree.java:282) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.AbstractCompactRandomCutTree.constructBoxInPlace(AbstractCompactRandomCutTree.java:291) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.AbstractCompactRandomCutTree.constructBoxInPlace(AbstractCompactRandomCutTree.java:48) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.AbstractRandomCutTree.getBoundingBox(AbstractRandomCutTree.java:175) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.AbstractRandomCutTree.addPoint(AbstractRandomCutTree.java:517) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.lambda$singlePrecisionForest$2(RandomCutForestMapper.java:379) ~[randomcutforest-core-2.0.1.jar:?]
    at java.util.ArrayList.forEach(ArrayList.java:1511) ~[?:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.singlePrecisionForest(RandomCutForestMapper.java:379) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.toModel(RandomCutForestMapper.java:275) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.toModel(RandomCutForestMapper.java:62) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.IContextualStateMapper.toModel(IContextualStateMapper.java:24) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.toModel(RandomCutForestMapper.java:338) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.parkservices.state.ThresholdedRandomCutForestMapper.toModel(ThresholdedRandomCutForestMapper.java:50) ~[randomcutforest-parkservices-2.0.1.jar:?]
    at com.amazon.randomcutforest.parkservices.state.ThresholdedRandomCutForestMapper.toModel(ThresholdedRandomCutForestMapper.java:38) ~[randomcutforest-parkservices-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.IStateMapper.toModel(IStateMapper.java:24) ~[randomcutforest-core-2.0.1.jar:?]
    at org.opensearch.ad.ml.CheckpointDao.toTrcf(CheckpointDao.java:569) [main/:?]
    at org.opensearch.ad.ml.CheckpointDaoTests.testToRCF(CheckpointDaoTests.java:1010) [test/:?]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
    at java.lang.reflect.Method.invoke(Method.java:564) ~[?:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner.invoke(RandomizedRunner.java:1750) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$8.evaluate(RandomizedRunner.java:938) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$9.evaluate(RandomizedRunner.java:974) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$10.evaluate(RandomizedRunner.java:988) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at org.junit.rules.RunRules.evaluate(RunRules.java:20) [junit-4.13.2.jar:4.13.2]
    at org.apache.lucene.util.TestRuleSetupTeardownChained$1.evaluate(TestRuleSetupTeardownChained.java:49) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:45) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleThreadAndTestName$1.evaluate(TestRuleThreadAndTestName.java:48) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:64) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:47) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.junit.rules.RunRules.evaluate(RunRules.java:20) [junit-4.13.2.jar:4.13.2]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:368) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl.forkTimeoutingTask(ThreadLeakControl.java:817) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl$3.evaluate(ThreadLeakControl.java:468) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner.runSingleTest(RandomizedRunner.java:947) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$5.evaluate(RandomizedRunner.java:832) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$6.evaluate(RandomizedRunner.java:883) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$7.evaluate(RandomizedRunner.java:894) [randomizedtesting-runner-2.7.1.jar:?]
    at org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:45) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at org.apache.lucene.util.TestRuleStoreClassName$1.evaluate(TestRuleStoreClassName.java:41) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at org.apache.lucene.util.TestRuleAssertionsRequired$1.evaluate(TestRuleAssertionsRequired.java:53) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:47) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:64) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleIgnoreTestSuites$1.evaluate(TestRuleIgnoreTestSuites.java:54) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.junit.rules.RunRules.evaluate(RunRules.java:20) [junit-4.13.2.jar:4.13.2]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:368) [randomizedtesting-runner-2.7.1.jar:?]
    at java.lang.Thread.run(Thread.java:832) [?:?]

https://github.com/aws/random-cut-forest-by-aws/commit/8c8a522626c7b73d51a556a1387fa5be594cbdf7 PR #286

Doesn't work

[2022-03-25T15:48:35,840][ERROR][o.o.a.m.CheckpointDao    ] [testToRCF] Failed to deserialize TRCF model
java.lang.NullPointerException: null
    at com.amazon.randomcutforest.tree.CompactRandomCutTreeFloat.getMutableLeafBoxFromLeafNode(CompactRandomCutTreeFloat.java:57) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.CompactRandomCutTreeFloat.getMutableLeafBoxFromLeafNode(CompactRandomCutTreeFloat.java:28) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.AbstractCompactRandomCutTree.constructBoxInPlace(AbstractCompactRandomCutTree.java:282) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.AbstractCompactRandomCutTree.constructBoxInPlace(AbstractCompactRandomCutTree.java:291) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.AbstractCompactRandomCutTree.constructBoxInPlace(AbstractCompactRandomCutTree.java:48) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.AbstractRandomCutTree.getBoundingBox(AbstractRandomCutTree.java:175) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.AbstractRandomCutTree.addPoint(AbstractRandomCutTree.java:517) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.lambda$singlePrecisionForest$2(RandomCutForestMapper.java:379) ~[randomcutforest-core-2.0.1.jar:?]
    at java.util.ArrayList.forEach(ArrayList.java:1511) ~[?:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.singlePrecisionForest(RandomCutForestMapper.java:379) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.toModel(RandomCutForestMapper.java:275) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.toModel(RandomCutForestMapper.java:62) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.IContextualStateMapper.toModel(IContextualStateMapper.java:24) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.toModel(RandomCutForestMapper.java:338) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.parkservices.state.ThresholdedRandomCutForestMapper.toModel(ThresholdedRandomCutForestMapper.java:50) ~[randomcutforest-parkservices-2.0.1.jar:?]
    at com.amazon.randomcutforest.parkservices.state.ThresholdedRandomCutForestMapper.toModel(ThresholdedRandomCutForestMapper.java:38) ~[randomcutforest-parkservices-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.IStateMapper.toModel(IStateMapper.java:24) ~[randomcutforest-core-2.0.1.jar:?]
    at org.opensearch.ad.ml.CheckpointDao.toTrcf(CheckpointDao.java:569) [main/:?]
    at org.opensearch.ad.ml.CheckpointDaoTests.testToRCF(CheckpointDaoTests.java:1010) [test/:?]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
    at java.lang.reflect.Method.invoke(Method.java:564) ~[?:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner.invoke(RandomizedRunner.java:1750) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$8.evaluate(RandomizedRunner.java:938) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$9.evaluate(RandomizedRunner.java:974) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$10.evaluate(RandomizedRunner.java:988) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at org.junit.rules.RunRules.evaluate(RunRules.java:20) [junit-4.13.2.jar:4.13.2]
    at org.apache.lucene.util.TestRuleSetupTeardownChained$1.evaluate(TestRuleSetupTeardownChained.java:49) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:45) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleThreadAndTestName$1.evaluate(TestRuleThreadAndTestName.java:48) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:64) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:47) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.junit.rules.RunRules.evaluate(RunRules.java:20) [junit-4.13.2.jar:4.13.2]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:368) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl.forkTimeoutingTask(ThreadLeakControl.java:817) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl$3.evaluate(ThreadLeakControl.java:468) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner.runSingleTest(RandomizedRunner.java:947) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$5.evaluate(RandomizedRunner.java:832) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$6.evaluate(RandomizedRunner.java:883) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$7.evaluate(RandomizedRunner.java:894) [randomizedtesting-runner-2.7.1.jar:?]
    at org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:45) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at org.apache.lucene.util.TestRuleStoreClassName$1.evaluate(TestRuleStoreClassName.java:41) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at org.apache.lucene.util.TestRuleAssertionsRequired$1.evaluate(TestRuleAssertionsRequired.java:53) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:47) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:64) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleIgnoreTestSuites$1.evaluate(TestRuleIgnoreTestSuites.java:54) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.junit.rules.RunRules.evaluate(RunRules.java:20) [junit-4.13.2.jar:4.13.2]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:368) [randomizedtesting-runner-2.7.1.jar:?]
    at java.lang.Thread.run(Thread.java:832) [?:?]

https://github.com/aws/random-cut-forest-by-aws/commit/298bd1155f72aa0a14b1652e840ef8aef500ddab PR #288

Doesn't work

[2022-03-25T18:49:54,023][ERROR][o.o.a.m.CheckpointDao    ] [testToRCF] Failed to deserialize TRCF model
java.lang.NullPointerException: null
    at com.amazon.randomcutforest.tree.CompactRandomCutTreeFloat.getMutableLeafBoxFromLeafNode(CompactRandomCutTreeFloat.java:57) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.CompactRandomCutTreeFloat.getMutableLeafBoxFromLeafNode(CompactRandomCutTreeFloat.java:28) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.AbstractCompactRandomCutTree.constructBoxInPlace(AbstractCompactRandomCutTree.java:282) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.AbstractCompactRandomCutTree.constructBoxInPlace(AbstractCompactRandomCutTree.java:291) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.AbstractCompactRandomCutTree.constructBoxInPlace(AbstractCompactRandomCutTree.java:48) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.AbstractRandomCutTree.getBoundingBox(AbstractRandomCutTree.java:175) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.AbstractRandomCutTree.addPoint(AbstractRandomCutTree.java:517) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.lambda$singlePrecisionForest$2(RandomCutForestMapper.java:379) ~[randomcutforest-core-2.0.1.jar:?]
    at java.util.ArrayList.forEach(ArrayList.java:1511) ~[?:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.singlePrecisionForest(RandomCutForestMapper.java:379) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.toModel(RandomCutForestMapper.java:275) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.toModel(RandomCutForestMapper.java:62) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.IContextualStateMapper.toModel(IContextualStateMapper.java:24) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.toModel(RandomCutForestMapper.java:338) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.parkservices.state.ThresholdedRandomCutForestMapper.toModel(ThresholdedRandomCutForestMapper.java:50) ~[randomcutforest-parkservices-2.0.1.jar:?]
    at com.amazon.randomcutforest.parkservices.state.ThresholdedRandomCutForestMapper.toModel(ThresholdedRandomCutForestMapper.java:38) ~[randomcutforest-parkservices-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.IStateMapper.toModel(IStateMapper.java:24) ~[randomcutforest-core-2.0.1.jar:?]
    at org.opensearch.ad.ml.CheckpointDao.toTrcf(CheckpointDao.java:569) [main/:?]
    at org.opensearch.ad.ml.CheckpointDaoTests.testToRCF(CheckpointDaoTests.java:1010) [test/:?]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
    at java.lang.reflect.Method.invoke(Method.java:564) ~[?:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner.invoke(RandomizedRunner.java:1750) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$8.evaluate(RandomizedRunner.java:938) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$9.evaluate(RandomizedRunner.java:974) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$10.evaluate(RandomizedRunner.java:988) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at org.junit.rules.RunRules.evaluate(RunRules.java:20) [junit-4.13.2.jar:4.13.2]
    at org.apache.lucene.util.TestRuleSetupTeardownChained$1.evaluate(TestRuleSetupTeardownChained.java:49) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:45) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleThreadAndTestName$1.evaluate(TestRuleThreadAndTestName.java:48) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:64) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:47) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.junit.rules.RunRules.evaluate(RunRules.java:20) [junit-4.13.2.jar:4.13.2]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:368) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl.forkTimeoutingTask(ThreadLeakControl.java:817) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl$3.evaluate(ThreadLeakControl.java:468) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner.runSingleTest(RandomizedRunner.java:947) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$5.evaluate(RandomizedRunner.java:832) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$6.evaluate(RandomizedRunner.java:883) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$7.evaluate(RandomizedRunner.java:894) [randomizedtesting-runner-2.7.1.jar:?]
    at org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:45) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at org.apache.lucene.util.TestRuleStoreClassName$1.evaluate(TestRuleStoreClassName.java:41) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at org.apache.lucene.util.TestRuleAssertionsRequired$1.evaluate(TestRuleAssertionsRequired.java:53) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:47) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:64) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleIgnoreTestSuites$1.evaluate(TestRuleIgnoreTestSuites.java:54) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.junit.rules.RunRules.evaluate(RunRules.java:20) [junit-4.13.2.jar:4.13.2]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:368) [randomizedtesting-runner-2.7.1.jar:?]
    at java.lang.Thread.run(Thread.java:832) [?:?]

https://github.com/aws/random-cut-forest-by-aws/commit/8f4bd11fca2e37f9ec94a3125c8fd492ed5bb7e1 PR #287

Doesn't work

[2022-03-26T04:21:32,708][ERROR][o.o.a.m.CheckpointDao    ] [testToRCF] Failed to deserialize TRCF model
java.lang.NullPointerException: null
    at com.amazon.randomcutforest.tree.CompactRandomCutTreeFloat.getMutableLeafBoxFromLeafNode(CompactRandomCutTreeFloat.java:57) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.CompactRandomCutTreeFloat.getMutableLeafBoxFromLeafNode(CompactRandomCutTreeFloat.java:28) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.AbstractCompactRandomCutTree.constructBoxInPlace(AbstractCompactRandomCutTree.java:282) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.AbstractCompactRandomCutTree.constructBoxInPlace(AbstractCompactRandomCutTree.java:291) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.AbstractCompactRandomCutTree.constructBoxInPlace(AbstractCompactRandomCutTree.java:48) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.AbstractRandomCutTree.getBoundingBox(AbstractRandomCutTree.java:175) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.AbstractRandomCutTree.addPoint(AbstractRandomCutTree.java:517) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.lambda$singlePrecisionForest$2(RandomCutForestMapper.java:379) ~[randomcutforest-core-2.0.1.jar:?]
    at java.util.ArrayList.forEach(ArrayList.java:1511) ~[?:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.singlePrecisionForest(RandomCutForestMapper.java:379) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.toModel(RandomCutForestMapper.java:275) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.toModel(RandomCutForestMapper.java:62) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.IContextualStateMapper.toModel(IContextualStateMapper.java:24) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.toModel(RandomCutForestMapper.java:338) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.parkservices.state.ThresholdedRandomCutForestMapper.toModel(ThresholdedRandomCutForestMapper.java:50) ~[randomcutforest-parkservices-2.0.1.jar:?]
    at com.amazon.randomcutforest.parkservices.state.ThresholdedRandomCutForestMapper.toModel(ThresholdedRandomCutForestMapper.java:38) ~[randomcutforest-parkservices-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.IStateMapper.toModel(IStateMapper.java:24) ~[randomcutforest-core-2.0.1.jar:?]
    at org.opensearch.ad.ml.CheckpointDao.toTrcf(CheckpointDao.java:569) [main/:?]
    at org.opensearch.ad.ml.CheckpointDaoTests.testToRCF(CheckpointDaoTests.java:1010) [test/:?]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
    at java.lang.reflect.Method.invoke(Method.java:564) ~[?:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner.invoke(RandomizedRunner.java:1750) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$8.evaluate(RandomizedRunner.java:938) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$9.evaluate(RandomizedRunner.java:974) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$10.evaluate(RandomizedRunner.java:988) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at org.junit.rules.RunRules.evaluate(RunRules.java:20) [junit-4.13.2.jar:4.13.2]
    at org.apache.lucene.util.TestRuleSetupTeardownChained$1.evaluate(TestRuleSetupTeardownChained.java:49) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:45) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleThreadAndTestName$1.evaluate(TestRuleThreadAndTestName.java:48) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:64) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:47) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.junit.rules.RunRules.evaluate(RunRules.java:20) [junit-4.13.2.jar:4.13.2]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:368) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl.forkTimeoutingTask(ThreadLeakControl.java:817) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl$3.evaluate(ThreadLeakControl.java:468) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner.runSingleTest(RandomizedRunner.java:947) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$5.evaluate(RandomizedRunner.java:832) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$6.evaluate(RandomizedRunner.java:883) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$7.evaluate(RandomizedRunner.java:894) [randomizedtesting-runner-2.7.1.jar:?]
    at org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:45) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at org.apache.lucene.util.TestRuleStoreClassName$1.evaluate(TestRuleStoreClassName.java:41) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at org.apache.lucene.util.TestRuleAssertionsRequired$1.evaluate(TestRuleAssertionsRequired.java:53) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:47) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:64) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleIgnoreTestSuites$1.evaluate(TestRuleIgnoreTestSuites.java:54) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.junit.rules.RunRules.evaluate(RunRules.java:20) [junit-4.13.2.jar:4.13.2]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:368) [randomizedtesting-runner-2.7.1.jar:?]
    at java.lang.Thread.run(Thread.java:832) [?:?]

https://github.com/aws/random-cut-forest-by-aws/commit/c7a3677a5b68ca42f81d2ad560e93e07fb2ec764 PR #289

Doesn't work

[2022-03-25T10:53:00,176][ERROR][o.o.a.m.CheckpointDao    ] [testToRCF] Failed to deserialize TRCF model
java.lang.NullPointerException: null
    at com.amazon.randomcutforest.tree.CompactRandomCutTreeFloat.getMutableLeafBoxFromLeafNode(CompactRandomCutTreeFloat.java:57) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.CompactRandomCutTreeFloat.getMutableLeafBoxFromLeafNode(CompactRandomCutTreeFloat.java:28) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.AbstractCompactRandomCutTree.constructBoxInPlace(AbstractCompactRandomCutTree.java:282) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.AbstractCompactRandomCutTree.constructBoxInPlace(AbstractCompactRandomCutTree.java:291) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.AbstractCompactRandomCutTree.constructBoxInPlace(AbstractCompactRandomCutTree.java:48) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.AbstractRandomCutTree.getBoundingBox(AbstractRandomCutTree.java:175) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.AbstractRandomCutTree.addPoint(AbstractRandomCutTree.java:517) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.lambda$singlePrecisionForest$2(RandomCutForestMapper.java:327) ~[randomcutforest-core-2.0.1.jar:?]
    at java.util.ArrayList.forEach(ArrayList.java:1511) ~[?:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.singlePrecisionForest(RandomCutForestMapper.java:327) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.toModel(RandomCutForestMapper.java:254) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.toModel(RandomCutForestMapper.java:57) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.IContextualStateMapper.toModel(IContextualStateMapper.java:24) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.toModel(RandomCutForestMapper.java:286) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.parkservices.state.ThresholdedRandomCutForestMapper.toModel(ThresholdedRandomCutForestMapper.java:50) ~[randomcutforest-parkservices-2.0.1.jar:?]
    at com.amazon.randomcutforest.parkservices.state.ThresholdedRandomCutForestMapper.toModel(ThresholdedRandomCutForestMapper.java:38) ~[randomcutforest-parkservices-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.IStateMapper.toModel(IStateMapper.java:24) ~[randomcutforest-core-2.0.1.jar:?]
    at org.opensearch.ad.ml.CheckpointDao.toTrcf(CheckpointDao.java:569) [main/:?]
    at org.opensearch.ad.ml.CheckpointDaoTests.testToRCF(CheckpointDaoTests.java:1010) [test/:?]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
    at java.lang.reflect.Method.invoke(Method.java:564) ~[?:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner.invoke(RandomizedRunner.java:1750) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$8.evaluate(RandomizedRunner.java:938) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$9.evaluate(RandomizedRunner.java:974) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$10.evaluate(RandomizedRunner.java:988) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at org.junit.rules.RunRules.evaluate(RunRules.java:20) [junit-4.13.2.jar:4.13.2]
    at org.apache.lucene.util.TestRuleSetupTeardownChained$1.evaluate(TestRuleSetupTeardownChained.java:49) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:45) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleThreadAndTestName$1.evaluate(TestRuleThreadAndTestName.java:48) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:64) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:47) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.junit.rules.RunRules.evaluate(RunRules.java:20) [junit-4.13.2.jar:4.13.2]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:368) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl.forkTimeoutingTask(ThreadLeakControl.java:817) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl$3.evaluate(ThreadLeakControl.java:468) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner.runSingleTest(RandomizedRunner.java:947) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$5.evaluate(RandomizedRunner.java:832) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$6.evaluate(RandomizedRunner.java:883) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$7.evaluate(RandomizedRunner.java:894) [randomizedtesting-runner-2.7.1.jar:?]
    at org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:45) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at org.apache.lucene.util.TestRuleStoreClassName$1.evaluate(TestRuleStoreClassName.java:41) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at org.apache.lucene.util.TestRuleAssertionsRequired$1.evaluate(TestRuleAssertionsRequired.java:53) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:47) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:64) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleIgnoreTestSuites$1.evaluate(TestRuleIgnoreTestSuites.java:54) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.junit.rules.RunRules.evaluate(RunRules.java:20) [junit-4.13.2.jar:4.13.2]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:368) [randomizedtesting-runner-2.7.1.jar:?]
    at java.lang.Thread.run(Thread.java:832) [?:?]

https://github.com/aws/random-cut-forest-by-aws/commit/6b9d8ad6ede022b066b7fdea3324740b83ca826d PR #291

Doesn't work

[2022-03-25T23:34:32,293][ERROR][o.o.a.m.CheckpointDao    ] [testToRCF] Failed to deserialize TRCF model
java.lang.IllegalArgumentException:  incomplete state 255
    at com.amazon.randomcutforest.CommonUtils.checkArgument(CommonUtils.java:42) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.AbstractNodeStore.growNodeBox(AbstractNodeStore.java:317) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.AbstractNodeStore.growNodeBox(AbstractNodeStore.java:329) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.RandomCutTree.addPoint(RandomCutTree.java:254) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.RandomCutTree.addPoint(RandomCutTree.java:53) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.lambda$singlePrecisionForest$1(RandomCutForestMapper.java:339) ~[randomcutforest-core-2.0.1.jar:?]
    at java.util.ArrayList.forEach(ArrayList.java:1511) ~[?:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.singlePrecisionForest(RandomCutForestMapper.java:339) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.toModel(RandomCutForestMapper.java:231) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.toModel(RandomCutForestMapper.java:55) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.IContextualStateMapper.toModel(IContextualStateMapper.java:24) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.toModel(RandomCutForestMapper.java:299) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.parkservices.state.ThresholdedRandomCutForestMapper.toModel(ThresholdedRandomCutForestMapper.java:50) ~[randomcutforest-parkservices-2.0.1.jar:?]
    at com.amazon.randomcutforest.parkservices.state.ThresholdedRandomCutForestMapper.toModel(ThresholdedRandomCutForestMapper.java:38) ~[randomcutforest-parkservices-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.IStateMapper.toModel(IStateMapper.java:24) ~[randomcutforest-core-2.0.1.jar:?]
    at org.opensearch.ad.ml.CheckpointDao.toTrcf(CheckpointDao.java:569) [main/:?]
    at org.opensearch.ad.ml.CheckpointDaoTests.testToRCF(CheckpointDaoTests.java:1010) [test/:?]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
    at java.lang.reflect.Method.invoke(Method.java:564) ~[?:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner.invoke(RandomizedRunner.java:1750) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$8.evaluate(RandomizedRunner.java:938) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$9.evaluate(RandomizedRunner.java:974) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$10.evaluate(RandomizedRunner.java:988) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at org.junit.rules.RunRules.evaluate(RunRules.java:20) [junit-4.13.2.jar:4.13.2]
    at org.apache.lucene.util.TestRuleSetupTeardownChained$1.evaluate(TestRuleSetupTeardownChained.java:49) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:45) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleThreadAndTestName$1.evaluate(TestRuleThreadAndTestName.java:48) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:64) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:47) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.junit.rules.RunRules.evaluate(RunRules.java:20) [junit-4.13.2.jar:4.13.2]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:368) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl.forkTimeoutingTask(ThreadLeakControl.java:817) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl$3.evaluate(ThreadLeakControl.java:468) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner.runSingleTest(RandomizedRunner.java:947) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$5.evaluate(RandomizedRunner.java:832) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$6.evaluate(RandomizedRunner.java:883) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$7.evaluate(RandomizedRunner.java:894) [randomizedtesting-runner-2.7.1.jar:?]
    at org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:45) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at org.apache.lucene.util.TestRuleStoreClassName$1.evaluate(TestRuleStoreClassName.java:41) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at org.apache.lucene.util.TestRuleAssertionsRequired$1.evaluate(TestRuleAssertionsRequired.java:53) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:47) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:64) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleIgnoreTestSuites$1.evaluate(TestRuleIgnoreTestSuites.java:54) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.junit.rules.RunRules.evaluate(RunRules.java:20) [junit-4.13.2.jar:4.13.2]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:368) [randomizedtesting-runner-2.7.1.jar:?]
    at java.lang.Thread.run(Thread.java:832) [?:?]

https://github.com/aws/random-cut-forest-by-aws/commit/c76e6aa736f6a4e20808306e8889e2501905a1e1 PR #292

Doesn't work

[2022-03-25T12:06:58,942][ERROR][o.o.a.m.CheckpointDao    ] [testToRCF] Failed to deserialize TRCF model
java.lang.IllegalArgumentException:  incomplete state 255
    at com.amazon.randomcutforest.CommonUtils.checkArgument(CommonUtils.java:42) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.AbstractNodeStore.growNodeBox(AbstractNodeStore.java:316) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.AbstractNodeStore.growNodeBox(AbstractNodeStore.java:328) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.RandomCutTree.addPoint(RandomCutTree.java:254) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.RandomCutTree.addPoint(RandomCutTree.java:53) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.lambda$singlePrecisionForest$1(RandomCutForestMapper.java:339) ~[randomcutforest-core-2.0.1.jar:?]
    at java.util.ArrayList.forEach(ArrayList.java:1511) ~[?:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.singlePrecisionForest(RandomCutForestMapper.java:339) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.toModel(RandomCutForestMapper.java:231) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.toModel(RandomCutForestMapper.java:55) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.IContextualStateMapper.toModel(IContextualStateMapper.java:24) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.toModel(RandomCutForestMapper.java:299) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.parkservices.state.ThresholdedRandomCutForestMapper.toModel(ThresholdedRandomCutForestMapper.java:50) ~[randomcutforest-parkservices-2.0.1.jar:?]
    at com.amazon.randomcutforest.parkservices.state.ThresholdedRandomCutForestMapper.toModel(ThresholdedRandomCutForestMapper.java:38) ~[randomcutforest-parkservices-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.IStateMapper.toModel(IStateMapper.java:24) ~[randomcutforest-core-2.0.1.jar:?]
    at org.opensearch.ad.ml.CheckpointDao.toTrcf(CheckpointDao.java:569) [main/:?]
    at org.opensearch.ad.ml.CheckpointDaoTests.testToRCF(CheckpointDaoTests.java:1010) [test/:?]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
    at java.lang.reflect.Method.invoke(Method.java:564) ~[?:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner.invoke(RandomizedRunner.java:1750) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$8.evaluate(RandomizedRunner.java:938) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$9.evaluate(RandomizedRunner.java:974) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$10.evaluate(RandomizedRunner.java:988) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at org.junit.rules.RunRules.evaluate(RunRules.java:20) [junit-4.13.2.jar:4.13.2]
    at org.apache.lucene.util.TestRuleSetupTeardownChained$1.evaluate(TestRuleSetupTeardownChained.java:49) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:45) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleThreadAndTestName$1.evaluate(TestRuleThreadAndTestName.java:48) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:64) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:47) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.junit.rules.RunRules.evaluate(RunRules.java:20) [junit-4.13.2.jar:4.13.2]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:368) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl.forkTimeoutingTask(ThreadLeakControl.java:817) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl$3.evaluate(ThreadLeakControl.java:468) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner.runSingleTest(RandomizedRunner.java:947) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$5.evaluate(RandomizedRunner.java:832) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$6.evaluate(RandomizedRunner.java:883) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$7.evaluate(RandomizedRunner.java:894) [randomizedtesting-runner-2.7.1.jar:?]
    at org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:45) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at org.apache.lucene.util.TestRuleStoreClassName$1.evaluate(TestRuleStoreClassName.java:41) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at org.apache.lucene.util.TestRuleAssertionsRequired$1.evaluate(TestRuleAssertionsRequired.java:53) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:47) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:64) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleIgnoreTestSuites$1.evaluate(TestRuleIgnoreTestSuites.java:54) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.junit.rules.RunRules.evaluate(RunRules.java:20) [junit-4.13.2.jar:4.13.2]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:368) [randomizedtesting-runner-2.7.1.jar:?]
    at java.lang.Thread.run(Thread.java:832) [?:?]

https://github.com/aws/random-cut-forest-by-aws/commit/2fedfeac8c325b7490594462aa6979659817f9f4 PR #293

Doesn't work

[2022-03-25T21:07:47,315][ERROR][o.o.a.m.CheckpointDao    ] [testToRCF] Failed to deserialize TRCF model
java.lang.IllegalArgumentException:  incomplete state 255
    at com.amazon.randomcutforest.CommonUtils.checkArgument(CommonUtils.java:42) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.AbstractNodeStore.growNodeBox(AbstractNodeStore.java:315) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.AbstractNodeStore.growNodeBox(AbstractNodeStore.java:327) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.RandomCutTree.addPoint(RandomCutTree.java:252) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.RandomCutTree.addPoint(RandomCutTree.java:51) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.lambda$singlePrecisionForest$1(RandomCutForestMapper.java:339) ~[randomcutforest-core-2.0.1.jar:?]
    at java.util.ArrayList.forEach(ArrayList.java:1511) ~[?:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.singlePrecisionForest(RandomCutForestMapper.java:339) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.toModel(RandomCutForestMapper.java:231) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.toModel(RandomCutForestMapper.java:55) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.IContextualStateMapper.toModel(IContextualStateMapper.java:24) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.toModel(RandomCutForestMapper.java:299) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.parkservices.state.ThresholdedRandomCutForestMapper.toModel(ThresholdedRandomCutForestMapper.java:50) ~[randomcutforest-parkservices-2.0.1.jar:?]
    at com.amazon.randomcutforest.parkservices.state.ThresholdedRandomCutForestMapper.toModel(ThresholdedRandomCutForestMapper.java:38) ~[randomcutforest-parkservices-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.IStateMapper.toModel(IStateMapper.java:24) ~[randomcutforest-core-2.0.1.jar:?]
    at org.opensearch.ad.ml.CheckpointDao.toTrcf(CheckpointDao.java:569) [main/:?]
    at org.opensearch.ad.ml.CheckpointDaoTests.testToRCF(CheckpointDaoTests.java:1010) [test/:?]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
    at java.lang.reflect.Method.invoke(Method.java:564) ~[?:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner.invoke(RandomizedRunner.java:1750) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$8.evaluate(RandomizedRunner.java:938) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$9.evaluate(RandomizedRunner.java:974) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$10.evaluate(RandomizedRunner.java:988) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at org.junit.rules.RunRules.evaluate(RunRules.java:20) [junit-4.13.2.jar:4.13.2]
    at org.apache.lucene.util.TestRuleSetupTeardownChained$1.evaluate(TestRuleSetupTeardownChained.java:49) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:45) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleThreadAndTestName$1.evaluate(TestRuleThreadAndTestName.java:48) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:64) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:47) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.junit.rules.RunRules.evaluate(RunRules.java:20) [junit-4.13.2.jar:4.13.2]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:368) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl.forkTimeoutingTask(ThreadLeakControl.java:817) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl$3.evaluate(ThreadLeakControl.java:468) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner.runSingleTest(RandomizedRunner.java:947) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$5.evaluate(RandomizedRunner.java:832) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$6.evaluate(RandomizedRunner.java:883) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$7.evaluate(RandomizedRunner.java:894) [randomizedtesting-runner-2.7.1.jar:?]
    at org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:45) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at org.apache.lucene.util.TestRuleStoreClassName$1.evaluate(TestRuleStoreClassName.java:41) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at org.apache.lucene.util.TestRuleAssertionsRequired$1.evaluate(TestRuleAssertionsRequired.java:53) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:47) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:64) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleIgnoreTestSuites$1.evaluate(TestRuleIgnoreTestSuites.java:54) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.junit.rules.RunRules.evaluate(RunRules.java:20) [junit-4.13.2.jar:4.13.2]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:368) [randomizedtesting-runner-2.7.1.jar:?]
    at java.lang.Thread.run(Thread.java:832) [?:?]

https://github.com/aws/random-cut-forest-by-aws/commit/4b1d376290a90147f6d004bfe23ac95fa2dcbae1 PR #298

Doesn't work

[2022-03-25T16:08:46,926][ERROR][o.o.a.m.CheckpointDao    ] [testToRCF] Failed to deserialize TRCF model
java.lang.IllegalArgumentException:  incomplete state 255
    at com.amazon.randomcutforest.CommonUtils.checkArgument(CommonUtils.java:42) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.AbstractNodeStore.growNodeBox(AbstractNodeStore.java:315) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.AbstractNodeStore.growNodeBox(AbstractNodeStore.java:327) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.RandomCutTree.addPoint(RandomCutTree.java:252) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.RandomCutTree.addPoint(RandomCutTree.java:51) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.lambda$singlePrecisionForest$1(RandomCutForestMapper.java:339) ~[randomcutforest-core-2.0.1.jar:?]
    at java.util.ArrayList.forEach(ArrayList.java:1511) ~[?:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.singlePrecisionForest(RandomCutForestMapper.java:339) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.toModel(RandomCutForestMapper.java:231) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.toModel(RandomCutForestMapper.java:55) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.IContextualStateMapper.toModel(IContextualStateMapper.java:24) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.toModel(RandomCutForestMapper.java:299) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.parkservices.state.ThresholdedRandomCutForestMapper.toModel(ThresholdedRandomCutForestMapper.java:50) ~[randomcutforest-parkservices-2.0.1.jar:?]
    at com.amazon.randomcutforest.parkservices.state.ThresholdedRandomCutForestMapper.toModel(ThresholdedRandomCutForestMapper.java:38) ~[randomcutforest-parkservices-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.IStateMapper.toModel(IStateMapper.java:24) ~[randomcutforest-core-2.0.1.jar:?]
    at org.opensearch.ad.ml.CheckpointDao.toTrcf(CheckpointDao.java:569) [main/:?]
    at org.opensearch.ad.ml.CheckpointDaoTests.testToRCF(CheckpointDaoTests.java:1010) [test/:?]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
    at java.lang.reflect.Method.invoke(Method.java:564) ~[?:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner.invoke(RandomizedRunner.java:1750) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$8.evaluate(RandomizedRunner.java:938) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$9.evaluate(RandomizedRunner.java:974) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$10.evaluate(RandomizedRunner.java:988) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at org.junit.rules.RunRules.evaluate(RunRules.java:20) [junit-4.13.2.jar:4.13.2]
    at org.apache.lucene.util.TestRuleSetupTeardownChained$1.evaluate(TestRuleSetupTeardownChained.java:49) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:45) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleThreadAndTestName$1.evaluate(TestRuleThreadAndTestName.java:48) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:64) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:47) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.junit.rules.RunRules.evaluate(RunRules.java:20) [junit-4.13.2.jar:4.13.2]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:368) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl.forkTimeoutingTask(ThreadLeakControl.java:817) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl$3.evaluate(ThreadLeakControl.java:468) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner.runSingleTest(RandomizedRunner.java:947) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$5.evaluate(RandomizedRunner.java:832) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$6.evaluate(RandomizedRunner.java:883) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$7.evaluate(RandomizedRunner.java:894) [randomizedtesting-runner-2.7.1.jar:?]
    at org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:45) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at org.apache.lucene.util.TestRuleStoreClassName$1.evaluate(TestRuleStoreClassName.java:41) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at org.apache.lucene.util.TestRuleAssertionsRequired$1.evaluate(TestRuleAssertionsRequired.java:53) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:47) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:64) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleIgnoreTestSuites$1.evaluate(TestRuleIgnoreTestSuites.java:54) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.junit.rules.RunRules.evaluate(RunRules.java:20) [junit-4.13.2.jar:4.13.2]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:368) [randomizedtesting-runner-2.7.1.jar:?]
    at java.lang.Thread.run(Thread.java:832) [?:?]

https://github.com/aws/random-cut-forest-by-aws/commit/e7496ef72ab33f74befc73da77be86fa75bf61f9 PR #294

Doesn't work

[2022-03-26T03:22:36,052][ERROR][o.o.a.m.CheckpointDao    ] [testToRCF] Failed to deserialize TRCF model
java.lang.IllegalArgumentException:  incomplete state 255
    at com.amazon.randomcutforest.CommonUtils.checkArgument(CommonUtils.java:42) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.AbstractNodeStore.growNodeBox(AbstractNodeStore.java:315) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.AbstractNodeStore.growNodeBox(AbstractNodeStore.java:327) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.RandomCutTree.addPoint(RandomCutTree.java:252) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.tree.RandomCutTree.addPoint(RandomCutTree.java:51) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.lambda$singlePrecisionForest$1(RandomCutForestMapper.java:339) ~[randomcutforest-core-2.0.1.jar:?]
    at java.util.ArrayList.forEach(ArrayList.java:1511) ~[?:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.singlePrecisionForest(RandomCutForestMapper.java:339) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.toModel(RandomCutForestMapper.java:231) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.toModel(RandomCutForestMapper.java:55) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.IContextualStateMapper.toModel(IContextualStateMapper.java:24) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.RandomCutForestMapper.toModel(RandomCutForestMapper.java:299) ~[randomcutforest-core-2.0.1.jar:?]
    at com.amazon.randomcutforest.parkservices.state.ThresholdedRandomCutForestMapper.toModel(ThresholdedRandomCutForestMapper.java:50) ~[randomcutforest-parkservices-2.0.1.jar:?]
    at com.amazon.randomcutforest.parkservices.state.ThresholdedRandomCutForestMapper.toModel(ThresholdedRandomCutForestMapper.java:38) ~[randomcutforest-parkservices-2.0.1.jar:?]
    at com.amazon.randomcutforest.state.IStateMapper.toModel(IStateMapper.java:24) ~[randomcutforest-core-2.0.1.jar:?]
    at org.opensearch.ad.ml.CheckpointDao.toTrcf(CheckpointDao.java:569) [main/:?]
    at org.opensearch.ad.ml.CheckpointDaoTests.testToRCF(CheckpointDaoTests.java:1010) [test/:?]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
    at java.lang.reflect.Method.invoke(Method.java:564) ~[?:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner.invoke(RandomizedRunner.java:1750) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$8.evaluate(RandomizedRunner.java:938) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$9.evaluate(RandomizedRunner.java:974) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$10.evaluate(RandomizedRunner.java:988) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at org.junit.rules.RunRules.evaluate(RunRules.java:20) [junit-4.13.2.jar:4.13.2]
    at org.apache.lucene.util.TestRuleSetupTeardownChained$1.evaluate(TestRuleSetupTeardownChained.java:49) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:45) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleThreadAndTestName$1.evaluate(TestRuleThreadAndTestName.java:48) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:64) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:47) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.junit.rules.RunRules.evaluate(RunRules.java:20) [junit-4.13.2.jar:4.13.2]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:368) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl.forkTimeoutingTask(ThreadLeakControl.java:817) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl$3.evaluate(ThreadLeakControl.java:468) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner.runSingleTest(RandomizedRunner.java:947) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$5.evaluate(RandomizedRunner.java:832) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$6.evaluate(RandomizedRunner.java:883) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.RandomizedRunner$7.evaluate(RandomizedRunner.java:894) [randomizedtesting-runner-2.7.1.jar:?]
    at org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:45) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at org.apache.lucene.util.TestRuleStoreClassName$1.evaluate(TestRuleStoreClassName.java:41) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at org.apache.lucene.util.TestRuleAssertionsRequired$1.evaluate(TestRuleAssertionsRequired.java:53) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:47) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:64) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.apache.lucene.util.TestRuleIgnoreTestSuites$1.evaluate(TestRuleIgnoreTestSuites.java:54) [lucene-test-framework-8.10.1.jar:8.10.1 2f24e6a49d48a032df1f12e146612f59141727a9 - mayyasharipova - 2021-10-12 15:13:08]
    at org.junit.rules.RunRules.evaluate(RunRules.java:20) [junit-4.13.2.jar:4.13.2]
    at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) [randomizedtesting-runner-2.7.1.jar:?]
    at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:368) [randomizedtesting-runner-2.7.1.jar:?]
    at java.lang.Thread.run(Thread.java:832) [?:?]
ylwu-amzn commented 2 years ago

So after PR #284 , RCF code can't deserialize 1.3.0 AD RCF model any more. That seems different with the conclusion from yesterday's test, @amitgalitz, can you verify if anything wrong in yesterday's testing?

To test the impact of my PR #298 , I applied it to commit https://github.com/aws/random-cut-forest-by-aws/commit/3bb8fcee46507ba83e6ce10432df45254654c363 (PR #283) which used by AD 1.3.0, check my branch https://github.com/ylwu-amzn/random-cut-forest-by-aws/tree/test_ad_protostuff, commit https://github.com/ylwu-amzn/random-cut-forest-by-aws/commit/bc7944eca8d24f008352c57dbe199e47e52958cb. Test locally, it can parse AD 1.3.0 model successfully.

Reproduce by running this unit test: CheckpointDaoTests#testDeserializeRCFModel

ylwu-amzn commented 2 years ago

Check example models here https://github.com/ylwu-amzn/anomaly-detection-2/blob/test_deserialize_ad_model/src/test/resources/org/opensearch/ad/ml/, I'm using 1_3_0_rcf_model.json to test

ylwu-amzn commented 2 years ago

Suggest to add BWC test for old models https://github.com/aws/random-cut-forest-by-aws/issues/307

sudiptoguha commented 2 years ago

The specific model seems to have no field "CompactSamplerState" and has "components":[{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},

Did these 1.3 models get produced by the 2.0.1 RCF library or are they holdover/tests from somewhere else?

ylwu-amzn commented 2 years ago

Related PR : https://github.com/aws/random-cut-forest-by-aws/pull/309