From b08e08b3ba30864aa45830004fb8db49c9fdffd6 Mon Sep 17 00:00:00 2001 From: morningman Date: Thu, 14 May 2020 09:25:51 +0800 Subject: [PATCH] first --- .../apache/doris/qe/AuditEventProcessor.java | 1 + .../transaction/GlobalTransactionMgr.java | 26 +++++++++++-------- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/fe/src/main/java/org/apache/doris/qe/AuditEventProcessor.java b/fe/src/main/java/org/apache/doris/qe/AuditEventProcessor.java index bc621e7968..a648dc988b 100644 --- a/fe/src/main/java/org/apache/doris/qe/AuditEventProcessor.java +++ b/fe/src/main/java/org/apache/doris/qe/AuditEventProcessor.java @@ -56,6 +56,7 @@ public class AuditEventProcessor { public void start() { workerThread = new Thread(new Worker(), "AuditEventProcessor"); + workerThread.setDaemon(true); workerThread.start(); } diff --git a/fe/src/main/java/org/apache/doris/transaction/GlobalTransactionMgr.java b/fe/src/main/java/org/apache/doris/transaction/GlobalTransactionMgr.java index 5f8fd92fd5..456c9277b9 100644 --- a/fe/src/main/java/org/apache/doris/transaction/GlobalTransactionMgr.java +++ b/fe/src/main/java/org/apache/doris/transaction/GlobalTransactionMgr.java @@ -79,11 +79,15 @@ public class GlobalTransactionMgr implements Writable { } public void addDatabaseTransactionMgr(Long dbId) { - dbIdToDatabaseTransactionMgrs.putIfAbsent(dbId, new DatabaseTransactionMgr(dbId, catalog, idGenerator)); + if (dbIdToDatabaseTransactionMgrs.putIfAbsent(dbId, new DatabaseTransactionMgr(dbId, catalog, idGenerator)) == null) { + LOG.debug("add database transaction manager for db {}", dbId); + } } public void removeDatabaseTransactionMgr(Long dbId) { - dbIdToDatabaseTransactionMgrs.remove(dbId); + if (dbIdToDatabaseTransactionMgrs.remove(dbId) != null) { + LOG.debug("remove database transaction manager for db {}", dbId); + } } public long beginTransaction(long dbId, List tableIdList, String label, TxnCoordinator coordinator, LoadJobSourceType sourceType, @@ -355,19 +359,19 @@ public class GlobalTransactionMgr implements Writable { } public void readFields(DataInput in) throws IOException { - try { - int numTransactions = in.readInt(); - for (int i = 0; i < numTransactions; ++i) { - TransactionState transactionState = new TransactionState(); - transactionState.readFields(in); + int numTransactions = in.readInt(); + for (int i = 0; i < numTransactions; ++i) { + TransactionState transactionState = new TransactionState(); + transactionState.readFields(in); + try { DatabaseTransactionMgr dbTransactionMgr = getDatabaseTransactionMgr(transactionState.getDbId()); dbTransactionMgr.unprotectUpsertTransactionState(transactionState, true); + } catch (AnalysisException e) { + LOG.warn("failed to get db transaction manager for txn: {}", transactionState); + throw new IOException("Read transaction states failed", e); } - idGenerator.readFields(in); - } catch (AnalysisException e) { - throw new IOException("Read transaction states failed", e); } - + idGenerator.readFields(in); } public TransactionState getTransactionStateByCallbackIdAndStatus(long dbId, long callbackId, Set status) {