Hi Maksim, Thanks. We have tested the workaround and it mitigates the issue. 😊
Regards, Marcus From: [gmail.com] Maksim Timonin <timonin.ma...@gmail.com> Sent: Thursday, June 10, 2021 5:52 PM To: user@ignite.apache.org Subject: Re: Ignite crashed with CorruptedTreeException Hi, Marcus! I've found a bug. It was already fixed within this ticket https://issues.apache.org/jira/browse/IGNITE-14451<https://urldefense.com/v3/__https:/issues.apache.org/jira/browse/IGNITE-14451__;!!Jkho33Y!2lE2mKO1rPq_tr8J_acm_2Mv5oZTq6xaapgVJ-IHWfrlVJ4S-U7_ZtNwyLi9IA$>. So it will be available in Ignite 2.11. Reason is that you declare fields in your table in order (viewId, status) while PK has order (status, viewId). So, change the order in the table and it will be fine. This bug affects only Primary Key indexes, so it's safe to declare fields in different order in secondary indexes. On Thu, Jun 10, 2021 at 10:58 AM Maksim Timonin <timonin.ma...@gmail.com<mailto:timonin.ma...@gmail.com>> wrote: hi, Marcus! Thank you for the reproducer, I've succeed in reproducing it. Create a ticket for that https://issues.apache.org/jira/browse/IGNITE-14869<https://urldefense.com/v3/__https:/issues.apache.org/jira/browse/IGNITE-14869__;!!Jkho33Y!2lE2mKO1rPq_tr8J_acm_2Mv5oZTq6xaapgVJ-IHWfrlVJ4S-U7_ZtN-vi96WA$> I will return to you with a workaround, after finding a reason. On Thu, Jun 10, 2021 at 3:18 AM Lo, Marcus <marcus...@citi.com<mailto:marcus...@citi.com>> wrote: Hi Ivan, Maksim, Here is the reproducer: import org.apache.ignite.Ignition; import org.apache.ignite.binary.BinaryObject; import org.apache.ignite.binary.BinaryObjectBuilder; import org.apache.ignite.cache.QueryEntity; import org.apache.ignite.client.ClientCache; import org.apache.ignite.client.IgniteClient; import org.apache.ignite.configuration.BinaryConfiguration; import org.apache.ignite.configuration.ClientConfiguration; import org.junit.jupiter.api.Test; import java.sql.Timestamp; import java.time.Instant; import java.util.*; import java.util.stream.IntStream; import static java.util.stream.Collectors.toList; public class Reproducer { @Test public void reproduce() throws InterruptedException { ClientConfiguration config = constructIgniteThinClientConfig(); IgniteClient ignite = Ignition.startClient(config); List<UUID> uuids = IntStream.range(0, 200).mapToObj((i) -> UUID.randomUUID()).collect(toList()); while (true) { upsertLimitViewData(ignite, uuids); Thread.sleep(1000); } } private void upsertLimitViewData(IgniteClient ignite, List<UUID> uuids) { System.out.println("[" + Instant.now() + "] upserting data... " + Thread.currentThread().getName()); ClientCache<Object, Object> cache = ignite.cache("LimitViewStatusCache").withKeepBinary(); QueryEntity queryEntity = cache.getConfiguration().getQueryEntities()[0]; BinaryObjectBuilder keyBuilder = ignite.binary().builder(queryEntity.getKeyType()); BinaryObjectBuilder valueBuilder = ignite.binary().builder(queryEntity.getValueType()); HashMap<Object, Object> valueMap = new HashMap<>(); for (int i = 0; i < 200; i++) { BinaryObject key = keyBuilder .setField("viewId", uuids.get(i)) .setField("status", "moo") .build(); BinaryObject value = valueBuilder .setField("batchId", new Random().nextInt()) .setField("instance", Integer.toString(new Random().nextInt())) .setField("nodes", Integer.toString(new Random().nextInt())) .setField("eqtgContext", Integer.toString(new Random().nextInt())) .setField("lastUpdateTime", Timestamp.from(Instant.now())) .build(); valueMap.put(key, value); } cache.putAll(valueMap); } private ClientConfiguration constructIgniteThinClientConfig() { return new ClientConfiguration() .setAddresses("xxx:10800") .setPartitionAwarenessEnabled(false) .setBinaryConfiguration(new BinaryConfiguration().setCompactFooter(false)) .setUserName("xxx") .setUserPassword("xxx"); } } Regards, Marcus -----Original Message----- From: [External] Maksim Timonin <timonin.ma...@gmail.com<mailto:timonin.ma...@gmail.com>> Sent: Thursday, June 10, 2021 12:31 AM To: user@ignite.apache.org<mailto:user@ignite.apache.org> Subject: Re: Ignite crashed with CorruptedTreeException Hi Marcus! Could you please provide a complete code that inserts data (either it is SQL, or cache put, which types do you use, etc.). I've tried to reproduce your case but failed. Thanks a lot! -- Sent from: https://urldefense.com/v3/__http://apache-ignite-users.70518.x6.nabble.com/__;!!Jkho33Y!2v--HF_tnHWeR_0YefFDx-NcnoY3hkO-9G94IAXG23N6qzB_qz-rSYtuciav3A$<https://urldefense.com/v3/__http:/apache-ignite-users.70518.x6.nabble.com/__;!!Jkho33Y!2v--HF_tnHWeR_0YefFDx-NcnoY3hkO-9G94IAXG23N6qzB_qz-rSYtuciav3A$>