cosven commented on code in PR #49204:
URL: https://github.com/apache/doris/pull/49204#discussion_r2024203791


##########
regression-test/suites/fault_injection_p0/cloud/test_cloud_mow_delete_bitmap_lock_case.groovy:
##########
@@ -420,8 +526,179 @@ suite("test_cloud_mow_stream_load_with_commit_fail", 
"nonConcurrent") {
             assertEquals(last_total_retry + 7, total_retry)
             qt_sql12 """ select * from ${tableName} order by id"""
         }
+
+        //7. test parallel load
+        GetDebugPoint().disableDebugPointForAllFEs('FE.mow.check.lock.release')
+        setFeConfigTemporary(customFeConfig2) {
+            
GetDebugPoint().enableDebugPointForAllBEs("CloudEngineCalcDeleteBitmapTask.execute.enable_wait")
+            def threads = []
+            def now = System.currentTimeMillis()
+            for (int k = 0; k <= 1; k++) {
+                logger.info("start load thread:" + k)
+                threads.add(Thread.startDaemon {
+                    do_stream_load()
+                })
+            }
+            for (Thread th in threads) {
+                th.join()
+            }
+            def time_cost = System.currentTimeMillis() - now
+            log.info("time_cost(ms): ${time_cost}")
+            assertTrue(time_cost > 6000, "wait time should bigger than 6s")
+
+            threads = []
+            now = System.currentTimeMillis()
+            for (int k = 0; k <= 1; k++) {
+                logger.info("start insert into thread:" + k)
+                threads.add(Thread.startDaemon {
+                    do_insert_into()
+                })
+            }
+            for (Thread th in threads) {
+                th.join()
+            }
+            time_cost = System.currentTimeMillis() - now
+            log.info("time_cost(ms): ${time_cost}")
+            assertTrue(time_cost > 6000, "wait time should bigger than 6s")
+            
GetDebugPoint().disableDebugPointForAllBEs("CloudEngineCalcDeleteBitmapTask.execute.enable_wait")
+
+        }
+        //8. test insert into timeout config
+        setFeConfigTemporary(customFeConfig3) {
+            try {
+                
GetDebugPoint().enableDebugPointForAllFEs("CloudGlobalTransactionMgr.tryCommitLock.timeout",
 [sleep_time: 15])
+                sql """ set global insert_visible_timeout_ms=15000; """
+                sql """ INSERT INTO ${tableName} (id, name, score) VALUES (1, 
"Emily", 25),(2, "Benjamin", 35);"""
+            } catch (Exception e) {
+                logger.info("failed: " + e.getMessage())
+                assertTrue(e.getMessage().contains("test get table cloud 
commit lock timeout"))
+            } finally {
+                
GetDebugPoint().disableDebugPointForAllFEs("CloudGlobalTransactionMgr.tryCommitLock.timeout")
+                sql """ set global insert_visible_timeout_ms=60000; """
+            }
+        }
+        setFeConfigTemporary(customFeConfig4) {
+            try {
+                
GetDebugPoint().enableDebugPointForAllBEs("CloudEngineCalcDeleteBitmapTask.execute.enable_wait")
+                sql """ INSERT INTO ${tableName} (id, name, score) VALUES (1, 
"Emily", 25),(2, "Benjamin", 35);"""
+            } catch (Exception e) {
+                logger.info("failed: " + e.getMessage())
+                assertTrue(e.getMessage().contains("Failed to calculate delete 
bitmap. Timeout"))
+            } finally {
+                
GetDebugPoint().disableDebugPointForAllFEs("CloudEngineCalcDeleteBitmapTask.execute.enable_wait")
+            }
+        }
+
+        //9. when load hold delete bitmap lock, compaction and schema change 
will fail and retry

Review Comment:
   关于 3.2,看了文档里面的备注。3.2 这里满足不了,从用户侧看,应该算是一个 bug。
   
   ------
   
   另外,我看 rpc 的重试逻辑 `Status CloudMetaMgr::get_delete_bitmap_update_lock` 
这个里面压根就没有考虑超时时间的问题,只考虑了次数。感觉它就是忽略了超时这个问题。



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to