{
  "independent_scenarios": 4,
  "all_characterization_assertions_pass": true,
  "data_equal_scenarios": 2,
  "data_unequal_scenarios": 2,
  "scope": "real MySQL -> single JVM Flink MiniCluster -> real filesystem Paimon; actual task restart; no physical process kill",
  "runs": [
    {
      "scenario": "move-pre",
      "mode": "move-pre",
      "assertions": "PASS",
      "data_equal": "false",
      "source_rows": "20",
      "sink_rows": "19",
      "missing_keys": "[102]",
      "completed": "[1, 3, 4]",
      "restored_checkpoint": "1",
      "restored_observer_count": "10",
      "failed_checkpoint": "2",
      "attempt": "1",
      "snapshot_executions": "3",
      "reconciliations": [
        {
          "phase": "published-before-global-failure",
          "source_file": "mysql-before-failure.tsv",
          "source_rows": 20,
          "target_rows": 19,
          "missing": [
            102
          ],
          "extra": [],
          "field_difference_keys": [],
          "data_equal": false
        },
        {
          "phase": "after-recovery-checkpoint",
          "source_file": "mysql-final.tsv",
          "source_rows": 20,
          "target_rows": 19,
          "missing": [
            102
          ],
          "extra": [],
          "field_difference_keys": [],
          "data_equal": false
        },
        {
          "phase": "after-extra-checkpoint",
          "source_file": "mysql-final.tsv",
          "source_rows": 20,
          "target_rows": 19,
          "missing": [
            102
          ],
          "extra": [],
          "field_difference_keys": [],
          "data_equal": false
        },
        {
          "phase": "after-cancel",
          "source_file": "mysql-final.tsv",
          "source_rows": 20,
          "target_rows": 19,
          "missing": [
            102
          ],
          "extra": [],
          "field_difference_keys": [],
          "data_equal": false
        },
        {
          "phase": "fresh-jvm",
          "source_file": "mysql-final.tsv",
          "source_rows": 20,
          "target_rows": 19,
          "missing": [
            102
          ],
          "extra": [],
          "field_difference_keys": [],
          "data_equal": false
        }
      ]
    },
    {
      "scenario": "move-post",
      "mode": "move-post",
      "assertions": "PASS",
      "data_equal": "false",
      "source_rows": "20",
      "sink_rows": "19",
      "missing_keys": "[102]",
      "completed": "[1, 2, 4, 5]",
      "restored_checkpoint": "2",
      "restored_observer_count": "21",
      "failed_checkpoint": "3",
      "attempt": "1",
      "snapshot_executions": "2",
      "reconciliations": [
        {
          "phase": "published-before-global-failure",
          "source_file": "mysql-before-failure.tsv",
          "source_rows": 20,
          "target_rows": 19,
          "missing": [
            102
          ],
          "extra": [],
          "field_difference_keys": [],
          "data_equal": false
        },
        {
          "phase": "after-recovery-checkpoint",
          "source_file": "mysql-final.tsv",
          "source_rows": 20,
          "target_rows": 19,
          "missing": [
            102
          ],
          "extra": [],
          "field_difference_keys": [],
          "data_equal": false
        },
        {
          "phase": "after-extra-checkpoint",
          "source_file": "mysql-final.tsv",
          "source_rows": 20,
          "target_rows": 19,
          "missing": [
            102
          ],
          "extra": [],
          "field_difference_keys": [],
          "data_equal": false
        },
        {
          "phase": "after-cancel",
          "source_file": "mysql-final.tsv",
          "source_rows": 20,
          "target_rows": 19,
          "missing": [
            102
          ],
          "extra": [],
          "field_difference_keys": [],
          "data_equal": false
        },
        {
          "phase": "fresh-jvm",
          "source_file": "mysql-final.tsv",
          "source_rows": 20,
          "target_rows": 19,
          "missing": [
            102
          ],
          "extra": [],
          "field_difference_keys": [],
          "data_equal": false
        }
      ]
    },
    {
      "scenario": "control-pre",
      "mode": "control-pre",
      "assertions": "PASS",
      "data_equal": "true",
      "source_rows": "20",
      "sink_rows": "20",
      "missing_keys": "[]",
      "completed": "[1, 3, 4]",
      "restored_checkpoint": "1",
      "restored_observer_count": "10",
      "failed_checkpoint": "2",
      "attempt": "1",
      "snapshot_executions": "3",
      "reconciliations": [
        {
          "phase": "published-before-global-failure",
          "source_file": "mysql-before-failure.tsv",
          "source_rows": 20,
          "target_rows": 20,
          "missing": [],
          "extra": [],
          "field_difference_keys": [],
          "data_equal": true
        },
        {
          "phase": "after-recovery-checkpoint",
          "source_file": "mysql-final.tsv",
          "source_rows": 20,
          "target_rows": 20,
          "missing": [],
          "extra": [],
          "field_difference_keys": [],
          "data_equal": true
        },
        {
          "phase": "after-extra-checkpoint",
          "source_file": "mysql-final.tsv",
          "source_rows": 20,
          "target_rows": 20,
          "missing": [],
          "extra": [],
          "field_difference_keys": [],
          "data_equal": true
        },
        {
          "phase": "after-cancel",
          "source_file": "mysql-final.tsv",
          "source_rows": 20,
          "target_rows": 20,
          "missing": [],
          "extra": [],
          "field_difference_keys": [],
          "data_equal": true
        },
        {
          "phase": "fresh-jvm",
          "source_file": "mysql-final.tsv",
          "source_rows": 20,
          "target_rows": 20,
          "missing": [],
          "extra": [],
          "field_difference_keys": [],
          "data_equal": true
        }
      ]
    },
    {
      "scenario": "control-post",
      "mode": "control-post",
      "assertions": "PASS",
      "data_equal": "true",
      "source_rows": "20",
      "sink_rows": "20",
      "missing_keys": "[]",
      "completed": "[1, 2, 4, 5]",
      "restored_checkpoint": "2",
      "restored_observer_count": "22",
      "failed_checkpoint": "3",
      "attempt": "1",
      "snapshot_executions": "2",
      "reconciliations": [
        {
          "phase": "published-before-global-failure",
          "source_file": "mysql-before-failure.tsv",
          "source_rows": 20,
          "target_rows": 20,
          "missing": [],
          "extra": [],
          "field_difference_keys": [],
          "data_equal": true
        },
        {
          "phase": "after-recovery-checkpoint",
          "source_file": "mysql-final.tsv",
          "source_rows": 20,
          "target_rows": 20,
          "missing": [],
          "extra": [],
          "field_difference_keys": [],
          "data_equal": true
        },
        {
          "phase": "after-extra-checkpoint",
          "source_file": "mysql-final.tsv",
          "source_rows": 20,
          "target_rows": 20,
          "missing": [],
          "extra": [],
          "field_difference_keys": [],
          "data_equal": true
        },
        {
          "phase": "after-cancel",
          "source_file": "mysql-final.tsv",
          "source_rows": 20,
          "target_rows": 20,
          "missing": [],
          "extra": [],
          "field_difference_keys": [],
          "data_equal": true
        },
        {
          "phase": "fresh-jvm",
          "source_file": "mysql-final.tsv",
          "source_rows": 20,
          "target_rows": 20,
          "missing": [],
          "extra": [],
          "field_difference_keys": [],
          "data_equal": true
        }
      ]
    }
  ],
  "not_verified": [
    "checkpoint before A finishes",
    "subsequent update to missing id102",
    "full resnapshot",
    "parallelism > 1",
    "DDL with recovery",
    "physical JM/TM/HA failures",
    "input changelog in these scenarios",
    "other storage backends"
  ],
  "historical_tests_rerun": false
}
