- 
                Notifications
    You must be signed in to change notification settings 
- Fork 4
Open
Description
Problem
The system-schema filter in the active-shards command has a bug that prevents proper exclusion of system tables under the gc schema.
Current Code (Line ~319-330 in cratedb_toolkit/admin/xmover/cli.py)
if exclude_system:
    snapshots = [
        s
        for s in snapshots
        if not (
            s.schema_name.startswith("gc.")  # ❌ This won't match "gc" schema
            or s.schema_name == "information_schema"
            or s.schema_name == "sys"
            or s.table_name.endswith("_events")
            or s.table_name.endswith("_log")
        )
    ]Issue
s.schema_name.startswith("gc.") looks for schemas starting with "gc." (with dot), but the actual schema name is "gc" (without dot). This means:
- "gc".startswith("gc.")returns- False
- System tables under the gcschema won't be excluded as intended
Evidence
From test file tests/admin/test_active_shard_monitor.py:
self.create_test_snapshot("gc", "scheduled_jobs_log", 0, "data-hot-8", True, 15876, 100.0)The help text also suggests this intent:
@click.option("--exclude-system", is_flag=True, help="Exclude system tables (gc.*, information_schema.*)")Suggested Fix
if exclude_system:
    system_schemas = {"gc", "information_schema", "sys"}
    snapshots = [
        s for s in snapshots
        if s.schema_name not in system_schemas
        and not (s.table_name.endswith("_events") or s.table_name.endswith("_log"))
    ]Or if there are indeed sub-schemas under gc:
if exclude_system:
    snapshots = [
        s for s in snapshots
        if not (
            (s.schema_name == "gc" or s.schema_name.startswith("gc."))
            or s.schema_name == "information_schema"
            or s.schema_name == "sys"
            or s.table_name.endswith("_events")
            or s.table_name.endswith("_log")
        )
    ]Backlinks
- PR: Admin/XMover: Add CrateDB shard analyzer and movement tool #523
- Comment: Admin/XMover: Add CrateDB shard analyzer and movement tool #523 (comment)
- Requested by: @amotl
Please review and confirm the expected behavior for system schema filtering.
Metadata
Metadata
Assignees
Labels
No labels