Fix bug that 2 same stream load jobs may both be able to executed successfully (#1690)
This will cause 2 jobs trying to write same file, and cause file damaged.
This commit is contained in:
@ -24,11 +24,11 @@ import org.apache.doris.common.AnalysisException;
|
||||
import org.apache.doris.common.DdlException;
|
||||
import org.apache.doris.common.LabelAlreadyUsedException;
|
||||
import org.apache.doris.common.MetaNotFoundException;
|
||||
import org.apache.doris.load.Load;
|
||||
import org.apache.doris.metric.LongCounterMetric;
|
||||
import org.apache.doris.metric.MetricRepo;
|
||||
import org.apache.doris.persist.EditLog;
|
||||
import org.apache.doris.task.MasterTaskExecutor;
|
||||
import org.apache.doris.thrift.TUniqueId;
|
||||
import org.apache.doris.transaction.BeginTransactionException;
|
||||
import org.apache.doris.transaction.GlobalTransactionMgr;
|
||||
import org.apache.doris.transaction.TransactionState;
|
||||
@ -104,7 +104,8 @@ public class LoadJobTest {
|
||||
LoadJob loadJob = new BrokerLoadJob();
|
||||
new Expectations() {
|
||||
{
|
||||
globalTransactionMgr.beginTransaction(anyLong, anyString, anyLong, anyString, (TransactionState.LoadJobSourceType) any, anyLong, anyLong);
|
||||
globalTransactionMgr.beginTransaction(anyLong, anyString, (TUniqueId) any, anyString,
|
||||
(TransactionState.LoadJobSourceType) any, anyLong, anyLong);
|
||||
result = 1;
|
||||
}
|
||||
};
|
||||
|
||||
@ -17,7 +17,10 @@
|
||||
|
||||
package org.apache.doris.transaction;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import org.apache.doris.catalog.Catalog;
|
||||
import org.apache.doris.catalog.CatalogTestUtil;
|
||||
@ -314,7 +317,7 @@ public class GlobalTransactionMgrTest {
|
||||
KafkaTaskInfo routineLoadTaskInfo = new KafkaTaskInfo(UUID.randomUUID(), 1L, "defualt_cluster", partitionIdToOffset);
|
||||
Deencapsulation.setField(routineLoadTaskInfo, "txnId", 1L);
|
||||
routineLoadTaskInfoList.add(routineLoadTaskInfo);
|
||||
TransactionState transactionState = new TransactionState(1L, 1L, "label", 1L,
|
||||
TransactionState transactionState = new TransactionState(1L, 1L, "label", null,
|
||||
LoadJobSourceType.ROUTINE_LOAD_TASK, "be1", routineLoadJob.getId(),
|
||||
Config.stream_load_default_timeout_second);
|
||||
transactionState.setTransactionStatus(TransactionStatus.PREPARE);
|
||||
@ -380,7 +383,7 @@ public class GlobalTransactionMgrTest {
|
||||
KafkaTaskInfo routineLoadTaskInfo = new KafkaTaskInfo(UUID.randomUUID(), 1L, "defualt_cluster", partitionIdToOffset);
|
||||
Deencapsulation.setField(routineLoadTaskInfo, "txnId", 1L);
|
||||
routineLoadTaskInfoList.add(routineLoadTaskInfo);
|
||||
TransactionState transactionState = new TransactionState(1L, 1L, "label", 1L,
|
||||
TransactionState transactionState = new TransactionState(1L, 1L, "label", null,
|
||||
LoadJobSourceType.ROUTINE_LOAD_TASK, "be1", routineLoadJob.getId(),
|
||||
Config.stream_load_default_timeout_second);
|
||||
transactionState.setTransactionStatus(TransactionStatus.PREPARE);
|
||||
|
||||
Reference in New Issue
Block a user