OmniLayer / OmniJ

OmniLayer for Java, JVM, and Android
Apache License 2.0
133 stars 89 forks source link

Intermittent failure in SendToOwnersTestPlanSpec.groovy #229

Open msgilligan opened 1 year ago

msgilligan commented 1 year ago

There is an intermittent failure in SendToOwnersTestPlanSpec.groovy that looks like this:

foundation.omni.test.rpc.sto.SendToOwnersTestPlanRawSpec.Five equal owners (amount enough only for first four owners, amount NOT divisible by number of recipients) FAILED
    Condition not satisfied:

    balance.balance.numberValue() == expectedAvailable
    |       |       |             |  |
    |       |       1.00001584    |  1.0
    |       1.00001584            false
    [balance: 1.00001584, reserved: 1.0, frozen: 0.0]
        at app//foundation.omni.test.rpc.sto.SendToOwnersTestPlanSpec.assertBalance(SendToOwnersTestPlanSpec.groovy:447)
        at foundation.omni.test.rpc.sto.SendToOwnersTestPlanSpec.#description(SendToOwnersTestPlanSpec.groovy:72)

This is happening on the PR #228 branch, but I am not certain it is related to the changes in that PR.

msgilligan commented 1 year ago

Another failure:

foundation.omni.test.rpc.sto.SendToOwnersTestPlanSpec.Sender owns all the coins of the STO Property after issuance (tx50, tx55) but before any distributions/sends FAILED
    Condition not satisfied:

    balance.balance.numberValue() == expectedAvailable
    |       |       |             |  |
    |       |       1.00000767    |  1.0
    |       1.00000767            false
    [balance: 1.00000767, reserved: 0.0, frozen: 0.0]
        at app//foundation.omni.test.rpc.sto.SendToOwnersTestPlanSpec.assertBalance(SendToOwnersTestPlanSpec.groovy:447)
        at foundation.omni.test.rpc.sto.SendToOwnersTestPlanSpec.#description(SendToOwnersTestPlanSpec.groovy:72)
    Sender does not have sufficient MSC for STO amount + transfer fee
msgilligan commented 1 year ago

There are many TODOs in OmniTestSupport.requestOmni() that are probably relevant to this issue.

msgilligan commented 1 year ago

Another one:

STO Property ID is non-existent FAILED
    Condition not satisfied:

    omniGetBalance(actorAddress, currencyMSC).balance == startMSC
    |              |             |            |       |  |
    |              |             CurrencyID:2 |       |  2.00000000
    |              |                          |       false
    |              |                          2.00001583
    |              2NEtNuCsLtSNFuGtz7TwkNuWbHmHyLF11fT
    [balance: 2.00001583, reserved: 0.0, frozen: 0.0]
        at foundation.omni.test.rpc.sto.SendToOwnersTestPlanSpec.STO Property ID is non-existent(SendToOwnersTestPlanSpec.groovy:158)
    STO Property ID is 0 - bitcoin

I think that this particular failure points towards a funding-related transaction not being included in a block, because the

    assert omniGetBalance(actorAddress, currencyMSC).balance == startMSC

on line 144 is successful, but after a block is generated the check on line 158 fails.

msgilligan commented 1 year ago

And another:

    Sender owns all the coins of the STO Property after issuance (tx50, tx55) but before any distributions/sends

