[jira] [Updated] (IGNITE-16318) Empty binary object is incorrect written/read/modified

2022-09-09 Thread Dmitry Pavlov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-16318?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dmitry Pavlov updated IGNITE-16318:
---
Labels: ise  (was: )

> Empty binary object is incorrect written/read/modified
> --
>
> Key: IGNITE-16318
> URL: https://issues.apache.org/jira/browse/IGNITE-16318
> Project: Ignite
>  Issue Type: Bug
>  Components: binary, cache
>Reporter: Andrey Belyaev
>Assignee: Taras Ledkov
>Priority: Major
>  Labels: ise
> Fix For: 2.14
>
>  Time Spent: 40m
>  Remaining Estimate: 0h
>
> Cache interceptor cause problem of missing binary scheme if sql insert 
> contains only entry key fields and no one value field pass in query.
> There is exception happened if inside interceptor we try to make 
> BinaryObjectBuilder from entry value BinaryObject (#toBuilder()) and then 
> request builder for any field.
> Interceptor example:
> {code:java}
> new CacheInterceptorAdapter() {
> @Nullable
> @Override public BinaryObject onBeforePut(Cache.Entry BinaryObject> entry, BinaryObject newVal) {
> BinaryObjectBuilder newValBuilder = newVal.toBuilder();
> String bValue = newValBuilder.getField("B"); // Cannot find schema 
> for object with compact footer
> // ...
> }
> } {code}
> It's a pretty serious error which currupt and shutdown grid.
> Code example:
> {code:java}
> LinkedHashMap fields = new LinkedHashMap<>();
> fields.put("A", "java.lang.String");
> fields.put("B", "java.lang.String");
> fields.put("C", "java.lang.String");
> Set keyFields = new LinkedHashSet<>();
> keyFields.add("A");
> CacheInterceptorAdapter cacheInterceptorAdapter = new 
> CacheInterceptorAdapter() {
> @Nullable
> @Override public BinaryObject onBeforePut(Cache.Entry BinaryObject> entry, BinaryObject newVal) {
> BinaryObjectBuilder newValBuilder = newVal.toBuilder();
> String bValue = newValBuilder.getField("B"); // Cannot find schema 
> for object with compact footer
> if (bValue == null || bValue.isEmpty()) {
> newValBuilder.setField("B", "Some value");
> }
> return newValBuilder.build();
> }
> };
> CacheConfiguration cacheConfiguration = new CacheConfiguration<>()
> .setName("TEST_CACHE")
> .setKeyConfiguration(new CacheKeyConfiguration()
> .setTypeName("TEST_CACHE_KEY")
> .setAffinityKeyFieldName("InternalId"))
> .setQueryEntities(Collections.singleton(new QueryEntity()
> .setTableName("TEST_CACHE")
> .setKeyType("TEST_CACHE_KEY")
> .setValueType("TEST_CACHE_VALUE")
> .setFields(fields)
> .setKeyFields(keyFields)))
> .setInterceptor(cacheInterceptorAdapter);
> IgniteConfiguration igniteConfiguration = new IgniteConfiguration()
> .setCacheConfiguration(cacheConfiguration);
> try (Ignite ignite = Ignition.start(igniteConfiguration)) {
> IgniteCache testCache = ignite.getOrCreateCache("TEST_CACHE");
> // putSql
> testCache.query(new SqlFieldsQuery("INSERT INTO TEST_CACHE (A) VALUES 
> ('1234')"));
> }{code}
> Exception:
> {code:java}
> [2022-01-18 13:12:32,727][ERROR][main][CacheObjectBinaryProcessorImpl] Timed 
> out while waiting for schema update [typeId=1147851335, schemaId=0]
> [2022-01-18 13:12:32,730][ERROR][main][root] Critical system error detected. 
> Will be handled accordingly to configured handler 
> [hnd=StopNodeOrHaltFailureHandler [tryStop=false, timeout=0, 
> super=AbstractFailureHandler [ignoredFailureTypes=UnmodifiableSet 
> [SYSTEM_WORKER_BLOCKED, SYSTEM_CRITICAL_OPERATION_TIMEOUT]]], 
> failureCtx=FailureContext [type=CRITICAL_ERROR, err=class 
> o.a.i.i.processors.cache.persistence.tree.CorruptedTreeException: B+Tree is 
> corrupted [groupId=-838655627, pageIds=[844420635166307], msg=Runtime failure 
> on search row: SearchRow [key=TEST_CACHE_KEY [idHash=100929741, 
> hash=-639470899, A=123], hash=-639470899, cacheId=0
> class 
> org.apache.ignite.internal.processors.cache.persistence.tree.CorruptedTreeException:
>  B+Tree is corrupted [groupId=-838655627, pageIds=[844420635166307], 
> msg=Runtime failure on search row: SearchRow [key=TEST_CACHE_KEY 
> [idHash=100929741, hash=-639470899, A=123], hash=-639470899, cacheId=0]]
>     at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.corruptedTreeException(BPlusTree.java:6237)
>     at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.invoke(BPlusTree.java:1988)
>     at 
> org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.invoke0(IgniteCacheOffheapManagerImpl.java:1742)
>     at 
> 

[jira] [Updated] (IGNITE-16318) Empty binary object is incorrect written/read/modified

2022-09-09 Thread Dmitry Pavlov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-16318?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dmitry Pavlov updated IGNITE-16318:
---
Release Note: Fixed writing of an empty binary object.  (was: Fixed write 
empty binary object.)

> Empty binary object is incorrect written/read/modified
> --
>
> Key: IGNITE-16318
> URL: https://issues.apache.org/jira/browse/IGNITE-16318
> Project: Ignite
>  Issue Type: Bug
>  Components: binary, cache
>Reporter: Andrey Belyaev
>Assignee: Taras Ledkov
>Priority: Major
> Fix For: 2.14
>
>  Time Spent: 40m
>  Remaining Estimate: 0h
>
> Cache interceptor cause problem of missing binary scheme if sql insert 
> contains only entry key fields and no one value field pass in query.
> There is exception happened if inside interceptor we try to make 
> BinaryObjectBuilder from entry value BinaryObject (#toBuilder()) and then 
> request builder for any field.
> Interceptor example:
> {code:java}
> new CacheInterceptorAdapter() {
> @Nullable
> @Override public BinaryObject onBeforePut(Cache.Entry BinaryObject> entry, BinaryObject newVal) {
> BinaryObjectBuilder newValBuilder = newVal.toBuilder();
> String bValue = newValBuilder.getField("B"); // Cannot find schema 
> for object with compact footer
> // ...
> }
> } {code}
> It's a pretty serious error which currupt and shutdown grid.
> Code example:
> {code:java}
> LinkedHashMap fields = new LinkedHashMap<>();
> fields.put("A", "java.lang.String");
> fields.put("B", "java.lang.String");
> fields.put("C", "java.lang.String");
> Set keyFields = new LinkedHashSet<>();
> keyFields.add("A");
> CacheInterceptorAdapter cacheInterceptorAdapter = new 
> CacheInterceptorAdapter() {
> @Nullable
> @Override public BinaryObject onBeforePut(Cache.Entry BinaryObject> entry, BinaryObject newVal) {
> BinaryObjectBuilder newValBuilder = newVal.toBuilder();
> String bValue = newValBuilder.getField("B"); // Cannot find schema 
> for object with compact footer
> if (bValue == null || bValue.isEmpty()) {
> newValBuilder.setField("B", "Some value");
> }
> return newValBuilder.build();
> }
> };
> CacheConfiguration cacheConfiguration = new CacheConfiguration<>()
> .setName("TEST_CACHE")
> .setKeyConfiguration(new CacheKeyConfiguration()
> .setTypeName("TEST_CACHE_KEY")
> .setAffinityKeyFieldName("InternalId"))
> .setQueryEntities(Collections.singleton(new QueryEntity()
> .setTableName("TEST_CACHE")
> .setKeyType("TEST_CACHE_KEY")
> .setValueType("TEST_CACHE_VALUE")
> .setFields(fields)
> .setKeyFields(keyFields)))
> .setInterceptor(cacheInterceptorAdapter);
> IgniteConfiguration igniteConfiguration = new IgniteConfiguration()
> .setCacheConfiguration(cacheConfiguration);
> try (Ignite ignite = Ignition.start(igniteConfiguration)) {
> IgniteCache testCache = ignite.getOrCreateCache("TEST_CACHE");
> // putSql
> testCache.query(new SqlFieldsQuery("INSERT INTO TEST_CACHE (A) VALUES 
> ('1234')"));
> }{code}
> Exception:
> {code:java}
> [2022-01-18 13:12:32,727][ERROR][main][CacheObjectBinaryProcessorImpl] Timed 
> out while waiting for schema update [typeId=1147851335, schemaId=0]
> [2022-01-18 13:12:32,730][ERROR][main][root] Critical system error detected. 
> Will be handled accordingly to configured handler 
> [hnd=StopNodeOrHaltFailureHandler [tryStop=false, timeout=0, 
> super=AbstractFailureHandler [ignoredFailureTypes=UnmodifiableSet 
> [SYSTEM_WORKER_BLOCKED, SYSTEM_CRITICAL_OPERATION_TIMEOUT]]], 
> failureCtx=FailureContext [type=CRITICAL_ERROR, err=class 
> o.a.i.i.processors.cache.persistence.tree.CorruptedTreeException: B+Tree is 
> corrupted [groupId=-838655627, pageIds=[844420635166307], msg=Runtime failure 
> on search row: SearchRow [key=TEST_CACHE_KEY [idHash=100929741, 
> hash=-639470899, A=123], hash=-639470899, cacheId=0
> class 
> org.apache.ignite.internal.processors.cache.persistence.tree.CorruptedTreeException:
>  B+Tree is corrupted [groupId=-838655627, pageIds=[844420635166307], 
> msg=Runtime failure on search row: SearchRow [key=TEST_CACHE_KEY 
> [idHash=100929741, hash=-639470899, A=123], hash=-639470899, cacheId=0]]
>     at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.corruptedTreeException(BPlusTree.java:6237)
>     at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.invoke(BPlusTree.java:1988)
>     at 
> org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.invoke0(IgniteCacheOffheapManagerImpl.java:1742)
>     at 
> 

[jira] [Updated] (IGNITE-16318) Empty binary object is incorrect written/read/modified

2022-08-25 Thread Taras Ledkov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-16318?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Taras Ledkov updated IGNITE-16318:
--
Release Note: Fixed write empty binary object.

> Empty binary object is incorrect written/read/modified
> --
>
> Key: IGNITE-16318
> URL: https://issues.apache.org/jira/browse/IGNITE-16318
> Project: Ignite
>  Issue Type: Bug
>  Components: binary, cache
>Reporter: Andrey Belyaev
>Assignee: Taras Ledkov
>Priority: Major
> Fix For: 2.14
>
>  Time Spent: 40m
>  Remaining Estimate: 0h
>
> Cache interceptor cause problem of missing binary scheme if sql insert 
> contains only entry key fields and no one value field pass in query.
> There is exception happened if inside interceptor we try to make 
> BinaryObjectBuilder from entry value BinaryObject (#toBuilder()) and then 
> request builder for any field.
> Interceptor example:
> {code:java}
> new CacheInterceptorAdapter() {
> @Nullable
> @Override public BinaryObject onBeforePut(Cache.Entry BinaryObject> entry, BinaryObject newVal) {
> BinaryObjectBuilder newValBuilder = newVal.toBuilder();
> String bValue = newValBuilder.getField("B"); // Cannot find schema 
> for object with compact footer
> // ...
> }
> } {code}
> It's a pretty serious error which currupt and shutdown grid.
> Code example:
> {code:java}
> LinkedHashMap fields = new LinkedHashMap<>();
> fields.put("A", "java.lang.String");
> fields.put("B", "java.lang.String");
> fields.put("C", "java.lang.String");
> Set keyFields = new LinkedHashSet<>();
> keyFields.add("A");
> CacheInterceptorAdapter cacheInterceptorAdapter = new 
> CacheInterceptorAdapter() {
> @Nullable
> @Override public BinaryObject onBeforePut(Cache.Entry BinaryObject> entry, BinaryObject newVal) {
> BinaryObjectBuilder newValBuilder = newVal.toBuilder();
> String bValue = newValBuilder.getField("B"); // Cannot find schema 
> for object with compact footer
> if (bValue == null || bValue.isEmpty()) {
> newValBuilder.setField("B", "Some value");
> }
> return newValBuilder.build();
> }
> };
> CacheConfiguration cacheConfiguration = new CacheConfiguration<>()
> .setName("TEST_CACHE")
> .setKeyConfiguration(new CacheKeyConfiguration()
> .setTypeName("TEST_CACHE_KEY")
> .setAffinityKeyFieldName("InternalId"))
> .setQueryEntities(Collections.singleton(new QueryEntity()
> .setTableName("TEST_CACHE")
> .setKeyType("TEST_CACHE_KEY")
> .setValueType("TEST_CACHE_VALUE")
> .setFields(fields)
> .setKeyFields(keyFields)))
> .setInterceptor(cacheInterceptorAdapter);
> IgniteConfiguration igniteConfiguration = new IgniteConfiguration()
> .setCacheConfiguration(cacheConfiguration);
> try (Ignite ignite = Ignition.start(igniteConfiguration)) {
> IgniteCache testCache = ignite.getOrCreateCache("TEST_CACHE");
> // putSql
> testCache.query(new SqlFieldsQuery("INSERT INTO TEST_CACHE (A) VALUES 
> ('1234')"));
> }{code}
> Exception:
> {code:java}
> [2022-01-18 13:12:32,727][ERROR][main][CacheObjectBinaryProcessorImpl] Timed 
> out while waiting for schema update [typeId=1147851335, schemaId=0]
> [2022-01-18 13:12:32,730][ERROR][main][root] Critical system error detected. 
> Will be handled accordingly to configured handler 
> [hnd=StopNodeOrHaltFailureHandler [tryStop=false, timeout=0, 
> super=AbstractFailureHandler [ignoredFailureTypes=UnmodifiableSet 
> [SYSTEM_WORKER_BLOCKED, SYSTEM_CRITICAL_OPERATION_TIMEOUT]]], 
> failureCtx=FailureContext [type=CRITICAL_ERROR, err=class 
> o.a.i.i.processors.cache.persistence.tree.CorruptedTreeException: B+Tree is 
> corrupted [groupId=-838655627, pageIds=[844420635166307], msg=Runtime failure 
> on search row: SearchRow [key=TEST_CACHE_KEY [idHash=100929741, 
> hash=-639470899, A=123], hash=-639470899, cacheId=0
> class 
> org.apache.ignite.internal.processors.cache.persistence.tree.CorruptedTreeException:
>  B+Tree is corrupted [groupId=-838655627, pageIds=[844420635166307], 
> msg=Runtime failure on search row: SearchRow [key=TEST_CACHE_KEY 
> [idHash=100929741, hash=-639470899, A=123], hash=-639470899, cacheId=0]]
>     at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.corruptedTreeException(BPlusTree.java:6237)
>     at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.invoke(BPlusTree.java:1988)
>     at 
> org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.invoke0(IgniteCacheOffheapManagerImpl.java:1742)
>     at 
> 

[jira] [Updated] (IGNITE-16318) Empty binary object is incorrect written/read/modified

2022-05-13 Thread Taras Ledkov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-16318?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Taras Ledkov updated IGNITE-16318:
--
Description: 
Cache interceptor cause problem of missing binary scheme if sql insert contains 
only entry key fields and no one value field pass in query.
There is exception happened if inside interceptor we try to make 
BinaryObjectBuilder from entry value BinaryObject (#toBuilder()) and then 
request builder for any field.

Interceptor example:
{code:java}
new CacheInterceptorAdapter() {
@Nullable
@Override public BinaryObject onBeforePut(Cache.Entry entry, BinaryObject newVal) {
BinaryObjectBuilder newValBuilder = newVal.toBuilder();
String bValue = newValBuilder.getField("B"); // Cannot find schema for 
object with compact footer
// ...
}
} {code}
It's a pretty serious error which currupt and shutdown grid.

Code example:
{code:java}
LinkedHashMap fields = new LinkedHashMap<>();
fields.put("A", "java.lang.String");
fields.put("B", "java.lang.String");
fields.put("C", "java.lang.String");

Set keyFields = new LinkedHashSet<>();
keyFields.add("A");

CacheInterceptorAdapter cacheInterceptorAdapter = new 
CacheInterceptorAdapter() {
@Nullable
@Override public BinaryObject onBeforePut(Cache.Entry entry, BinaryObject newVal) {
BinaryObjectBuilder newValBuilder = newVal.toBuilder();
String bValue = newValBuilder.getField("B"); // Cannot find schema for 
object with compact footer
if (bValue == null || bValue.isEmpty()) {
newValBuilder.setField("B", "Some value");
}
return newValBuilder.build();
}
};

CacheConfiguration cacheConfiguration = new CacheConfiguration<>()
.setName("TEST_CACHE")
.setKeyConfiguration(new CacheKeyConfiguration()
.setTypeName("TEST_CACHE_KEY")
.setAffinityKeyFieldName("InternalId"))
.setQueryEntities(Collections.singleton(new QueryEntity()
.setTableName("TEST_CACHE")
.setKeyType("TEST_CACHE_KEY")
.setValueType("TEST_CACHE_VALUE")
.setFields(fields)
.setKeyFields(keyFields)))
.setInterceptor(cacheInterceptorAdapter);
IgniteConfiguration igniteConfiguration = new IgniteConfiguration()
.setCacheConfiguration(cacheConfiguration);
try (Ignite ignite = Ignition.start(igniteConfiguration)) {
IgniteCache testCache = ignite.getOrCreateCache("TEST_CACHE");
// putSql
testCache.query(new SqlFieldsQuery("INSERT INTO TEST_CACHE (A) VALUES 
('1234')"));
}{code}
Exception:
{code:java}
[2022-01-18 13:12:32,727][ERROR][main][CacheObjectBinaryProcessorImpl] Timed 
out while waiting for schema update [typeId=1147851335, schemaId=0]
[2022-01-18 13:12:32,730][ERROR][main][root] Critical system error detected. 
Will be handled accordingly to configured handler 
[hnd=StopNodeOrHaltFailureHandler [tryStop=false, timeout=0, 
super=AbstractFailureHandler [ignoredFailureTypes=UnmodifiableSet 
[SYSTEM_WORKER_BLOCKED, SYSTEM_CRITICAL_OPERATION_TIMEOUT]]], 
failureCtx=FailureContext [type=CRITICAL_ERROR, err=class 
o.a.i.i.processors.cache.persistence.tree.CorruptedTreeException: B+Tree is 
corrupted [groupId=-838655627, pageIds=[844420635166307], msg=Runtime failure 
on search row: SearchRow [key=TEST_CACHE_KEY [idHash=100929741, 
hash=-639470899, A=123], hash=-639470899, cacheId=0
class 
org.apache.ignite.internal.processors.cache.persistence.tree.CorruptedTreeException:
 B+Tree is corrupted [groupId=-838655627, pageIds=[844420635166307], 
msg=Runtime failure on search row: SearchRow [key=TEST_CACHE_KEY 
[idHash=100929741, hash=-639470899, A=123], hash=-639470899, cacheId=0]]
    at 
org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.corruptedTreeException(BPlusTree.java:6237)
    at 
org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.invoke(BPlusTree.java:1988)
    at 
org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.invoke0(IgniteCacheOffheapManagerImpl.java:1742)
    at 
org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.invoke(IgniteCacheOffheapManagerImpl.java:1725)
    at 
org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl.invoke(IgniteCacheOffheapManagerImpl.java:449)
    at 
org.apache.ignite.internal.processors.cache.GridCacheMapEntry.innerUpdate(GridCacheMapEntry.java:2331)
    at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.updateSingle(GridDhtAtomicCache.java:2553)
    at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.update(GridDhtAtomicCache.java:2016)
    at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.updateAllAsyncInternal0(GridDhtAtomicCache.java:1833)
    at 

[jira] [Updated] (IGNITE-16318) Empty binary object is incorrect written/read/modified

2022-05-12 Thread Taras Ledkov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-16318?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Taras Ledkov updated IGNITE-16318:
--
Summary: Empty binary object is incorrect written/read/modified  (was: 
Missing schema with b+ corruption error in cache interceptor)

> Empty binary object is incorrect written/read/modified
> --
>
> Key: IGNITE-16318
> URL: https://issues.apache.org/jira/browse/IGNITE-16318
> Project: Ignite
>  Issue Type: Bug
>  Components: binary, cache
>Reporter: Andrey Belyaev
>Assignee: Taras Ledkov
>Priority: Major
>
> Cache interceptor cause problem of missing binary scheme if sql insert 
> contains only entry key fields and no one value field pass in query.
> There is exception happened if inside interceptor we try to make 
> BinaryObjectBuilder from entry value BinaryObject (#toBuilder()) and then 
> request builder for any field.
> Interceptor example:
> {code:java}
> new CacheInterceptorAdapter() {
> @Nullable
> @Override public BinaryObject onBeforePut(Cache.Entry BinaryObject> entry, BinaryObject newVal) {
> BinaryObjectBuilder newValBuilder = newVal.toBuilder();
> String bValue = newValBuilder.getField("B"); // Cannot find schema 
> for object with compact footer
> // ...
> }
> } {code}
> It's a pretty serious error which currupt and shutdown grid.
> Code example:
> {code:java}
> LinkedHashMap fields = new LinkedHashMap<>();
> fields.put("A", "java.lang.String");
> fields.put("B", "java.lang.String");
> fields.put("C", "java.lang.String");
> Set keyFields = new LinkedHashSet<>();
> keyFields.add("A");
> CacheInterceptorAdapter cacheInterceptorAdapter = new 
> CacheInterceptorAdapter() {
> @Nullable
> @Override public BinaryObject onBeforePut(Cache.Entry BinaryObject> entry, BinaryObject newVal) {
> BinaryObjectBuilder newValBuilder = newVal.toBuilder();
> String bValue = newValBuilder.getField("B"); // Cannot find schema 
> for object with compact footer
> if (bValue == null || bValue.isEmpty()) {
> newValBuilder.setField("B", "Some value");
> }
> return newValBuilder.build();
> }
> };
> CacheConfiguration cacheConfiguration = new CacheConfiguration<>()
> .setName("TEST_CACHE")
> .setKeyConfiguration(new CacheKeyConfiguration()
> .setTypeName("TEST_CACHE_KEY")
> .setAffinityKeyFieldName("InternalId"))
> .setQueryEntities(Collections.singleton(new QueryEntity()
> .setTableName("TEST_CACHE")
> .setKeyType("TEST_CACHE_KEY")
> .setValueType("TEST_CACHE_VALUE")
> .setFields(fields)
> .setKeyFields(keyFields)))
> .setInterceptor(cacheInterceptorAdapter);
> IgniteConfiguration igniteConfiguration = new IgniteConfiguration()
> .setCacheConfiguration(cacheConfiguration);
> try (Ignite ignite = Ignition.start(igniteConfiguration)) {
> IgniteCache testCache = ignite.getOrCreateCache("TEST_CACHE");
> // putSql
> testCache.query(new SqlFieldsQuery("INSERT INTO TEST_CACHE (A) VALUES 
> ('1234')"));
> }{code}
> Exception:
> {code:java}
> [2022-01-18 13:12:32,727][ERROR][main][CacheObjectBinaryProcessorImpl] Timed 
> out while waiting for schema update [typeId=1147851335, schemaId=0]
> [2022-01-18 13:12:32,730][ERROR][main][root] Critical system error detected. 
> Will be handled accordingly to configured handler 
> [hnd=StopNodeOrHaltFailureHandler [tryStop=false, timeout=0, 
> super=AbstractFailureHandler [ignoredFailureTypes=UnmodifiableSet 
> [SYSTEM_WORKER_BLOCKED, SYSTEM_CRITICAL_OPERATION_TIMEOUT]]], 
> failureCtx=FailureContext [type=CRITICAL_ERROR, err=class 
> o.a.i.i.processors.cache.persistence.tree.CorruptedTreeException: B+Tree is 
> corrupted [groupId=-838655627, pageIds=[844420635166307], msg=Runtime failure 
> on search row: SearchRow [key=TEST_CACHE_KEY [idHash=100929741, 
> hash=-639470899, A=123], hash=-639470899, cacheId=0
> class 
> org.apache.ignite.internal.processors.cache.persistence.tree.CorruptedTreeException:
>  B+Tree is corrupted [groupId=-838655627, pageIds=[844420635166307], 
> msg=Runtime failure on search row: SearchRow [key=TEST_CACHE_KEY 
> [idHash=100929741, hash=-639470899, A=123], hash=-639470899, cacheId=0]]
>     at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.corruptedTreeException(BPlusTree.java:6237)
>     at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.invoke(BPlusTree.java:1988)
>     at 
> org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.invoke0(IgniteCacheOffheapManagerImpl.java:1742)
>     at 
>