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]