Hi,

I have a question while using gridgain 8.8.9.

Problem scenario: The Ignite server of a node. Start a standard client, create 
a Table, and continuously insert data into the Table using the Insert 
statement. At the same time as inserting data, another standard client started 
and deleted the table. 
Problem phenomenon: The program executing the Insert statement operation is 
stuck and there are no error returns.  
Error content: This error may not necessarily occur, but there are two possible 
scenarios: 
1.The first scenario: Most of the time, programs executing Insert statements 
will report the following error: 
Exception in thread "main" javax.cache.CacheException: Failed to execute DML 
statement [stmt=INSERT INTO PRODUCT (ID, NAME, PRODUCTCODE, DISTRICT, NUMBER) 
VALUES (?, ?, ?, ?, ?);, params=[52043, product52043, p52043, a product, 
1000000]] at 
org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.query(IgniteCacheProxyImpl.java:829)
 at 
org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.query(IgniteCacheProxyImpl.java:762)
 at 
org.apache.ignite.internal.processors.cache.GatewayProtectedCacheProxy.query(GatewayProtectedCacheProxy.java:385)
 at com.example.batchkazhu2.example.Example01.main(Example01.java:32) Caused 
by: class org.apache.ignite.internal.processors.query.IgniteSQLException: 
Failed to execute DML statement [stmt=INSERT INTO PRODUCT (ID, NAME, 
PRODUCTCODE, DISTRICT, NUMBER) VALUES (?, ?, ?, ?, ?);, params=[52043, 
product52043, p52043, a product, 1000000]] at 
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.executeDml(IgniteH2Indexing.java:1356)
 at 
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.querySqlFields(IgniteH2Indexing.java:1231)
 at 
org.apache.ignite.internal.processors.query.GridQueryProcessor$2.applyx(GridQueryProcessor.java:2877)
 at 
org.apache.ignite.internal.processors.query.GridQueryProcessor$2.applyx(GridQueryProcessor.java:2873)
 at 
org.apache.ignite.internal.util.lang.IgniteOutClosureX.apply(IgniteOutClosureX.java:35)
 at 
org.apache.ignite.internal.processors.query.GridQueryProcessor.executeQuery(GridQueryProcessor.java:3425)
 at 
org.apache.ignite.internal.processors.query.GridQueryProcessor.lambda$querySqlFields$3(GridQueryProcessor.java:2893)
 at 
org.apache.ignite.internal.processors.query.GridQueryProcessor.executeQuerySafe(GridQueryProcessor.java:2931)
 at 
org.apache.ignite.internal.processors.query.GridQueryProcessor.querySqlFields(GridQueryProcessor.java:2867)
 at 
org.apache.ignite.internal.processors.query.GridQueryProcessor.querySqlFields(GridQueryProcessor.java:2794)
 at 
org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.query(IgniteCacheProxyImpl.java:814)
 ... 3 more Caused by: class 
org.apache.ignite.internal.processors.cache.CachePartialUpdateCheckedException: 
Failed to update keys (retry update if possible).: [52043] at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractUpdateFuture.onPrimaryError(GridNearAtomicAbstractUpdateFuture.java:420)
 at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicSingleUpdateFuture.onPrimaryResponse(GridNearAtomicSingleUpdateFuture.java:257)
 at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.processNearAtomicUpdateResponse(GridDhtAtomicCache.java:3168)
 at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.access$500(GridDhtAtomicCache.java:151)
 at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache$6.apply(GridDhtAtomicCache.java:305)
 at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache$6.apply(GridDhtAtomicCache.java:300)
 at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.processMessage(GridCacheIoManager.java:1150)
 at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:591)
 at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:392)
 at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:318)
 at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$100(GridCacheIoManager.java:109)
 at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:308)
 at 
org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1725)
 at 
org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1332)
 at 
org.apache.ignite.internal.managers.communication.GridIoManager.access$4800(GridIoManager.java:157)
 at 
org.apache.ignite.internal.managers.communication.GridIoManager$8.execute(GridIoManager.java:1217)
 at 
org.apache.ignite.internal.managers.communication.TraceRunnable.run(TraceRunnable.java:54)
 at 
org.apache.ignite.internal.util.StripedExecutor$Stripe.body(StripedExecutor.java:564)
 at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:119) 
at java.lang.Thread.run(Thread.java:748) Suppressed: class 
org.apache.ignite.IgniteCheckedException: Failed to update keys on primary 
node. at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.UpdateErrors.addFailedKeys(UpdateErrors.java:124)
 at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateResponse.addFailedKeys(GridNearAtomicUpdateResponse.java:339)
 at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.updateAllAsyncInternal0(GridDhtAtomicCache.java:1783)
 at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.updateAllAsyncInternal(GridDhtAtomicCache.java:1679)
 at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.processNearAtomicUpdateRequest(GridDhtAtomicCache.java:3146)
 at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.access$400(GridDhtAtomicCache.java:151)
 at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache$5.apply(GridDhtAtomicCache.java:286)
 at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache$5.apply(GridDhtAtomicCache.java:281)
 at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.processMessage(GridCacheIoManager.java:1171)
 at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:612)
 at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:413)
 at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:319)
 at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$100(GridCacheIoManager.java:110)
 at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:309)
 ... 8 more Suppressed: class 
