Arijit Dey
08/25/2026, 8:55 PMRocky
08/25/2026, 8:56 PMTabletChecker is designed to be safety-first: it refuses to use a replica as a clone source if it is deemed "unhealthy." In your case, LastFailedVersion > Version (a "version wedge") signals to the FE that the replica is in an inconsistent state (a publish task failed or is pending). Because this is your sole surviving replica, the scheduler is trapped: it cannot find a healthy source to backfill the missing replicas, and it won't trust the one you have.
Here are the answers to your specific questions and the recommended recovery path:
1. Condition for Scheduling Eligibility
The TabletChecker requires a healthy replica to act as a clone source. A replica is considered healthy only if:
* Its state is NORMAL.
* It is not marked as IsBad.
* Critical: Its Version matches the FE's expected CommittedVersion, and it has no LastFailedVersion (or Version >= LastFailedVersion).
When your sole replica has a version gap, the FE classifies it as REPLICA_MISSING (due to being 1/3) but then immediately disqualifies the only candidate source because of the version mismatch. This is why you see the "no healthy replicas, can not repair" log line even when the status is NORMAL.
2. Clearing LastFailedVersion in Place
There is no "soft" SQL command to specifically nullify LastFailedVersion while keeping the replica. LastFailedVersion is typically cleared by the BE only after a successful publish of a higher version. Since your transactions are failing with quorum: 0<1, the BE never receives a successful publish command to clear that state.
Recommended Supported Path (Metadata Alignment):
Use the ADMIN SET PARTITION VERSION command. This is the primary way to force the FE and BE metadata to align on a specific version, effectively "forgetting" the failed versions.
sql
-- Sync the FE's view of the partition version to the actual physical version on the BE
ADMIN SET PARTITION VERSION PROPERTIES (
"partition_id" = "57707083",
"visible_version" = "453"
);
Note: Replace the ID and version with the specific values for each affected tablet/partition.
After running this, the FE will update its metadata. Upon the next report cycle (or after a BE restart), the "failed" state should be cleared, making the replica eligible as a clone source.
3. Forced Clone / Recovery Path
There is no "forced" clone command for shared-nothing clusters that bypasses health checks, as doing so could silently propagate data corruption.
If ADMIN SET PARTITION VERSION does not resolve the wedge, follow this manual recovery sequence:
1. Identify the Row Count: Confirm the row count on the surviving replica via SHOW PROC '/dbs/...'.
2. Export/Backup (Optional but Recommended): If the data is critical, try to run a SELECT INTO OUTFILE or BACKUP for the affected tables. Even if the tablet is in an unhealthy state for writes, it may still be readable for queries if you set set variable set_replication_num = 1; (depending on version support) or query it directly.
3. Manual Meta Surgery (Last Resort):
If you are comfortable with meta_tool, you can manually update the tablet header on the BE disk. This is the "meta-tool level surgery" you mentioned:
* Stop the BE.
* Use meta_tool --operation=update_meta to set the version and max_version to the same value (e.g., 453) and clear the failed version flag.
* Start the BE.
* The FE should now see a consistent replica and begin cloning the missing 2/3.
Summary of Actions
1. Try ADMIN SET PARTITION VERSION for one of the affected partitions first. This is the only "supported" way to reset the version state.
2. Verify via SHOW PROC: Check if LastFailedVersion returns to -1 or matches Version.Rocky
08/25/2026, 8:56 PMREPAIR task should appear in information_schema.fe_tablet_schedules automatically within a few minutes.
If these steps do not work, it is highly likely you are encountering a metadata inconsistency bug specific to the 4.1.x branch (which introduced significant changes to tablet distribution). In that case, you should provide the fe.log and the output of SHOW TABLET <id> to the StarRocks community Slack for a developer to inspect the FE's internal TabletInvertedIndex state.
References
• faq/loading/Loading_faq.md
• knowledge/admin_and_operation/shared_data_compaction.md