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 .
