ADMIN SKIP COMMITTED TRANSACTION
Force-abort a transaction that is stuck in the COMMITTED state on a shared-data (lake) table by performing a no-op publish: the transaction's data contribution is discarded, while the partition's visible version still advances by writing a new tablet metadata file that carries no data changes from this transaction.
This is an operator-only escape hatch for unblocking a publish queue that is permanently stalled (for example by a missing txnlog, a lost segment / SST file, or a persistent storage outage). It will discard the affected transaction's data. Use only when normal retry cannot recover, and prefer it over destructive recovery paths such as dropping the partition.
Aborting a COMMITTED transaction is irreversible and causes data loss for that transaction. The transaction record is still finalized as VISIBLE to keep the partition's version sequence intact, but it is internally marked as a no-op publish.
This operation requires the SYSTEM-level OPERATE privilege. You can follow the instructions in GRANT to grant this privilege.
Syntaxβ
ADMIN SKIP COMMITTED TRANSACTION <txn_id> [REASON '<text>']
Parametersβ
| Parameter | Required | Description |
|---|---|---|
txn_id | Yes | The numeric transaction ID. Find it with SHOW TRANSACTION or in the FE log. |
REASON '<text>' | No | A free-form reason for the abort, recorded in the FE audit log. Strongly recommended so the action can be tracked back during incident review. |
Constraints (phase 1)β
-
Feature is gated by FE config. The statement is rejected unless the FE config
enable_admin_skip_committed_txnis set totrue. The default isfalseto prevent accidental data loss. Set it via:ADMIN SET FRONTEND CONFIG ("enable_admin_skip_committed_txn" = "true");Set it back to
falseafter the recovery is finished. -
The transaction must be in the
COMMITTEDstate. Transactions inPREPAREDtime out on their own (driven by the txntimeoutsetting) or can be cancelled via the loader-specific path β for exampleCANCEL LOADfor broker / spark / routine load, orPOST /api/transaction/rollbackfor stream load. Transactions already inVISIBLEcannot be undone. -
Only shared-data (cloud-native) tables with
file_bundling=trueare supported. Withfile_bundling, the partition's metadata is written atomically by the aggregator, so the no-op publish either takes effect for the whole partition or not at all. Tables withoutfile_bundlingmay end up in a partial-publish state and are rejected at the entrypoint. -
Only load and lake-compaction transactions are supported in this release. Alter / schema-change transactions are not supported yet and return an error if attempted.
Behaviorβ
- FE validates the state, source type, and table properties.
- FE persists a no-op-publish marker on the transaction in the edit log.
- The next tick of the publish daemon picks up the marker and sends the publish RPC to BE with the no-op-publish flag set.
- BE writes a tablet metadata file at the transaction's target version whose content equals the base version (no data changes from this transaction). The aggregator under
file_bundlingmakes this write atomic across the whole partition. - The partition's visible version advances to the transaction's target version. Subsequent transactions on the table can now publish normally.
- The original transaction is recorded as
VISIBLE, but its no-op-publish marker is preserved for audit.
Race resolution: if the in-flight publish RPC happened to succeed first, the transaction becomes VISIBLE normally and the marker is a no-op (the data lands safely instead of being discarded). This is recorded in the FE log.
Auditingβ
SHOW PROC '/transactions/<db_name>/finished' exposes two trailing columns for inspecting whether the abort actually took effect:
NoOpPublishβtrue/false, whether the transaction was finalized via the no-op publish pathNoOpPublishReasonβ the free-formREASONtext supplied to theADMIN SKIP COMMITTED TRANSACTIONstatement
Use these to retroactively confirm whether a recovery action succeeded and what justification was recorded.
Examplesβ
-
Find the stuck transaction:
SHOW PROC '/transactions/<db_name>/running'; -
Enable the feature switch:
ADMIN SET FRONTEND CONFIG ("enable_admin_skip_committed_txn" = "true"); -
Abort the stuck transaction:
ADMIN SKIP COMMITTED TRANSACTION 12345 REASON 'txnlog file lost on OSS, manual recovery'; -
Disable the feature switch again to prevent accidental use:
ADMIN SET FRONTEND CONFIG ("enable_admin_skip_committed_txn" = "false");
Relatedβ
SHOW TRANSACTIONβ inspect transaction state.ADMIN REPAIRβ rollback a lake partition to a historical version when metadata is unrecoverable; a more destructive option used when this command is not applicable.