Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

DB::Exception : la partie XXXXX chevauche la partie précédente YYYYY. Il s'agit d'un bug ou du résultat d'une intervention manuelle dans les données de ZooKeeper.

Pourquoi cela se produit

Lorsque cette erreur se produit, une table apparaît en lecture seule et le message d'erreur indique des parties intersectantes.

Vous pouvez voir l'erreur dans les logs ou en

SELECT *
FROM system.replicas
WHERE is_readonly = 1

Le message d’erreur ressemble à ceci :

Code: 49. DB::Exception: Part XXXXX intersects previous part YYYYY. It is a bug or a result of manual intervention in the ZooKeeper data. (LOGICAL_ERROR) (version 21.12.4.1 (official build))

Cause de l’erreur

Cette erreur peut être causée par une condition de concurrence entre mergeSelectingTask et la réinitialisation de la file d’attente.

Solution

Exécutez les requêtes suivantes sur toutes les répliques :

DETACH TABLE table_name;  -- Required for DROP REPLICA

SYSTEM DROP REPLICA 'replica_name' FROM ZKPATH '/table_path_in_zk/'; -- It will remove everything from /table_path_in_zk

ATTACH TABLE table_name;  -- Table will be in readonly mode, because there is no metadata in ZK

Exécutez ensuite la commande suivante sur toutes les répliques :

SYSTEM RESTORE REPLICA table_name;  -- It will detach all partitions, re-create metadata in ZK (like it's new empty table), and then attach all partitions back

SYSTEM SYNC REPLICA table_name; -- Wait for replicas to synchronize parts. Also it's recommended to check `system.detached_parts` on all replicas after recovery is finished.

Ressources supplémentaires

PR et issues GitHub associées :

Versions affectées :

ClickHouse v 22.12 et versions antérieures

Navigation