github-actions[bot] commented on code in PR #65373:
URL: https://github.com/apache/doris/pull/65373#discussion_r3568621948
##########
regression-test/plugins/plugin_compaction.groovy:
##########
@@ -177,21 +202,107 @@ Suite.metaClass.trigger_and_wait_compaction = { String
table_name, String compac
}
def success_time_unchanged = (oldStatus["last
${compaction_type} success time"] == tabletStatus["last ${compaction_type}
success time"])
def failure_time_unchanged = (oldStatus["last
${compaction_type} failure time"] == tabletStatus["last ${compaction_type}
failure time"])
- def currentCompactionTimestampChanged =
!success_time_unchanged || !failure_time_unchanged
- def compactionFinished =
completedByBaseCompactionAfterDeleteVersion ||
- (!handedOffToBaseCompactionAfterDeleteVersion &&
currentCompactionTimestampChanged)
+ def cumulative_completion_count_unchanged = compaction_type !=
"cumulative" ||
+ oldStatus["cumulative compaction completed count"] ==
+ tabletStatus["cumulative compaction completed
count"]
+ def currentCompactionStatus = tabletStatus["last
${compaction_type} status"]
+ def statusOk =
"${currentCompactionStatus}".toLowerCase().contains("[ok]")
+ def terminalStatusChanged = !failure_time_unchanged ||
+ !cumulative_completion_count_unchanged
+ def compactionFailureNonFatal = terminalStatusChanged &&
Review Comment:
This still has a no-op timeout case on the shared-nothing manual cumulative
path. The HTTP action returns `Success` when the detached callback has not
finished after two seconds, so the helper adds the tablet to
`triggered_tablets`. If that callback then returns from
`CumulativeCompaction::prepare_compact()` with
`CUMULATIVE_NO_SUITABLE_VERSION`, the direct manual path only refreshes `last
cumulative status`; it never reaches `execute_compact()` to increment
`cumulative compaction completed count`, and unlike
`Tablet::prepare_compaction_and_calculate_permits()` it does not write `last
cumulative failure time`. Once `/run_status` is false, `terminalStatusChanged`
is still false, so the fresh `E-2000` no-op status is ignored and this helper
can wait until timeout. Please record a per-attempt terminal signal for this
direct prepare-stage cumulative no-op, or otherwise let the helper safely
accept a changed no-op status from the same manual attempt.
--
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]