github-actions[bot] commented on code in PR #68514:
URL: https://github.com/apache/doris/pull/68514#discussion_r4140304147


##########
fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java:
##########
@@ -2466,6 +2466,12 @@ private boolean createOlapTable(Database db, 
CreateTableInfo createTableInfo) th
                 
db.getBinlogConfigsForCreateTable(createTableInfo.getProperties());
         BinlogConfig dbBinlogConfig = binlogConfigs.first;
         BinlogConfig createTableBinlogConfig = binlogConfigs.second;
+        // Check the effective config, including database defaults, before 
adding hidden columns
+        // or allocating any table/tablet metadata.
+        if (!Config.enable_feature_binlog && 
createTableBinlogConfig.isEnableForStreaming()) {

Review Comment:
   [P2] Preserve ROW properties when checking CREATE TABLE LIKE. With 
`enable_feature_binlog=false` after restart, an existing ROW table's generated 
DDL omits binlog properties in `Env.addOlapTablePropertyInfo`; LIKE reparses 
that DDL, so this guard sees a plain config and creates a plain clone instead 
of rejecting the requested ROW clone. The same condition also hides the 
properties in SHOW CREATE. Preserve the source properties in generated DDL 
regardless of the switch, then let this guard reject the clone; add a LIKE case 
to the gate test.



##########
fe/fe-core/src/main/java/org/apache/doris/cloud/transaction/CloudGlobalTransactionMgr.java:
##########
@@ -871,7 +871,19 @@ private TransactionState 
commitTxn(CommitTxnRequest.Builder builder, List<Table>
         // when ready to send, while retaining the existing table locks and 
callback cleanup scope.
         Database database = 
Env.getCurrentInternalCatalog().getDbOrMetaException(builder.getDbId());
         Set<Long> commitTsoTableIds = 
tableList.stream().map(Table::getId).collect(Collectors.toSet());
-        long commitTso = TransactionUtil.getCommitTSO(transactionId, database, 
commitTsoTableIds);
+        long commitTso;
+        try {
+            commitTso = TransactionUtil.getCommitTSO(transactionId, database, 
commitTsoTableIds);
+        } catch (TransactionCommitFailedException e) {
+            // A previous commit may have succeeded before its response was 
lost. Recover its TSO
+            // and let the existing commit RPC handle idempotency, lazy 
publish and 2PC status checks.
+            TransactionState persisted = 
getTransactionState(builder.getDbId(), transactionId);

Review Comment:
   [P2] Avoid replaying a COMMITTED lazy transaction's attachment on TSO 
fallback. A lazy commit persists COMMITTED together with routine-load/streaming 
progress, then converts rowsets before a separate write marks it VISIBLE. If 
that visibility write fails and TSO allocation also fails on retry, this branch 
resends `commitTxn`; zero remaining temp rowsets route the meta-service to 
immediate commit, which does not short-circuit COMMITTED and adds the 
attachment counters again. Please publish/observe the existing commit or make 
its retry path idempotent; the mocked VISIBLE response in the new test misses 
this state.



-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to