If you have a problem with GridGain, you should ask them for support. Please 
let us know if you can reproduce in a recent version of Ignite.

> On 4 Apr 2023, at 03:10, 周倩 <[email protected]> wrote:
> 
> 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