github-actions[bot] commented on code in PR #68479:
URL: https://github.com/apache/doris/pull/68479#discussion_r4344256380
##########
fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java:
##########
@@ -3349,6 +3350,10 @@ public void validateForFlexiblePartialUpdate() throws
UserException {
if (hasVariantColumns()) {
throw new UserException("Flexible partial update can only support
table without variant columns.");
}
+ if (getIndexNumber() > 1) {
Review Comment:
[P2] Protect the index snapshot in Routine Load validation
`getIndexNumber()` copies a filtered view of the ordinary `indexIdToMeta`
HashMap. Unlike runtime load planning, `CreateRoutineLoadInfo.checkDBTable()`
and `RoutineLoadJob.validateFlexiblePartialUpdateForAlter()` reach this
validator without the table read lock (ALTER holds only the job lock). If the
background rollup job inserts its index through
`RollupJobV2.addRollupIndexToCatalog()` after the snapshot iterator is created,
iteration can throw `ConcurrentModificationException`, so overlapping Routine
Load CREATE/ALTER fails with an internal error instead of a consistent
eligibility result. The preceding checks only inspect the base schema and do
not introduce this live-map traversal. Protect this snapshot in the Routine
Load callers while preserving the existing table-before-job lock order.
--
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]