org.apache.ignite.internal.processors.cache.CacheStoppedException: Failed to 
perform cache operation (cache is stopped): PRODUCT ... 20 more 
The server does not report any errors. 
2.Second scenario: Occasionally, the following errors can be reproduced: The 
program that executes the Insert statement does not report an error, The server 
node reported the following error: 
 四月 03, 2023 5:27:43 下午 org.apache.ignite.logger.java.JavaLogger error 严重: 
Received message without registered handler (will ignore) [futId=2, 
writeVer=null, msg=GridNearAtomicSingleUpdateFilterRequest 
[filter=[o.a.i.i.processors.cache.CacheEntrySerializablePredicate@6ff66670], 
parent=GridNearAtomicSingleUpdateRequest [key=null, 
parent=GridNearAtomicAbstractSingleUpdateRequest [nodeId=null, futId=2, 
topVer=AffinityTopologyVersion [topVer=2, minorTopVer=2], 
parent=GridNearAtomicAbstractUpdateRequest [res=null, 
flags=needRes|keepBinary]]]], node=01ece6ae-c041-4325-ae6a-810233d0a684, 
locTopVer=AffinityTopologyVersion [topVer=4, minorTopVer=0], 
msgTopVer=AffinityTopologyVersion [topVer=2, minorTopVer=2], desc=null] 
Registered listeners: 95945896=[GridNearAtomicAbstractUpdateRequest handler 
[msgIdx=0], GridNearAtomicUpdateResponse handler [msgIdx=1], 
GridDhtAtomicUpdateRequest handler [msgIdx=2], GridDhtAtomicUpdateResponse 
handler [msgIdx=3], GridDhtAtomicDeferredUpdateResponse handler [msgIdx=4], 
GridDhtAtomicNearResponse handler [msgIdx=5], GridNearAtomicCheckUpdateRequest 
handler [msgIdx=6]] 四月 03, 2023 5:27:43 下午 
org.apache.ignite.logger.java.JavaLogger error 严重: Failed to process failed 
message: java.lang.NullPointerException java.lang.NullPointerException at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.UpdateErrors.prepareMarshal(UpdateErrors.java:134)
 at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateResponse.prepareMarshal(GridNearAtomicUpdateResponse.java:370)
 at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.onSend(GridCacheIoManager.java:1239)
 at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.send(GridCacheIoManager.java:1274)
 at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.send(GridCacheIoManager.java:1325)
 at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.sendResponseOnFailedMessage(GridCacheIoManager.java:652)
 at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.processFailedMessage(GridCacheIoManager.java:1065)
 at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:403)
 at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:319)
 at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$100(GridCacheIoManager.java:110)
 at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:309)
 at 
org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1725)
 at 
org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1332)
 at 
org.apache.ignite.internal.managers.communication.GridIoManager.access$4800(GridIoManager.java:157)
 at 
org.apache.ignite.internal.managers.communication.GridIoManager$8.execute(GridIoManager.java:1217)
 at 
org.apache.ignite.internal.managers.communication.TraceRunnable.run(TraceRunnable.java:54)
 at 
org.apache.ignite.internal.util.StripedExecutor$Stripe.body(StripedExecutor.java:564)
 at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:119) 
at java.lang.Thread.run(Thread.java:748) 
 test code:
public class StartServer { 
  public static void main(String[] args) {
     Ignite ignite = Ignition.start(); } 
} 
public class StartClient01 { 
 public static void main(String[] args) {
 Ignition.setClientMode(true); 
 Ignite ignite = Ignition.start(); 
 IgniteCache<Object, Object> cache = ignite.getOrCreateCache("dummy"); 
 cache.query(new SqlFieldsQuery("CREATE TABLE PRODUCT (" + " ID INT(11)," + " 
NAME CHAR(35)," + " PRODUCTCODE CHAR(10)," + " DISTRICT CHAR(100)," + " NUMBER 
INT(11)," + " PRIMARY KEY (ID)" + ") WITH \"TEMPLATE=REPLICATED, 
CACHE_NAME=PRODUCT\";")); 
 for (int i = 1; i <= 1000000; ++i) { 
 cache.query(new SqlFieldsQuery("INSERT INTO PRODUCT (ID, NAME, PRODUCTCODE, 
DISTRICT, NUMBER) VALUES (?, ?, ?, ?, ?);") .setArgs(i, "product" + i, "p" + i, 
"a product", 1000000)).getAll(); System.out.println(i); } 
 } } 


 public class StartClient02 { 
 public static void main(String[] args) {
 Ignition.setClientMode(true);
 Ignite ignite = Ignition.start(); 
 IgniteCache<Object, Object> cache = ignite.getOrCreateCache("dummy"); 
 cache.query(new SqlFieldsQuery("DROP TABLE IF EXISTS PRODUCT;")).getAll(); 
 System.out.println("success.."); 
 ignite.close(); } } 
 Version: The testing environment is using Gridgain Community Edition 8.8.9. 
After reviewing the Ignite source code, it should also have the same issue. 
From this error message, it can be inferred that it was caused by another 
client's “Drop” cache operation. However, I believe that when encountering this 
situation during the Insert operation, it should be returned in a timely 
manner. Is there any solution?

Thanks. 

I'll wait for your reply .

Reply via email to