foundation.omni.test.rpc.sto.SendToOwnersTestPlanRawSpec.Sender owns all the coins of the STO Property after issuance (tx50, tx55) but before any distributions/sends STANDARD_ERROR
    2023-07-07 08:16:07.223 INFO    [org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource] (org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource requestBitcoin) requestBitcoin requesting 0.0101 for 2N8MoKKuE4nY5t1mMe2roamAUfDeJ8sGBQG 
    2023-07-07 08:16:07.232 INFO    [org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource] (org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource mineEnoughFunds) mineEnoughFunds: Needed: 0.0121 Returned: 667.70680984 
    2023-07-07 08:16:07.239 INFO    [org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource] (org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource requestBitcoin) Funding transaction sent: 5ae3d8c1573d53b84206bf18373bde204582998cefb1566c2cdf0b083dedac85 
    2023-07-07 08:16:07.251 INFO    [org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource] (org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource requestBitcoin) requestBitcoin requesting 0.1 for 2N8MoKKuE4nY5t1mMe2roamAUfDeJ8sGBQG 
    2023-07-07 08:16:07.302 WARNING [org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource] (org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource logMined) ⛏⛏⛏⛏⛏ Mined 1.5625 (blk#808): Available: 670.82109784 Needed: 0.102 ⛏⛏⛏⛏⛏ 
    2023-07-07 08:16:07.302 INFO    [org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource] (org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource mineEnoughFunds) mineEnoughFunds: Needed: 0.102 Returned: 670.82109784 
    2023-07-07 08:16:07.307 INFO    [org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource] (org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource requestBitcoin) Funding transaction sent: 5d52f18e0f1eb6499a55c4d0072084e4205c9738bd942dd1b9dba59e8a5df076 

foundation.omni.test.rpc.sto.SendToOwnersTestPlanRawSpec.Sender owns all the coins of the STO Property after issuance (tx50, tx55) but before any distributions/sends FAILED
    Condition not satisfied:

    balance.balance.numberValue() == expectedAvailable
    |       |       |             |  |
    |       |       1.00000792    |  1.0
    |       1.00000792            false
    [balance: 1.00000792, reserved: 0.0, frozen: 0.0]
        at app//foundation.omni.test.rpc.sto.SendToOwnersTestPlanSpec.assertBalance(SendToOwnersTestPlanSpec.groovy:447)
        at foundation.omni.test.rpc.sto.SendToOwnersTestPlanSpec.#description(SendToOwnersTestPlanSpec.groovy:95)
    Sender does not have sufficient MSC for STO amount + transfer fee

This one is interesting because for this test the expected Omni balance on line 75 and 95 is the same. And nothing in the transaction-under-test should change the balance. So where are the extra OMNI coming from?

msgilligan commented 1 year ago

Here's a failure with the additional logging turned on:

foundation.omni.test.rpc.sto.SendToOwnersTestPlanRawSpec.Three equal owners (amount NOT divisible by number of owners) STANDARD_ERROR
    2023-07-08 21:59:00.257 INFO    [org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource] (org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource requestBitcoin) requestBitcoin requesting 0.0011 for 2N4jfSrXwvDfhiKCwrgHUsPDeC65EXQivar 
    2023-07-08 21:59:00.270 INFO    [org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource] (org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource mineEnoughFunds) mineEnoughFunds: Needed: 0.0031 Returned: 908.8433274 
    2023-07-08 21:59:00.275 INFO    [org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource] (org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource requestBitcoin) Funding transaction sent: c501c4187408270ec91e3e9e81e4929aa12108307f93ffecd7c3bb9f886e5d17 
    2023-07-08 21:59:00.292 INFO    [org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource] (org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource requestBitcoin) requestBitcoin requesting 0.1 for 2N4jfSrXwvDfhiKCwrgHUsPDeC65EXQivar 
    2023-07-08 21:59:00.330 WARNING [org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource] (org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource logMined) ⛏⛏⛏⛏⛏ Mined 0.78125 (blk#921): Available: 910.4047668 Needed: 0.102 ⛏⛏⛏⛏⛏ 
    2023-07-08 21:59:00.330 INFO    [org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource] (org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource mineEnoughFunds) mineEnoughFunds: Needed: 0.102 Returned: 910.4047668 
    2023-07-08 21:59:00.334 INFO    [org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource] (org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource requestBitcoin) Funding transaction sent: 8750305ae044a466efa537c39f4c70ae1b93b3f1c9d454bd60e4ffb097b74de1 
    2023-07-08 21:59:00.347 INFO    [foundation.omni.rpc.OmniClient] (foundation.omni.rpc.OmniClient omniGetBalance) omni_getbalance result for 2N4jfSrXwvDfhiKCwrgHUsPDeC65EXQivar, CurrencyID:1: [balance: 0.1, reserved: 0.0, frozen: 0.0] 
    2023-07-08 21:59:00.348 INFO    [foundation.omni.rpc.OmniClient] (foundation.omni.rpc.OmniClient omniGetBalance) omni_getbalance result for 2N4jfSrXwvDfhiKCwrgHUsPDeC65EXQivar, CurrencyID:2: [balance: 0.1, reserved: 0.0, frozen: 0.0] 
    2023-07-08 21:59:00.348 INFO    [foundation.omni.test.OmniTestSupport] (org.codehaus.groovy.vmplugin.v8.IndyInterface fromCache) fundedAddress 2N4jfSrXwvDfhiKCwrgHUsPDeC65EXQivar has 0.00 BTC BTC, 0.10000000 OMNI, 0.10000000 TOMNI 
    2023-07-08 21:59:01.802 INFO    [foundation.omni.rpc.OmniClient] (foundation.omni.rpc.OmniClient omniGetBalance) omni_getbalance result for 2N4jfSrXwvDfhiKCwrgHUsPDeC65EXQivar, CurrencyID:2: [balance: 0.1000008, reserved: 0.0, frozen: 0.0] 

foundation.omni.test.rpc.sto.SendToOwnersTestPlanRawSpec.Three equal owners (amount NOT divisible by number of owners) FAILED
    Condition not satisfied:

    balance.balance.numberValue() == expectedAvailable
    |       |       |             |  |
    |       |       0.10000080    |  0.1
    |       0.10000080            false
    [balance: 0.1000008, reserved: 0.0, frozen: 0.0]
        at app//foundation.omni.test.rpc.sto.SendToOwnersTestPlanSpec.assertBalance(SendToOwnersTestPlanSpec.groovy:447)
        at foundation.omni.test.rpc.sto.SendToOwnersTestPlanSpec.#description(SendToOwnersTestPlanSpec.groovy:75)
    Two unequal owners (amount NOT divisible by the proportion)

With the additional logging we can see in the final log entry before the test failure that the server has returned the incorrect balance via omni_getbalance.

dexX7 commented 1 year ago

On which Omni Core version is this running? Is this somehow related to the changes we made in Omni Core, or does it run against a "stable" release?

msgilligan commented 1 year ago

On which Omni Core version is this running? Is this somehow related to the changes we made in Omni Core, or does it run against a "stable" release?

I've seen these failures with both the 0.11.0 binary and the 0.12.0.1 binary. We could try running the tests with a "nightly" binary and see if the failure occurs in that case, I suppose.

msgilligan commented 11 months ago

Here's a failure that occurred today that is somewhat different in the error shown:

2023-10-05T23:02:47.3947540Z     Three equal owners (amount enough only for first two owners)
2023-10-05T23:02:47.3947825Z 
2023-10-05T23:02:47.3948036Z Three equal owners (amount enough only for first two owners) STANDARD_ERROR
2023-10-05T23:02:47.3949352Z     2023-10-05 23:02:47.329 INFO    [org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource] (org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource requestBitcoin) requestBitcoin requesting 0.00010001 for 2Mxtvuyfay7neLShXfDupyqcBcNVhPu7PsC 
2023-10-05T23:02:47.3950783Z     2023-10-05 23:02:47.344 INFO    [org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource] (org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource mineEnoughFunds) mineEnoughFunds: Needed: 0.00210001 Returned: 1103.12108505 
2023-10-05T23:02:47.3952462Z     2023-10-05 23:02:47.349 INFO    [org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource] (org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource requestBitcoin) Funding transaction sent: e9e588476a77e57b60258d51ecaea8137e204f39dd29275ca15207a4563495be 
2023-10-05T23:02:47.3953945Z     2023-10-05 23:02:47.366 WARNING [foundation.omni.test.OmniTestSupport] (org.codehaus.groovy.vmplugin.v8.IndyInterface fromCache) requestedOmni is not a multiple of 100 willetts, excess OMNI/TOMNI will be sent to a random address 
2023-10-05T23:02:47.3955256Z     2023-10-05 23:02:47.367 INFO    [org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource] (org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource requestBitcoin) requestBitcoin requesting 0.00023552 for 2Mxtvuyfay7neLShXfDupyqcBcNVhPu7PsC 
2023-10-05T23:02:47.4950034Z     2023-10-05 23:02:47.408 WARNING [org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource] (org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource logMined) ⛏⛏⛏⛏⛏ Mined 0.390625 (blk#1071): Available: 1103.90025154 Needed: 0.00223552 ⛏⛏⛏⛏⛏ 
2023-10-05T23:02:47.4952152Z     2023-10-05 23:02:47.409 INFO    [org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource] (org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource mineEnoughFunds) mineEnoughFunds: Needed: 0.00223552 Returned: 1103.90025154 
2023-10-05T23:02:47.4954213Z     2023-10-05 23:02:47.412 INFO    [org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource] (org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource requestBitcoin) Funding transaction sent: 5a4963a55dfae808ec8eeb694fe6a6bb726c2783af6c1e689cb63c7d0956b113 
2023-10-05T23:02:48.1949143Z     2023-10-05 23:02:48.087 INFO    [org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource] (org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource requestBitcoin) requestBitcoin requesting 0.1 for 2Mxtvuyfay7neLShXfDupyqcBcNVhPu7PsC 
2023-10-05T23:02:48.1951233Z     2023-10-05 23:02:48.129 WARNING [org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource] (org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource logMined) ⛏⛏⛏⛏⛏ Mined 0.390625 (blk#1072): Available: 1104.68136602 Needed: 0.102 ⛏⛏⛏⛏⛏ 
2023-10-05T23:02:48.1952911Z     2023-10-05 23:02:48.129 INFO    [org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource] (org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource mineEnoughFunds) mineEnoughFunds: Needed: 0.102 Returned: 1104.68136602 
2023-10-05T23:02:48.1954839Z     2023-10-05 23:02:48.133 INFO    [org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource] (org.consensusj.bitcoin.jsonrpc.test.RegTestFundingSource requestBitcoin) Funding transaction sent: cffdf6cbb4c2960be15cf48d057453634e84c7155b563a56067805469354312d 
2023-10-05T23:02:48.1956970Z     2023-10-05 23:02:48.147 INFO    [foundation.omni.test.OmniTestSupport] (org.codehaus.groovy.vmplugin.v8.IndyInterface fromCache) fundedAddress 2Mxtvuyfay7neLShXfDupyqcBcNVhPu7PsC has 0.00018532 BTC BTC, 2E-8 OMNI, 2E-8 TOMNI 
2023-10-05T23:02:49.8949593Z     2023-10-05 23:02:49.882 SEVERE  [foundation.omni.test.OmniTestSupport] (org.codehaus.groovy.vmplugin.v8.IndyInterface fromCache) Unexpected exception:  
2023-10-05T23:02:49.8950711Z     org.consensusj.jsonrpc.JsonRpcStatusException: Error with selected inputs for the send transaction
2023-10-05T23:02:49.8951731Z        at org.consensusj.jsonrpc.JsonRpcClientHttpUrlConnection.handleBadResponseCode(JsonRpcClientHttpUrlConnection.java:187)
2023-10-05T23:02:49.8952954Z        at org.consensusj.jsonrpc.JsonRpcClientHttpUrlConnection.sendRequestForResponse(JsonRpcClientHttpUrlConnection.java:113)
2023-10-05T23:02:49.8954047Z        at org.consensusj.jsonrpc.JacksonRpcClient.sendRequestForResult(JacksonRpcClient.java:86)
2023-10-05T23:02:49.8954798Z        at org.consensusj.jsonrpc.JacksonRpcClient.send(JacksonRpcClient.java:121)
2023-10-05T23:02:49.8955384Z        at org.consensusj.jsonrpc.JsonRpcClient.send(JsonRpcClient.java:75)
2023-10-05T23:02:49.8955964Z        at foundation.omni.rpc.OmniClient.omniSendSTO(OmniClient.java:354)
2023-10-05T23:02:49.8956903Z        at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
2023-10-05T23:02:49.8957576Z        at foundation.omni.BaseRegTestSpec.omniSendSTO(BaseRegTestSpec.groovy:28)
2023-10-05T23:02:49.8958226Z        at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
2023-10-05T23:02:49.8959033Z        at foundation.omni.test.rpc.sto.SendToOwnersTestPlanSpec.executeSendToOwners(SendToOwnersTestPlanSpec.groovy:401)
2023-10-05T23:02:49.8959843Z        at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
2023-10-05T23:02:49.8960609Z        at foundation.omni.test.rpc.sto.SendToOwnersTestPlanSpec.$spock_feature_1_0(SendToOwnersTestPlanSpec.groovy:84)
2023-10-05T23:02:49.8961325Z        at jdk.internal.reflect.GeneratedMethodAccessor55.invoke(Unknown Source)
2023-10-05T23:02:49.8965406Z        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2023-10-05T23:02:49.8966097Z        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
2023-10-05T23:02:49.8966703Z        at org.spockframework.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:187)
2023-10-05T23:02:49.8967362Z        at org.spockframework.runtime.model.MethodInfo.lambda$new$0(MethodInfo.java:49)
2023-10-05T23:02:49.8967997Z        at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:156)
2023-10-05T23:02:49.8968693Z        at org.spockframework.runtime.PlatformSpecRunner.invokeRaw(PlatformSpecRunner.java:407)
2023-10-05T23:02:49.8969412Z        at org.spockframework.runtime.PlatformSpecRunner.invoke(PlatformSpecRunner.java:390)
2023-10-05T23:02:49.8970162Z        at org.spockframework.runtime.PlatformSpecRunner.runFeatureMethod(PlatformSpecRunner.java:324)
2023-10-05T23:02:49.8970867Z        at org.spockframework.runtime.IterationNode.execute(IterationNode.java:50)
2023-10-05T23:02:49.8971488Z        at org.spockframework.runtime.IterationNode.execute(IterationNode.java:13)
2023-10-05T23:02:49.8972232Z        at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
2023-10-05T23:02:49.8973096Z        at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
2023-10-05T23:02:49.8973958Z        at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
2023-10-05T23:02:49.8974677Z        at org.spockframework.runtime.SpockNode.sneakyInvoke(SpockNode.java:40)
2023-10-05T23:02:49.8975310Z        at org.spockframework.runtime.IterationNode.lambda$around$0(IterationNode.java:67)
2023-10-05T23:02:49.8976349Z        at org.spockframework.runtime.PlatformSpecRunner.lambda$createMethodInfoForDoRunIteration$5(PlatformSpecRunner.java:236)
2023-10-05T23:02:49.8977089Z        at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:156)
2023-10-05T23:02:49.8977766Z        at org.spockframework.runtime.PlatformSpecRunner.invokeRaw(PlatformSpecRunner.java:407)
2023-10-05T23:02:49.8978481Z        at org.spockframework.runtime.PlatformSpecRunner.invoke(PlatformSpecRunner.java:390)
2023-10-05T23:02:49.8979207Z        at org.spockframework.runtime.PlatformSpecRunner.runIteration(PlatformSpecRunner.java:218)
2023-10-05T23:02:49.8979883Z        at org.spockframework.runtime.IterationNode.around(IterationNode.java:67)
2023-10-05T23:02:49.9951799Z        at org.spockframework.runtime.IterationNode.around(IterationNode.java:13)
2023-10-05T23:02:49.9952822Z        at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
2023-10-05T23:02:49.9953852Z        at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
2023-10-05T23:02:49.9954938Z        at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
2023-10-05T23:02:49.9955911Z        at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
2023-10-05T23:02:49.9957529Z        at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
2023-10-05T23:02:49.9958641Z        at org.junit.platform.engine.support.hierarchical.NodeTestTask$DefaultDynamicTestExecutor.execute(NodeTestTask.java:226)
2023-10-05T23:02:49.9959563Z        at org.spockframework.runtime.ParameterizedFeatureChildExecutor.execute(ParameterizedFeatureChildExecutor.java:104)
2023-10-05T23:02:49.9960482Z        at org.spockframework.runtime.PlatformParameterizedSpecRunner$1.runIteration(PlatformParameterizedSpecRunner.java:72)
2023-10-05T23:02:49.9961646Z        at org.spockframework.runtime.extension.IDataDriver.lambda$static$0(IDataDriver.java:37)
2023-10-05T23:02:49.9962570Z        at org.spockframework.runtime.PlatformParameterizedSpecRunner.runParameterizedFeature(PlatformParameterizedSpecRunner.java:47)
2023-10-05T23:02:49.9963533Z        at org.spockframework.runtime.ParameterizedFeatureNode.execute(ParameterizedFeatureNode.java:40)
2023-10-05T23:02:49.9964334Z        at org.spockframework.runtime.ParameterizedFeatureNode.execute(ParameterizedFeatureNode.java:16)
2023-10-05T23:02:49.9965154Z        at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
2023-10-05T23:02:49.9986131Z        at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
2023-10-05T23:02:49.9987162Z        at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
2023-10-05T23:02:49.9988798Z        at org.spockframework.runtime.SpockNode.sneakyInvoke(SpockNode.java:40)
2023-10-05T23:02:49.9989532Z        at org.spockframework.runtime.FeatureNode.lambda$around$0(FeatureNode.java:41)
2023-10-05T23:02:49.9990405Z        at org.spockframework.runtime.PlatformSpecRunner.lambda$createMethodInfoForDoRunFeature$4(PlatformSpecRunner.java:199)
2023-10-05T23:02:49.9991156Z        at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:156)
2023-10-05T23:02:49.9991896Z        at org.spockframework.runtime.PlatformSpecRunner.invokeRaw(PlatformSpecRunner.java:407)
2023-10-05T23:02:49.9992614Z        at org.spockframework.runtime.PlatformSpecRunner.invoke(PlatformSpecRunner.java:390)
2023-10-05T23:02:49.9993332Z        at org.spockframework.runtime.PlatformSpecRunner.runFeature(PlatformSpecRunner.java:192)
2023-10-05T23:02:49.9994009Z        at org.spockframework.runtime.FeatureNode.around(FeatureNode.java:41)
2023-10-05T23:02:49.9994611Z        at org.spockframework.runtime.FeatureNode.around(FeatureNode.java:12)
2023-10-05T23:02:49.9995652Z        at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
2023-10-05T23:02:49.9996526Z        at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
2023-10-05T23:02:49.9997419Z        at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
2023-10-05T23:02:49.9998269Z        at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
2023-10-05T23:02:49.9998914Z        at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
2023-10-05T23:02:49.9999845Z        at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
2023-10-05T23:02:50.0000934Z        at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
2023-10-05T23:02:50.0002948Z        at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
2023-10-05T23:02:50.0003788Z        at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
2023-10-05T23:02:50.0004452Z        at org.spockframework.runtime.SpockNode.sneakyInvoke(SpockNode.java:40)
2023-10-05T23:02:50.0005149Z        at org.spockframework.runtime.SpecNode.lambda$around$0(SpecNode.java:63)
2023-10-05T23:02:50.0005791Z        at org.spockframework.runtime.PlatformSpecRunner.lambda$createMethodInfoForDoRunSpec$0(PlatformSpecRunner.java:61)
2023-10-05T23:02:50.0006441Z        at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:156)
2023-10-05T23:02:50.0007065Z        at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:102)
2023-10-05T23:02:50.0007743Z        at org.spockframework.runtime.extension.builtin.UseInterceptor$1.doCall(UseInterceptor.java:43)
2023-10-05T23:02:50.0008378Z        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2023-10-05T23:02:50.0009020Z        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
2023-10-05T23:02:50.0009719Z        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2023-10-05T23:02:50.0010294Z        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
2023-10-05T23:02:50.0010793Z        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343)
2023-10-05T23:02:50.0011301Z        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:328)
2023-10-05T23:02:50.0011779Z        at groovy.lang.MetaClassImpl.doInvokeMethod(MetaClassImpl.java:1332)
2023-10-05T23:02:50.0012271Z        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1087)
2023-10-05T23:02:50.0012738Z        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1006)
2023-10-05T23:02:50.0013152Z        at groovy.lang.Closure.call(Closure.java:433)
2023-10-05T23:02:50.0013508Z        at groovy.lang.Closure.call(Closure.java:412)
2023-10-05T23:02:50.0014052Z        at org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.use(GroovyCategorySupport.java:136)
2023-10-05T23:02:50.0014727Z        at org.codehaus.groovy.runtime.GroovyCategorySupport.use(GroovyCategorySupport.java:273)
2023-10-05T23:02:50.0015363Z        at org.codehaus.groovy.runtime.DefaultGroovyMethods.use(DefaultGroovyMethods.java:653)
2023-10-05T23:02:50.0016034Z        at org.spockframework.runtime.extension.builtin.UseInterceptor.intercept(UseInterceptor.java:40)
2023-10-05T23:02:50.0016744Z        at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:101)
2023-10-05T23:02:50.0017398Z        at org.spockframework.runtime.PlatformSpecRunner.invoke(PlatformSpecRunner.java:398)
2023-10-05T23:02:50.0018018Z        at org.spockframework.runtime.PlatformSpecRunner.runSpec(PlatformSpecRunner.java:55)
2023-10-05T23:02:50.0018568Z        at org.spockframework.runtime.SpecNode.around(SpecNode.java:63)
2023-10-05T23:02:50.0019181Z        at org.spockframework.runtime.SpecNode.around(SpecNode.java:11)
2023-10-05T23:02:50.0019811Z        at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
2023-10-05T23:02:50.0020585Z        at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
2023-10-05T23:02:50.0021407Z        at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
2023-10-05T23:02:50.0022174Z        at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
2023-10-05T23:02:50.0022733Z        at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
2023-10-05T23:02:50.0023593Z        at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
2023-10-05T23:02:50.0024604Z        at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
2023-10-05T23:02:50.0025396Z        at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
2023-10-05T23:02:50.0026181Z        at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
2023-10-05T23:02:50.0026951Z        at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
2023-10-05T23:02:50.0027640Z        at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
2023-10-05T23:02:50.0028422Z        at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
2023-10-05T23:02:50.0029228Z        at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
2023-10-05T23:02:50.0029992Z        at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
2023-10-05T23:02:50.0030967Z        at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
2023-10-05T23:02:50.0032018Z        at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
2023-10-05T23:02:50.0041321Z        at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
2023-10-05T23:02:50.0044878Z        at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:198)
2023-10-05T23:02:50.0045700Z        at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:169)
2023-10-05T23:02:50.0046512Z        at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:93)
2023-10-05T23:02:50.0047328Z        at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:58)
2023-10-05T23:02:50.0048242Z        at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:141)
2023-10-05T23:02:50.0049122Z        at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:57)
2023-10-05T23:02:50.0049833Z        at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:103)
2023-10-05T23:02:50.0050439Z        at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:85)
2023-10-05T23:02:50.0051081Z        at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47)
2023-10-05T23:02:50.0052060Z        at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:119)
2023-10-05T23:02:50.0053275Z        at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:94)
2023-10-05T23:02:50.0054615Z        at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:89)
2023-10-05T23:02:50.0055516Z        at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:62)
2023-10-05T23:02:50.0056196Z        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2023-10-05T23:02:50.0064476Z        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
2023-10-05T23:02:50.0065206Z        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2023-10-05T23:02:50.0065796Z        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
2023-10-05T23:02:50.0066343Z        at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
2023-10-05T23:02:50.0067011Z        at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
2023-10-05T23:02:50.0067725Z        at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
2023-10-05T23:02:50.0068500Z        at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
2023-10-05T23:02:50.0087042Z        at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source)
2023-10-05T23:02:50.0087632Z        at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193)
2023-10-05T23:02:50.0088439Z        at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129)
2023-10-05T23:02:50.0089207Z        at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100)
2023-10-05T23:02:50.0089866Z        at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60)
2023-10-05T23:02:50.0090605Z        at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
2023-10-05T23:02:50.0091502Z        at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:113)
2023-10-05T23:02:50.0092629Z        at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:65)
2023-10-05T23:02:50.0093445Z        at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
2023-10-05T23:02:50.0094128Z        at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
2023-10-05T23:02:50.0094499Z 
2023-10-05T23:02:50.0094507Z 
2023-10-05T23:02:50.0094696Z Three equal owners (amount enough only for first two owners) FAILED
2023-10-05T23:02:50.0095033Z     Condition not satisfied:
2023-10-05T23:02:50.0095199Z 
2023-10-05T23:02:50.0095304Z     thrown == exceptional
2023-10-05T23:02:50.0095540Z     |      |  |
2023-10-05T23:02:50.0095762Z     true   |  false
2023-10-05T23:02:50.0095985Z            false
2023-10-05T23:02:50.0096539Z         at app//foundation.omni.test.rpc.sto.SendToOwnersTestPlanSpec.executeSendToOwners(SendToOwnersTestPlanSpec.groovy:411)
2023-10-05T23:02:50.0097328Z         at foundation.omni.test.rpc.sto.SendToOwnersTestPlanSpec.#description(SendToOwnersTestPlanSpec.groovy:84)
2023-10-05T23:02:50.0097872Z     Two unequal owners (amount enough only for first owner)
2023-10-05T23:02:50.0098084Z 

The full job is here: https://github.com/OmniLayer/OmniJ/actions/runs/6425296227/job/17447626557

@dexX7 @bvbfan