OPEN RECORD · 12 MEASURED CHECKS

SQLite savepoint: rows survive an outer rollback

Measured with standard-library sqlite3: releasing a SAVEPOINT before a real BEGIN leaves one row after an outer failure. Explicit BEGIN and Python 3.12+ autocommit=False each restore rollback in the recorded runtime.

When this evidence is relevant

Investigating SQLite savepoint, sqlite3 rollback, SAVEPOINT, outer rollback: compare the exact failure below with your public error, then check the measured scope.

Observed failure

reopened_rows_match_independent_fixture_oracle

Start a real outer BEGIN before SAVEPOINT; separately measured Connection.autocommit=False on Python 3.12.14

Measured on Linux x86_64, CPython 3.12.14 and SQLite 3.53.1, using only standard-library sqlite3. In a disposable file database, a SAVEPOINT released before a real outer BEGIN leaves its row after a forced later failure. A separate read-only connection observes 3 rows instead of the 2 seed rows. Explicit BEGIN before SAVEPOINT restores exact seed rows after rollback (12 checks). Controls measure BEGIN-too-late, isolation_level=None without BEGIN, successful commit, and unreleased SAVEPOINT rollback. Connection.autocommit=False is separately executed and passes on this runtime; this attribute was added in Python 3.12. No SQLAlchemy/ORM integration, async driver, concurrency, power-loss durability, package upgrade, alternate journal mode, other OS, other Python version or other SQLite version was tested. All data is public and synthetic. Matching recorded metadata is not proof of application compatibility.

Measured 2026-09-11T14:12:19.915698+00:00 · Linux / x86_64. Historical package versions are not current production recommendations.

Primary references

The complete record and all reproduction files are open. No response is required.

Complete record

  1. fresh_connection_has_no_pending_transaction
  2. seed_rows_match_public_fixture
  3. real_outer_transaction_active_before_savepoint
  4. savepoint_opens_or_joins_real_transaction
  5. savepoint_write_visible_inside_connection
  6. release_retains_outer_transaction
  7. forced_outer_failure_caught
  8. reopened_database_integrity_is_ok
  9. seed_null_unicode_and_values_preserved
  10. reopened_rows_match_independent_fixture_oracle
  11. trace_confirms_begin_savepoint_release_rollback_order
  12. both_attempted_writes_absent_after_outer_rollback
Full execution record and environments
{
  "schema_version": 2,
  "test_id": "sqlite-savepoint-outer-rollback-v1",
  "status": "passed",
  "created_at": "2026-09-11T14:12:19.915698+00:00",
  "environment": {
    "libc": [
      "glibc",
      "2.39"
    ],
    "machine": "x86_64",
    "os_release": {
      "ID": "ubuntu",
      "VERSION_ID": "24.04"
    },
    "package_scope": "No third-party packages used or inventoried; standard-library sqlite3 only",
    "packages": {},
    "python_abi": "cpython-312-x86_64-linux-gnu",
    "python_implementation": "CPython",
    "python_version": "3.12.14",
    "sqlite_capabilities": {
      "connection_autocommit_attribute": true,
      "default_autocommit": -1,
      "default_in_transaction": false,
      "default_isolation_level": "",
      "legacy_transaction_control_constant": true
    },
    "sqlite_compile_options_sha256": "600e922c0614cd07a1640976eb2e283b43072322af46cbeb0df7a998990095cb",
    "sqlite_source_id": "2026-05-05 10:34:17 c88b22011a54b4f6fbd149e9f8e4de77658ce58143a1af0e3785e4e6475127e9",
    "sqlite_version": "3.53.1",
    "system": "Linux"
  },
  "fixed_environment": {
    "libc": [
      "glibc",
      "2.39"
    ],
    "machine": "x86_64",
    "os_release": {
      "ID": "ubuntu",
      "VERSION_ID": "24.04"
    },
    "package_scope": "No third-party packages used or inventoried; standard-library sqlite3 only",
    "packages": {},
    "python_abi": "cpython-312-x86_64-linux-gnu",
    "python_implementation": "CPython",
    "python_version": "3.12.14",
    "sqlite_capabilities": {
      "connection_autocommit_attribute": true,
      "default_autocommit": -1,
      "default_in_transaction": false,
      "default_isolation_level": "",
      "legacy_transaction_control_constant": true
    },
    "sqlite_compile_options_sha256": "600e922c0614cd07a1640976eb2e283b43072322af46cbeb0df7a998990095cb",
    "sqlite_source_id": "2026-05-05 10:34:17 c88b22011a54b4f6fbd149e9f8e4de77658ce58143a1af0e3785e4e6475127e9",
    "sqlite_version": "3.53.1",
    "system": "Linux"
  },
  "failure": {
    "checks": [
      "fresh_connection_has_no_pending_transaction",
      "seed_rows_match_public_fixture",
      "python_context_and_select_did_not_open_outer_transaction",
      "savepoint_opens_or_joins_real_transaction",
      "savepoint_write_visible_inside_connection",
      "outermost_release_ends_transaction",
      "forced_outer_failure_caught",
      "reopened_database_integrity_is_ok",
      "seed_null_unicode_and_values_preserved"
    ],
    "configuration": {
      "autocommit": -1,
      "autocommit_false_application": null,
      "explicit_begin_before_savepoint": false,
      "isolation_level": ""
    },
    "error": "reopened_rows_match_independent_fixture_oracle",
    "error_type": "AssertionError",
    "forced_exception": {
      "message": "LAB forced outer failure after nested work",
      "type": "ForcedOuterFailure"
    },
    "mode": "broken",
    "outer_begin_preceded_savepoint": false,
    "phase": "reopen_database",
    "reopen_sql_trace": [
      "SELECT id, label, amount_cents FROM ledger ORDER BY id",
      "PRAGMA integrity_check"
    ],
    "sql_trace": [
      "SELECT id, label, amount_cents FROM ledger ORDER BY id",
      "SAVEPOINT nested_work",
      "INSERT INTO ledger (id, label, amount_cents) VALUES (3, 'LAB_savepoint', 250)",
      "SELECT id, label, amount_cents FROM ledger ORDER BY id",
      "RELEASE SAVEPOINT nested_work",
      "BEGIN ",
      "INSERT INTO ledger (id, label, amount_cents) VALUES (4, 'LAB_later_outer_write', 400)",
      "ROLLBACK"
    ],
    "status": "check_failed",
    "summary": {
      "database_lifecycle": "new disposable file; writer closed; separate read-only connection queried; temporary directory removed",
      "database_sha256_after_close": "01c6731a1e45e63e7a64cb4bb60da3adaca46a70000c320354ddaf8d345b7ab0",
      "expected_rows_after_reconnect": [
        [
          1,
          "LAB_seed",
          100
        ],
        [
          2,
          "LAB_한글",
          null
        ]
      ],
      "integrity_check": "ok",
      "persisted_row_count": 3,
      "persisted_rows_after_reconnect": [
        [
          1,
          "LAB_seed",
          100
        ],
        [
          2,
          "LAB_한글",
          null
        ],
        [
          3,
          "LAB_savepoint",
          250
        ]
      ],
      "transaction_sql": [
        "SAVEPOINT nested_work",
        "RELEASE SAVEPOINT nested_work",
        "BEGIN ",
        "ROLLBACK"
      ]
    },
    "transaction_states": [
      {
        "in_transaction": false,
        "point": "fresh_connection"
      },
      {
        "in_transaction": false,
        "point": "python_context_entered"
      },
      {
        "in_transaction": false,
        "point": "before_savepoint"
      },
      {
        "in_transaction": true,
        "point": "after_savepoint"
      },
      {
        "in_transaction": false,
        "point": "after_release"
      },
      {
        "in_transaction": true,
        "point": "after_later_write"
      },
      {
        "in_transaction": false,
        "point": "after_context_exit"
      }
    ],
    "versions": {
      "python": "3.12.14",
      "sqlite": "3.53.1"
    },
    "execution": {
      "command": [
        "<same Python interpreter>",
        "-I",
        "pipeline.py",
        "broken"
      ],
      "exit_code": 2,
      "stdout": "{\"checks\": [\"fresh_connection_has_no_pending_transaction\", \"seed_rows_match_public_fixture\", \"python_context_and_select_did_not_open_outer_transaction\", \"savepoint_opens_or_joins_real_transaction\", \"savepoint_write_visible_inside_connection\", \"outermost_release_ends_transaction\", \"forced_outer_failure_caught\", \"reopened_database_integrity_is_ok\", \"seed_null_unicode_and_values_preserved\"], \"configuration\": {\"autocommit\": -1, \"autocommit_false_application\": null, \"explicit_begin_before_savepoint\": false, \"isolation_level\": \"\"}, \"error\": \"reopened_rows_match_independent_fixture_oracle\", \"error_type\": \"AssertionError\", \"forced_exception\": {\"message\": \"LAB forced outer failure after nested work\", \"type\": \"ForcedOuterFailure\"}, \"mode\": \"broken\", \"outer_begin_preceded_savepoint\": false, \"phase\": \"reopen_database\", \"reopen_sql_trace\": [\"SELECT id, label, amount_cents FROM ledger ORDER BY id\", \"PRAGMA integrity_check\"], \"sql_trace\": [\"SELECT id, label, amount_cents FROM ledger ORDER BY id\", \"SAVEPOINT nested_work\", \"INSERT INTO ledger (id, label, amount_cents) VALUES (3, 'LAB_savepoint', 250)\", \"SELECT id, label, amount_cents FROM ledger ORDER BY id\", \"RELEASE SAVEPOINT nested_work\", \"BEGIN \", \"INSERT INTO ledger (id, label, amount_cents) VALUES (4, 'LAB_later_outer_write', 400)\", \"ROLLBACK\"], \"status\": \"check_failed\", \"summary\": {\"database_lifecycle\": \"new disposable file; writer closed; separate read-only connection queried; temporary directory removed\", \"database_sha256_after_close\": \"01c6731a1e45e63e7a64cb4bb60da3adaca46a70000c320354ddaf8d345b7ab0\", \"expected_rows_after_reconnect\": [[1, \"LAB_seed\", 100], [2, \"LAB_한글\", null]], \"integrity_check\": \"ok\", \"persisted_row_count\": 3, \"persisted_rows_after_reconnect\": [[1, \"LAB_seed\", 100], [2, \"LAB_한글\", null], [3, \"LAB_savepoint\", 250]], \"transaction_sql\": [\"SAVEPOINT nested_work\", \"RELEASE SAVEPOINT nested_work\", \"BEGIN \", \"ROLLBACK\"]}, \"transaction_states\": [{\"in_transaction\": false, \"point\": \"fresh_connection\"}, {\"in_transaction\": false, \"point\": \"python_context_entered\"}, {\"in_transaction\": false, \"point\": \"before_savepoint\"}, {\"in_transaction\": true, \"point\": \"after_savepoint\"}, {\"in_transaction\": false, \"point\": \"after_release\"}, {\"in_transaction\": true, \"point\": \"after_later_write\"}, {\"in_transaction\": false, \"point\": \"after_context_exit\"}], \"versions\": {\"python\": \"3.12.14\", \"sqlite\": \"3.53.1\"}}\n",
      "stderr": "",
      "elapsed_seconds": 0.028366,
      "stdout_sha256": "df580fe1477330beac4ca122fbb3bede5532c30ca0ddccb8fe6c8a6b5e20e0d5",
      "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
    }
  },
  "success": {
    "checks": [
      "fresh_connection_has_no_pending_transaction",
      "seed_rows_match_public_fixture",
      "real_outer_transaction_active_before_savepoint",
      "savepoint_opens_or_joins_real_transaction",
      "savepoint_write_visible_inside_connection",
      "release_retains_outer_transaction",
      "forced_outer_failure_caught",
      "reopened_database_integrity_is_ok",
      "seed_null_unicode_and_values_preserved",
      "reopened_rows_match_independent_fixture_oracle",
      "trace_confirms_begin_savepoint_release_rollback_order",
      "both_attempted_writes_absent_after_outer_rollback"
    ],
    "configuration": {
      "autocommit": -1,
      "autocommit_false_application": null,
      "explicit_begin_before_savepoint": true,
      "isolation_level": ""
    },
    "forced_exception": {
      "message": "LAB forced outer failure after nested work",
      "type": "ForcedOuterFailure"
    },
    "mode": "fixed",
    "outer_begin_preceded_savepoint": true,
    "phase": "complete",
    "reopen_sql_trace": [
      "SELECT id, label, amount_cents FROM ledger ORDER BY id",
      "PRAGMA integrity_check"
    ],
    "sql_trace": [
      "SELECT id, label, amount_cents FROM ledger ORDER BY id",
      "BEGIN",
      "SAVEPOINT nested_work",
      "INSERT INTO ledger (id, label, amount_cents) VALUES (3, 'LAB_savepoint', 250)",
      "SELECT id, label, amount_cents FROM ledger ORDER BY id",
      "RELEASE SAVEPOINT nested_work",
      "INSERT INTO ledger (id, label, amount_cents) VALUES (4, 'LAB_later_outer_write', 400)",
      "ROLLBACK"
    ],
    "status": "passed",
    "summary": {
      "database_lifecycle": "new disposable file; writer closed; separate read-only connection queried; temporary directory removed",
      "database_sha256_after_close": "6c129576cb081a1fd9e800637a08ce397401ee655656265472aa343fdf1b36a6",
      "expected_rows_after_reconnect": [
        [
          1,
          "LAB_seed",
          100
        ],
        [
          2,
          "LAB_한글",
          null
        ]
      ],
      "integrity_check": "ok",
      "persisted_row_count": 2,
      "persisted_rows_after_reconnect": [
        [
          1,
          "LAB_seed",
          100
        ],
        [
          2,
          "LAB_한글",
          null
        ]
      ],
      "transaction_sql": [
        "BEGIN",
        "SAVEPOINT nested_work",
        "RELEASE SAVEPOINT nested_work",
        "ROLLBACK"
      ]
    },
    "transaction_states": [
      {
        "in_transaction": false,
        "point": "fresh_connection"
      },
      {
        "in_transaction": false,
        "point": "python_context_entered"
      },
      {
        "in_transaction": true,
        "point": "before_savepoint"
      },
      {
        "in_transaction": true,
        "point": "after_savepoint"
      },
      {
        "in_transaction": true,
        "point": "after_release"
      },
      {
        "in_transaction": true,
        "point": "after_later_write"
      },
      {
        "in_transaction": false,
        "point": "after_context_exit"
      }
    ],
    "versions": {
      "python": "3.12.14",
      "sqlite": "3.53.1"
    },
    "execution": {
      "command": [
        "<same Python interpreter>",
        "-I",
        "pipeline.py",
        "fixed"
      ],
      "exit_code": 0,
      "stdout": "{\"checks\": [\"fresh_connection_has_no_pending_transaction\", \"seed_rows_match_public_fixture\", \"real_outer_transaction_active_before_savepoint\", \"savepoint_opens_or_joins_real_transaction\", \"savepoint_write_visible_inside_connection\", \"release_retains_outer_transaction\", \"forced_outer_failure_caught\", \"reopened_database_integrity_is_ok\", \"seed_null_unicode_and_values_preserved\", \"reopened_rows_match_independent_fixture_oracle\", \"trace_confirms_begin_savepoint_release_rollback_order\", \"both_attempted_writes_absent_after_outer_rollback\"], \"configuration\": {\"autocommit\": -1, \"autocommit_false_application\": null, \"explicit_begin_before_savepoint\": true, \"isolation_level\": \"\"}, \"forced_exception\": {\"message\": \"LAB forced outer failure after nested work\", \"type\": \"ForcedOuterFailure\"}, \"mode\": \"fixed\", \"outer_begin_preceded_savepoint\": true, \"phase\": \"complete\", \"reopen_sql_trace\": [\"SELECT id, label, amount_cents FROM ledger ORDER BY id\", \"PRAGMA integrity_check\"], \"sql_trace\": [\"SELECT id, label, amount_cents FROM ledger ORDER BY id\", \"BEGIN\", \"SAVEPOINT nested_work\", \"INSERT INTO ledger (id, label, amount_cents) VALUES (3, 'LAB_savepoint', 250)\", \"SELECT id, label, amount_cents FROM ledger ORDER BY id\", \"RELEASE SAVEPOINT nested_work\", \"INSERT INTO ledger (id, label, amount_cents) VALUES (4, 'LAB_later_outer_write', 400)\", \"ROLLBACK\"], \"status\": \"passed\", \"summary\": {\"database_lifecycle\": \"new disposable file; writer closed; separate read-only connection queried; temporary directory removed\", \"database_sha256_after_close\": \"6c129576cb081a1fd9e800637a08ce397401ee655656265472aa343fdf1b36a6\", \"expected_rows_after_reconnect\": [[1, \"LAB_seed\", 100], [2, \"LAB_한글\", null]], \"integrity_check\": \"ok\", \"persisted_row_count\": 2, \"persisted_rows_after_reconnect\": [[1, \"LAB_seed\", 100], [2, \"LAB_한글\", null]], \"transaction_sql\": [\"BEGIN\", \"SAVEPOINT nested_work\", \"RELEASE SAVEPOINT nested_work\", \"ROLLBACK\"]}, \"transaction_states\": [{\"in_transaction\": false, \"point\": \"fresh_connection\"}, {\"in_transaction\": false, \"point\": \"python_context_entered\"}, {\"in_transaction\": true, \"point\": \"before_savepoint\"}, {\"in_transaction\": true, \"point\": \"after_savepoint\"}, {\"in_transaction\": true, \"point\": \"after_release\"}, {\"in_transaction\": true, \"point\": \"after_later_write\"}, {\"in_transaction\": false, \"point\": \"after_context_exit\"}], \"versions\": {\"python\": \"3.12.14\", \"sqlite\": \"3.53.1\"}}\n",
      "stderr": "",
      "elapsed_seconds": 0.02958,
      "stdout_sha256": "149c1d5fe0f18641c56d0edcd0d643b623d82f221c8d12c5e521ba2445fc051e",
      "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
    }
  },
  "negative_controls": {
    "begin-too-late": {
      "checks": [
        "fresh_connection_has_no_pending_transaction",
        "seed_rows_match_public_fixture",
        "python_context_and_select_did_not_open_outer_transaction",
        "savepoint_opens_or_joins_real_transaction",
        "savepoint_write_visible_inside_connection",
        "outermost_release_ends_transaction",
        "forced_outer_failure_caught",
        "reopened_database_integrity_is_ok",
        "seed_null_unicode_and_values_preserved"
      ],
      "configuration": {
        "autocommit": -1,
        "autocommit_false_application": null,
        "explicit_begin_before_savepoint": false,
        "isolation_level": ""
      },
      "error": "reopened_rows_match_independent_fixture_oracle",
      "error_type": "AssertionError",
      "forced_exception": {
        "message": "LAB forced outer failure after nested work",
        "type": "ForcedOuterFailure"
      },
      "mode": "begin-too-late",
      "outer_begin_preceded_savepoint": false,
      "phase": "reopen_database",
      "reopen_sql_trace": [
        "SELECT id, label, amount_cents FROM ledger ORDER BY id",
        "PRAGMA integrity_check"
      ],
      "sql_trace": [
        "SELECT id, label, amount_cents FROM ledger ORDER BY id",
        "SAVEPOINT nested_work",
        "INSERT INTO ledger (id, label, amount_cents) VALUES (3, 'LAB_savepoint', 250)",
        "SELECT id, label, amount_cents FROM ledger ORDER BY id",
        "RELEASE SAVEPOINT nested_work",
        "BEGIN",
        "INSERT INTO ledger (id, label, amount_cents) VALUES (4, 'LAB_later_outer_write', 400)",
        "ROLLBACK"
      ],
      "status": "check_failed",
      "summary": {
        "database_lifecycle": "new disposable file; writer closed; separate read-only connection queried; temporary directory removed",
        "database_sha256_after_close": "01c6731a1e45e63e7a64cb4bb60da3adaca46a70000c320354ddaf8d345b7ab0",
        "expected_rows_after_reconnect": [
          [
            1,
            "LAB_seed",
            100
          ],
          [
            2,
            "LAB_한글",
            null
          ]
        ],
        "integrity_check": "ok",
        "persisted_row_count": 3,
        "persisted_rows_after_reconnect": [
          [
            1,
            "LAB_seed",
            100
          ],
          [
            2,
            "LAB_한글",
            null
          ],
          [
            3,
            "LAB_savepoint",
            250
          ]
        ],
        "transaction_sql": [
          "SAVEPOINT nested_work",
          "RELEASE SAVEPOINT nested_work",
          "BEGIN",
          "ROLLBACK"
        ]
      },
      "transaction_states": [
        {
          "in_transaction": false,
          "point": "fresh_connection"
        },
        {
          "in_transaction": false,
          "point": "python_context_entered"
        },
        {
          "in_transaction": false,
          "point": "before_savepoint"
        },
        {
          "in_transaction": true,
          "point": "after_savepoint"
        },
        {
          "in_transaction": false,
          "point": "after_release"
        },
        {
          "in_transaction": true,
          "point": "after_later_write"
        },
        {
          "in_transaction": false,
          "point": "after_context_exit"
        }
      ],
      "versions": {
        "python": "3.12.14",
        "sqlite": "3.53.1"
      },
      "execution": {
        "command": [
          "<same Python interpreter>",
          "-I",
          "pipeline.py",
          "begin-too-late"
        ],
        "exit_code": 2,
        "stdout": "{\"checks\": [\"fresh_connection_has_no_pending_transaction\", \"seed_rows_match_public_fixture\", \"python_context_and_select_did_not_open_outer_transaction\", \"savepoint_opens_or_joins_real_transaction\", \"savepoint_write_visible_inside_connection\", \"outermost_release_ends_transaction\", \"forced_outer_failure_caught\", \"reopened_database_integrity_is_ok\", \"seed_null_unicode_and_values_preserved\"], \"configuration\": {\"autocommit\": -1, \"autocommit_false_application\": null, \"explicit_begin_before_savepoint\": false, \"isolation_level\": \"\"}, \"error\": \"reopened_rows_match_independent_fixture_oracle\", \"error_type\": \"AssertionError\", \"forced_exception\": {\"message\": \"LAB forced outer failure after nested work\", \"type\": \"ForcedOuterFailure\"}, \"mode\": \"begin-too-late\", \"outer_begin_preceded_savepoint\": false, \"phase\": \"reopen_database\", \"reopen_sql_trace\": [\"SELECT id, label, amount_cents FROM ledger ORDER BY id\", \"PRAGMA integrity_check\"], \"sql_trace\": [\"SELECT id, label, amount_cents FROM ledger ORDER BY id\", \"SAVEPOINT nested_work\", \"INSERT INTO ledger (id, label, amount_cents) VALUES (3, 'LAB_savepoint', 250)\", \"SELECT id, label, amount_cents FROM ledger ORDER BY id\", \"RELEASE SAVEPOINT nested_work\", \"BEGIN\", \"INSERT INTO ledger (id, label, amount_cents) VALUES (4, 'LAB_later_outer_write', 400)\", \"ROLLBACK\"], \"status\": \"check_failed\", \"summary\": {\"database_lifecycle\": \"new disposable file; writer closed; separate read-only connection queried; temporary directory removed\", \"database_sha256_after_close\": \"01c6731a1e45e63e7a64cb4bb60da3adaca46a70000c320354ddaf8d345b7ab0\", \"expected_rows_after_reconnect\": [[1, \"LAB_seed\", 100], [2, \"LAB_한글\", null]], \"integrity_check\": \"ok\", \"persisted_row_count\": 3, \"persisted_rows_after_reconnect\": [[1, \"LAB_seed\", 100], [2, \"LAB_한글\", null], [3, \"LAB_savepoint\", 250]], \"transaction_sql\": [\"SAVEPOINT nested_work\", \"RELEASE SAVEPOINT nested_work\", \"BEGIN\", \"ROLLBACK\"]}, \"transaction_states\": [{\"in_transaction\": false, \"point\": \"fresh_connection\"}, {\"in_transaction\": false, \"point\": \"python_context_entered\"}, {\"in_transaction\": false, \"point\": \"before_savepoint\"}, {\"in_transaction\": true, \"point\": \"after_savepoint\"}, {\"in_transaction\": false, \"point\": \"after_release\"}, {\"in_transaction\": true, \"point\": \"after_later_write\"}, {\"in_transaction\": false, \"point\": \"after_context_exit\"}], \"versions\": {\"python\": \"3.12.14\", \"sqlite\": \"3.53.1\"}}\n",
        "stderr": "",
        "elapsed_seconds": 0.029562,
        "stdout_sha256": "00b3d3430667c25551a74142b9eb9f4bbc35b308abbf96582a18c9699e49bd3d",
        "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
      }
    },
    "isolation-none": {
      "checks": [
        "fresh_connection_has_no_pending_transaction",
        "seed_rows_match_public_fixture",
        "python_context_and_select_did_not_open_outer_transaction",
        "savepoint_opens_or_joins_real_transaction",
        "savepoint_write_visible_inside_connection",
        "outermost_release_ends_transaction",
        "forced_outer_failure_caught",
        "reopened_database_integrity_is_ok",
        "seed_null_unicode_and_values_preserved"
      ],
      "configuration": {
        "autocommit": -1,
        "autocommit_false_application": null,
        "explicit_begin_before_savepoint": false,
        "isolation_level": null
      },
      "error": "reopened_rows_match_independent_fixture_oracle",
      "error_type": "AssertionError",
      "forced_exception": {
        "message": "LAB forced outer failure after nested work",
        "type": "ForcedOuterFailure"
      },
      "mode": "isolation-none",
      "outer_begin_preceded_savepoint": false,
      "phase": "reopen_database",
      "reopen_sql_trace": [
        "SELECT id, label, amount_cents FROM ledger ORDER BY id",
        "PRAGMA integrity_check"
      ],
      "sql_trace": [
        "SELECT id, label, amount_cents FROM ledger ORDER BY id",
        "SAVEPOINT nested_work",
        "INSERT INTO ledger (id, label, amount_cents) VALUES (3, 'LAB_savepoint', 250)",
        "SELECT id, label, amount_cents FROM ledger ORDER BY id",
        "RELEASE SAVEPOINT nested_work",
        "INSERT INTO ledger (id, label, amount_cents) VALUES (4, 'LAB_later_outer_write', 400)"
      ],
      "status": "check_failed",
      "summary": {
        "database_lifecycle": "new disposable file; writer closed; separate read-only connection queried; temporary directory removed",
        "database_sha256_after_close": "8eeedddc2865425419560033b65f045172f0fc2cb74a1661645294c4d0515542",
        "expected_rows_after_reconnect": [
          [
            1,
            "LAB_seed",
            100
          ],
          [
            2,
            "LAB_한글",
            null
          ]
        ],
        "integrity_check": "ok",
        "persisted_row_count": 4,
        "persisted_rows_after_reconnect": [
          [
            1,
            "LAB_seed",
            100
          ],
          [
            2,
            "LAB_한글",
            null
          ],
          [
            3,
            "LAB_savepoint",
            250
          ],
          [
            4,
            "LAB_later_outer_write",
            400
          ]
        ],
        "transaction_sql": [
          "SAVEPOINT nested_work",
          "RELEASE SAVEPOINT nested_work"
        ]
      },
      "transaction_states": [
        {
          "in_transaction": false,
          "point": "fresh_connection"
        },
        {
          "in_transaction": false,
          "point": "python_context_entered"
        },
        {
          "in_transaction": false,
          "point": "before_savepoint"
        },
        {
          "in_transaction": true,
          "point": "after_savepoint"
        },
        {
          "in_transaction": false,
          "point": "after_release"
        },
        {
          "in_transaction": false,
          "point": "after_later_write"
        },
        {
          "in_transaction": false,
          "point": "after_context_exit"
        }
      ],
      "versions": {
        "python": "3.12.14",
        "sqlite": "3.53.1"
      },
      "execution": {
        "command": [
          "<same Python interpreter>",
          "-I",
          "pipeline.py",
          "isolation-none"
        ],
        "exit_code": 2,
        "stdout": "{\"checks\": [\"fresh_connection_has_no_pending_transaction\", \"seed_rows_match_public_fixture\", \"python_context_and_select_did_not_open_outer_transaction\", \"savepoint_opens_or_joins_real_transaction\", \"savepoint_write_visible_inside_connection\", \"outermost_release_ends_transaction\", \"forced_outer_failure_caught\", \"reopened_database_integrity_is_ok\", \"seed_null_unicode_and_values_preserved\"], \"configuration\": {\"autocommit\": -1, \"autocommit_false_application\": null, \"explicit_begin_before_savepoint\": false, \"isolation_level\": null}, \"error\": \"reopened_rows_match_independent_fixture_oracle\", \"error_type\": \"AssertionError\", \"forced_exception\": {\"message\": \"LAB forced outer failure after nested work\", \"type\": \"ForcedOuterFailure\"}, \"mode\": \"isolation-none\", \"outer_begin_preceded_savepoint\": false, \"phase\": \"reopen_database\", \"reopen_sql_trace\": [\"SELECT id, label, amount_cents FROM ledger ORDER BY id\", \"PRAGMA integrity_check\"], \"sql_trace\": [\"SELECT id, label, amount_cents FROM ledger ORDER BY id\", \"SAVEPOINT nested_work\", \"INSERT INTO ledger (id, label, amount_cents) VALUES (3, 'LAB_savepoint', 250)\", \"SELECT id, label, amount_cents FROM ledger ORDER BY id\", \"RELEASE SAVEPOINT nested_work\", \"INSERT INTO ledger (id, label, amount_cents) VALUES (4, 'LAB_later_outer_write', 400)\"], \"status\": \"check_failed\", \"summary\": {\"database_lifecycle\": \"new disposable file; writer closed; separate read-only connection queried; temporary directory removed\", \"database_sha256_after_close\": \"8eeedddc2865425419560033b65f045172f0fc2cb74a1661645294c4d0515542\", \"expected_rows_after_reconnect\": [[1, \"LAB_seed\", 100], [2, \"LAB_한글\", null]], \"integrity_check\": \"ok\", \"persisted_row_count\": 4, \"persisted_rows_after_reconnect\": [[1, \"LAB_seed\", 100], [2, \"LAB_한글\", null], [3, \"LAB_savepoint\", 250], [4, \"LAB_later_outer_write\", 400]], \"transaction_sql\": [\"SAVEPOINT nested_work\", \"RELEASE SAVEPOINT nested_work\"]}, \"transaction_states\": [{\"in_transaction\": false, \"point\": \"fresh_connection\"}, {\"in_transaction\": false, \"point\": \"python_context_entered\"}, {\"in_transaction\": false, \"point\": \"before_savepoint\"}, {\"in_transaction\": true, \"point\": \"after_savepoint\"}, {\"in_transaction\": false, \"point\": \"after_release\"}, {\"in_transaction\": false, \"point\": \"after_later_write\"}, {\"in_transaction\": false, \"point\": \"after_context_exit\"}], \"versions\": {\"python\": \"3.12.14\", \"sqlite\": \"3.53.1\"}}\n",
        "stderr": "",
        "elapsed_seconds": 0.028496,
        "stdout_sha256": "2fc27715506e47ab434336b1632f36f01cd04f9bb1ccd593f09586276e3d1976",
        "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
      }
    }
  },
  "boundary_controls": {
    "commit-control": {
      "checks": [
        "fresh_connection_has_no_pending_transaction",
        "seed_rows_match_public_fixture",
        "real_outer_transaction_active_before_savepoint",
        "savepoint_opens_or_joins_real_transaction",
        "savepoint_write_visible_inside_connection",
        "release_retains_outer_transaction",
        "intentional_success_reached",
        "reopened_database_integrity_is_ok",
        "seed_null_unicode_and_values_preserved",
        "reopened_rows_match_independent_fixture_oracle"
      ],
      "configuration": {
        "autocommit": -1,
        "autocommit_false_application": null,
        "explicit_begin_before_savepoint": true,
        "isolation_level": ""
      },
      "forced_exception": null,
      "mode": "commit-control",
      "outer_begin_preceded_savepoint": true,
      "phase": "complete",
      "reopen_sql_trace": [
        "SELECT id, label, amount_cents FROM ledger ORDER BY id",
        "PRAGMA integrity_check"
      ],
      "sql_trace": [
        "SELECT id, label, amount_cents FROM ledger ORDER BY id",
        "BEGIN",
        "SAVEPOINT nested_work",
        "INSERT INTO ledger (id, label, amount_cents) VALUES (3, 'LAB_savepoint', 250)",
        "SELECT id, label, amount_cents FROM ledger ORDER BY id",
        "RELEASE SAVEPOINT nested_work",
        "INSERT INTO ledger (id, label, amount_cents) VALUES (4, 'LAB_later_outer_write', 400)",
        "COMMIT"
      ],
      "status": "passed",
      "summary": {
        "database_lifecycle": "new disposable file; writer closed; separate read-only connection queried; temporary directory removed",
        "database_sha256_after_close": "2f57265d1d20e7a941b463c222a3030bec9cad0e75a568bfc03e64ab5c5eb54a",
        "expected_rows_after_reconnect": [
          [
            1,
            "LAB_seed",
            100
          ],
          [
            2,
            "LAB_한글",
            null
          ],
          [
            3,
            "LAB_savepoint",
            250
          ],
          [
            4,
            "LAB_later_outer_write",
            400
          ]
        ],
        "integrity_check": "ok",
        "persisted_row_count": 4,
        "persisted_rows_after_reconnect": [
          [
            1,
            "LAB_seed",
            100
          ],
          [
            2,
            "LAB_한글",
            null
          ],
          [
            3,
            "LAB_savepoint",
            250
          ],
          [
            4,
            "LAB_later_outer_write",
            400
          ]
        ],
        "transaction_sql": [
          "BEGIN",
          "SAVEPOINT nested_work",
          "RELEASE SAVEPOINT nested_work",
          "COMMIT"
        ]
      },
      "transaction_states": [
        {
          "in_transaction": false,
          "point": "fresh_connection"
        },
        {
          "in_transaction": false,
          "point": "python_context_entered"
        },
        {
          "in_transaction": true,
          "point": "before_savepoint"
        },
        {
          "in_transaction": true,
          "point": "after_savepoint"
        },
        {
          "in_transaction": true,
          "point": "after_release"
        },
        {
          "in_transaction": true,
          "point": "after_later_write"
        },
        {
          "in_transaction": false,
          "point": "after_context_exit"
        }
      ],
      "versions": {
        "python": "3.12.14",
        "sqlite": "3.53.1"
      },
      "execution": {
        "command": [
          "<same Python interpreter>",
          "-I",
          "pipeline.py",
          "commit-control"
        ],
        "exit_code": 0,
        "stdout": "{\"checks\": [\"fresh_connection_has_no_pending_transaction\", \"seed_rows_match_public_fixture\", \"real_outer_transaction_active_before_savepoint\", \"savepoint_opens_or_joins_real_transaction\", \"savepoint_write_visible_inside_connection\", \"release_retains_outer_transaction\", \"intentional_success_reached\", \"reopened_database_integrity_is_ok\", \"seed_null_unicode_and_values_preserved\", \"reopened_rows_match_independent_fixture_oracle\"], \"configuration\": {\"autocommit\": -1, \"autocommit_false_application\": null, \"explicit_begin_before_savepoint\": true, \"isolation_level\": \"\"}, \"forced_exception\": null, \"mode\": \"commit-control\", \"outer_begin_preceded_savepoint\": true, \"phase\": \"complete\", \"reopen_sql_trace\": [\"SELECT id, label, amount_cents FROM ledger ORDER BY id\", \"PRAGMA integrity_check\"], \"sql_trace\": [\"SELECT id, label, amount_cents FROM ledger ORDER BY id\", \"BEGIN\", \"SAVEPOINT nested_work\", \"INSERT INTO ledger (id, label, amount_cents) VALUES (3, 'LAB_savepoint', 250)\", \"SELECT id, label, amount_cents FROM ledger ORDER BY id\", \"RELEASE SAVEPOINT nested_work\", \"INSERT INTO ledger (id, label, amount_cents) VALUES (4, 'LAB_later_outer_write', 400)\", \"COMMIT\"], \"status\": \"passed\", \"summary\": {\"database_lifecycle\": \"new disposable file; writer closed; separate read-only connection queried; temporary directory removed\", \"database_sha256_after_close\": \"2f57265d1d20e7a941b463c222a3030bec9cad0e75a568bfc03e64ab5c5eb54a\", \"expected_rows_after_reconnect\": [[1, \"LAB_seed\", 100], [2, \"LAB_한글\", null], [3, \"LAB_savepoint\", 250], [4, \"LAB_later_outer_write\", 400]], \"integrity_check\": \"ok\", \"persisted_row_count\": 4, \"persisted_rows_after_reconnect\": [[1, \"LAB_seed\", 100], [2, \"LAB_한글\", null], [3, \"LAB_savepoint\", 250], [4, \"LAB_later_outer_write\", 400]], \"transaction_sql\": [\"BEGIN\", \"SAVEPOINT nested_work\", \"RELEASE SAVEPOINT nested_work\", \"COMMIT\"]}, \"transaction_states\": [{\"in_transaction\": false, \"point\": \"fresh_connection\"}, {\"in_transaction\": false, \"point\": \"python_context_entered\"}, {\"in_transaction\": true, \"point\": \"before_savepoint\"}, {\"in_transaction\": true, \"point\": \"after_savepoint\"}, {\"in_transaction\": true, \"point\": \"after_release\"}, {\"in_transaction\": true, \"point\": \"after_later_write\"}, {\"in_transaction\": false, \"point\": \"after_context_exit\"}], \"versions\": {\"python\": \"3.12.14\", \"sqlite\": \"3.53.1\"}}\n",
        "stderr": "",
        "elapsed_seconds": 0.029119,
        "stdout_sha256": "0a84b73e154f409b7aed093e92358c253720f591b37f62e0f80544d81f35aac4",
        "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
      }
    },
    "unreleased-control": {
      "checks": [
        "fresh_connection_has_no_pending_transaction",
        "seed_rows_match_public_fixture",
        "python_context_and_select_did_not_open_outer_transaction",
        "savepoint_opens_or_joins_real_transaction",
        "savepoint_write_visible_inside_connection",
        "forced_outer_failure_caught",
        "reopened_database_integrity_is_ok",
        "seed_null_unicode_and_values_preserved",
        "reopened_rows_match_independent_fixture_oracle"
      ],
      "configuration": {
        "autocommit": -1,
        "autocommit_false_application": null,
        "explicit_begin_before_savepoint": false,
        "isolation_level": ""
      },
      "forced_exception": {
        "message": "LAB forced outer failure after nested work",
        "type": "ForcedOuterFailure"
      },
      "mode": "unreleased-control",
      "outer_begin_preceded_savepoint": false,
      "phase": "complete",
      "reopen_sql_trace": [
        "SELECT id, label, amount_cents FROM ledger ORDER BY id",
        "PRAGMA integrity_check"
      ],
      "sql_trace": [
        "SELECT id, label, amount_cents FROM ledger ORDER BY id",
        "SAVEPOINT nested_work",
        "INSERT INTO ledger (id, label, amount_cents) VALUES (3, 'LAB_savepoint', 250)",
        "SELECT id, label, amount_cents FROM ledger ORDER BY id",
        "ROLLBACK"
      ],
      "status": "passed",
      "summary": {
        "database_lifecycle": "new disposable file; writer closed; separate read-only connection queried; temporary directory removed",
        "database_sha256_after_close": "6c129576cb081a1fd9e800637a08ce397401ee655656265472aa343fdf1b36a6",
        "expected_rows_after_reconnect": [
          [
            1,
            "LAB_seed",
            100
          ],
          [
            2,
            "LAB_한글",
            null
          ]
        ],
        "integrity_check": "ok",
        "persisted_row_count": 2,
        "persisted_rows_after_reconnect": [
          [
            1,
            "LAB_seed",
            100
          ],
          [
            2,
            "LAB_한글",
            null
          ]
        ],
        "transaction_sql": [
          "SAVEPOINT nested_work",
          "ROLLBACK"
        ]
      },
      "transaction_states": [
        {
          "in_transaction": false,
          "point": "fresh_connection"
        },
        {
          "in_transaction": false,
          "point": "python_context_entered"
        },
        {
          "in_transaction": false,
          "point": "before_savepoint"
        },
        {
          "in_transaction": true,
          "point": "after_savepoint"
        },
        {
          "in_transaction": false,
          "point": "after_context_exit"
        }
      ],
      "versions": {
        "python": "3.12.14",
        "sqlite": "3.53.1"
      },
      "execution": {
        "command": [
          "<same Python interpreter>",
          "-I",
          "pipeline.py",
          "unreleased-control"
        ],
        "exit_code": 0,
        "stdout": "{\"checks\": [\"fresh_connection_has_no_pending_transaction\", \"seed_rows_match_public_fixture\", \"python_context_and_select_did_not_open_outer_transaction\", \"savepoint_opens_or_joins_real_transaction\", \"savepoint_write_visible_inside_connection\", \"forced_outer_failure_caught\", \"reopened_database_integrity_is_ok\", \"seed_null_unicode_and_values_preserved\", \"reopened_rows_match_independent_fixture_oracle\"], \"configuration\": {\"autocommit\": -1, \"autocommit_false_application\": null, \"explicit_begin_before_savepoint\": false, \"isolation_level\": \"\"}, \"forced_exception\": {\"message\": \"LAB forced outer failure after nested work\", \"type\": \"ForcedOuterFailure\"}, \"mode\": \"unreleased-control\", \"outer_begin_preceded_savepoint\": false, \"phase\": \"complete\", \"reopen_sql_trace\": [\"SELECT id, label, amount_cents FROM ledger ORDER BY id\", \"PRAGMA integrity_check\"], \"sql_trace\": [\"SELECT id, label, amount_cents FROM ledger ORDER BY id\", \"SAVEPOINT nested_work\", \"INSERT INTO ledger (id, label, amount_cents) VALUES (3, 'LAB_savepoint', 250)\", \"SELECT id, label, amount_cents FROM ledger ORDER BY id\", \"ROLLBACK\"], \"status\": \"passed\", \"summary\": {\"database_lifecycle\": \"new disposable file; writer closed; separate read-only connection queried; temporary directory removed\", \"database_sha256_after_close\": \"6c129576cb081a1fd9e800637a08ce397401ee655656265472aa343fdf1b36a6\", \"expected_rows_after_reconnect\": [[1, \"LAB_seed\", 100], [2, \"LAB_한글\", null]], \"integrity_check\": \"ok\", \"persisted_row_count\": 2, \"persisted_rows_after_reconnect\": [[1, \"LAB_seed\", 100], [2, \"LAB_한글\", null]], \"transaction_sql\": [\"SAVEPOINT nested_work\", \"ROLLBACK\"]}, \"transaction_states\": [{\"in_transaction\": false, \"point\": \"fresh_connection\"}, {\"in_transaction\": false, \"point\": \"python_context_entered\"}, {\"in_transaction\": false, \"point\": \"before_savepoint\"}, {\"in_transaction\": true, \"point\": \"after_savepoint\"}, {\"in_transaction\": false, \"point\": \"after_context_exit\"}], \"versions\": {\"python\": \"3.12.14\", \"sqlite\": \"3.53.1\"}}\n",
        "stderr": "",
        "elapsed_seconds": 0.029576,
        "stdout_sha256": "457bdb571587bb40cc37254cc45883848c70a4ea84cf6edabdb0a7ebb0e51801",
        "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
      }
    }
  },
  "alternative_fix": {
    "checks": [
      "fresh_connection_has_no_pending_transaction",
      "seed_rows_match_public_fixture",
      "real_outer_transaction_active_before_savepoint",
      "savepoint_opens_or_joins_real_transaction",
      "savepoint_write_visible_inside_connection",
      "release_retains_outer_transaction",
      "forced_outer_failure_caught",
      "reopened_database_integrity_is_ok",
      "seed_null_unicode_and_values_preserved",
      "reopened_rows_match_independent_fixture_oracle",
      "trace_confirms_begin_savepoint_release_rollback_order",
      "both_attempted_writes_absent_after_outer_rollback"
    ],
    "configuration": {
      "autocommit": false,
      "autocommit_false_application": "fresh Connection.autocommit = False after trace registration",
      "explicit_begin_before_savepoint": false,
      "isolation_level": ""
    },
    "forced_exception": {
      "message": "LAB forced outer failure after nested work",
      "type": "ForcedOuterFailure"
    },
    "mode": "autocommit-false",
    "outer_begin_preceded_savepoint": true,
    "phase": "complete",
    "reopen_sql_trace": [
      "SELECT id, label, amount_cents FROM ledger ORDER BY id",
      "PRAGMA integrity_check"
    ],
    "sql_trace": [
      "BEGIN",
      "SELECT id, label, amount_cents FROM ledger ORDER BY id",
      "SAVEPOINT nested_work",
      "INSERT INTO ledger (id, label, amount_cents) VALUES (3, 'LAB_savepoint', 250)",
      "SELECT id, label, amount_cents FROM ledger ORDER BY id",
      "RELEASE SAVEPOINT nested_work",
      "INSERT INTO ledger (id, label, amount_cents) VALUES (4, 'LAB_later_outer_write', 400)",
      "ROLLBACK",
      "BEGIN",
      "ROLLBACK"
    ],
    "status": "passed",
    "summary": {
      "database_lifecycle": "new disposable file; writer closed; separate read-only connection queried; temporary directory removed",
      "database_sha256_after_close": "6c129576cb081a1fd9e800637a08ce397401ee655656265472aa343fdf1b36a6",
      "expected_rows_after_reconnect": [
        [
          1,
          "LAB_seed",
          100
        ],
        [
          2,
          "LAB_한글",
          null
        ]
      ],
      "integrity_check": "ok",
      "persisted_row_count": 2,
      "persisted_rows_after_reconnect": [
        [
          1,
          "LAB_seed",
          100
        ],
        [
          2,
          "LAB_한글",
          null
        ]
      ],
      "transaction_sql": [
        "BEGIN",
        "SAVEPOINT nested_work",
        "RELEASE SAVEPOINT nested_work",
        "ROLLBACK",
        "BEGIN",
        "ROLLBACK"
      ]
    },
    "transaction_states": [
      {
        "in_transaction": false,
        "point": "fresh_connection"
      },
      {
        "in_transaction": true,
        "point": "python_context_entered"
      },
      {
        "in_transaction": true,
        "point": "before_savepoint"
      },
      {
        "in_transaction": true,
        "point": "after_savepoint"
      },
      {
        "in_transaction": true,
        "point": "after_release"
      },
      {
        "in_transaction": true,
        "point": "after_later_write"
      },
      {
        "in_transaction": true,
        "point": "after_context_exit"
      }
    ],
    "versions": {
      "python": "3.12.14",
      "sqlite": "3.53.1"
    },
    "execution": {
      "command": [
        "<same Python interpreter>",
        "-I",
        "pipeline.py",
        "autocommit-false"
      ],
      "exit_code": 0,
      "stdout": "{\"checks\": [\"fresh_connection_has_no_pending_transaction\", \"seed_rows_match_public_fixture\", \"real_outer_transaction_active_before_savepoint\", \"savepoint_opens_or_joins_real_transaction\", \"savepoint_write_visible_inside_connection\", \"release_retains_outer_transaction\", \"forced_outer_failure_caught\", \"reopened_database_integrity_is_ok\", \"seed_null_unicode_and_values_preserved\", \"reopened_rows_match_independent_fixture_oracle\", \"trace_confirms_begin_savepoint_release_rollback_order\", \"both_attempted_writes_absent_after_outer_rollback\"], \"configuration\": {\"autocommit\": false, \"autocommit_false_application\": \"fresh Connection.autocommit = False after trace registration\", \"explicit_begin_before_savepoint\": false, \"isolation_level\": \"\"}, \"forced_exception\": {\"message\": \"LAB forced outer failure after nested work\", \"type\": \"ForcedOuterFailure\"}, \"mode\": \"autocommit-false\", \"outer_begin_preceded_savepoint\": true, \"phase\": \"complete\", \"reopen_sql_trace\": [\"SELECT id, label, amount_cents FROM ledger ORDER BY id\", \"PRAGMA integrity_check\"], \"sql_trace\": [\"BEGIN\", \"SELECT id, label, amount_cents FROM ledger ORDER BY id\", \"SAVEPOINT nested_work\", \"INSERT INTO ledger (id, label, amount_cents) VALUES (3, 'LAB_savepoint', 250)\", \"SELECT id, label, amount_cents FROM ledger ORDER BY id\", \"RELEASE SAVEPOINT nested_work\", \"INSERT INTO ledger (id, label, amount_cents) VALUES (4, 'LAB_later_outer_write', 400)\", \"ROLLBACK\", \"BEGIN\", \"ROLLBACK\"], \"status\": \"passed\", \"summary\": {\"database_lifecycle\": \"new disposable file; writer closed; separate read-only connection queried; temporary directory removed\", \"database_sha256_after_close\": \"6c129576cb081a1fd9e800637a08ce397401ee655656265472aa343fdf1b36a6\", \"expected_rows_after_reconnect\": [[1, \"LAB_seed\", 100], [2, \"LAB_한글\", null]], \"integrity_check\": \"ok\", \"persisted_row_count\": 2, \"persisted_rows_after_reconnect\": [[1, \"LAB_seed\", 100], [2, \"LAB_한글\", null]], \"transaction_sql\": [\"BEGIN\", \"SAVEPOINT nested_work\", \"RELEASE SAVEPOINT nested_work\", \"ROLLBACK\", \"BEGIN\", \"ROLLBACK\"]}, \"transaction_states\": [{\"in_transaction\": false, \"point\": \"fresh_connection\"}, {\"in_transaction\": true, \"point\": \"python_context_entered\"}, {\"in_transaction\": true, \"point\": \"before_savepoint\"}, {\"in_transaction\": true, \"point\": \"after_savepoint\"}, {\"in_transaction\": true, \"point\": \"after_release\"}, {\"in_transaction\": true, \"point\": \"after_later_write\"}, {\"in_transaction\": true, \"point\": \"after_context_exit\"}], \"versions\": {\"python\": \"3.12.14\", \"sqlite\": \"3.53.1\"}}\n",
      "stderr": "",
      "elapsed_seconds": 0.028514,
      "stdout_sha256": "d3c152cfffe1c8d520596ed6013367a8c9cfac48db02252ed31d59ebc88b41d8",
      "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
    }
  },
  "probe_execution": {
    "command": [
      "<same Python interpreter>",
      "-I",
      "probe.py"
    ],
    "exit_code": 0,
    "stdout": "{\"libc\": [\"glibc\", \"2.39\"], \"machine\": \"x86_64\", \"os_release\": {\"ID\": \"ubuntu\", \"VERSION_ID\": \"24.04\"}, \"package_scope\": \"No third-party packages used or inventoried; standard-library sqlite3 only\", \"packages\": {}, \"python_abi\": \"cpython-312-x86_64-linux-gnu\", \"python_implementation\": \"CPython\", \"python_version\": \"3.12.14\", \"sqlite_capabilities\": {\"connection_autocommit_attribute\": true, \"default_autocommit\": -1, \"default_in_transaction\": false, \"default_isolation_level\": \"\", \"legacy_transaction_control_constant\": true}, \"sqlite_compile_options_sha256\": \"600e922c0614cd07a1640976eb2e283b43072322af46cbeb0df7a998990095cb\", \"sqlite_source_id\": \"2026-05-05 10:34:17 c88b22011a54b4f6fbd149e9f8e4de77658ce58143a1af0e3785e4e6475127e9\", \"sqlite_version\": \"3.53.1\", \"system\": \"Linux\"}\n",
    "stderr": "",
    "elapsed_seconds": 0.021323,
    "stdout_sha256": "5ce222db83646e870480be897cc782ff038504ee0a3c14a539bc57f62c3d7376",
    "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
  },
  "requirements_fixed": "# No pip installation required. Only the Python standard library is used.\n# Measured runtime: CPython 3.12.14, SQLite 3.53.1, Linux x86_64.\n",
  "test_sha256": "c1e2c39cf5c26f7740da99f4af7cbe8b7fff207b77bc070351802716bf56b395",
  "fixture_sha256": "4ced2f426b2ba81a2458bdefc5d29fae204752d400bdd129ce7104b7556a0e6a",
  "checks": [
    "fresh_connection_has_no_pending_transaction",
    "seed_rows_match_public_fixture",
    "real_outer_transaction_active_before_savepoint",
    "savepoint_opens_or_joins_real_transaction",
    "savepoint_write_visible_inside_connection",
    "release_retains_outer_transaction",
    "forced_outer_failure_caught",
    "reopened_database_integrity_is_ok",
    "seed_null_unicode_and_values_preserved",
    "reopened_rows_match_independent_fixture_oracle",
    "trace_confirms_begin_savepoint_release_rollback_order",
    "both_attempted_writes_absent_after_outer_rollback"
  ],
  "change_plan": {
    "kind": "transaction_boundary",
    "dependency_changes": [],
    "before": {
      "driver": "stdlib sqlite3",
      "transaction_mode": "legacy",
      "isolation_level": "",
      "outer_context": "with connection",
      "real_begin_before_savepoint": false
    },
    "after": {
      "driver": "stdlib sqlite3",
      "transaction_mode": "legacy",
      "isolation_level": "",
      "outer_context": "with connection",
      "real_begin_before_savepoint": true
    },
    "implementation": "pipeline.py: explicit connection.execute('BEGIN') before SAVEPOINT in fixed mode",
    "preconditions": [
      "fresh connection with no pending transaction",
      "one owner of the complete outer transaction",
      "no intervening commit before forced rollback"
    ],
    "do_not_apply": [
      "blindly issue BEGIN inside an existing transaction",
      "combine this explicit-BEGIN branch with autocommit=False",
      "infer SQLAlchemy or async integration validation from this stdlib test"
    ],
    "separate_measured_alternative": "Connection.autocommit=False on a fresh connection (Python 3.12+ interface; measured only on recorded runtime)"
  },
  "artifact_sha256": {
    "pipeline.py": "c1e2c39cf5c26f7740da99f4af7cbe8b7fff207b77bc070351802716bf56b395",
    "fixture.json": "4ced2f426b2ba81a2458bdefc5d29fae204752d400bdd129ce7104b7556a0e6a",
    "probe.py": "9a770dcc7e7f9fcad127131c05059e36afa305e5e694d5aed7622c0879e8ef64",
    "verify.py": "8c540a0d121eb57e6561731726416027fe4eac212dd70ebd502c657f37b54389",
    "requirements-fixed.txt": "86cec9cfcca8162a8d71b8a4dec4e890bd108cef8a29e1c1e480e50ac378fa29",
    "README.md": "c88360604fa389c906dc7a3eaf32be472860f217e0a3d9c0f848a177697ec49b",
    "SOURCES.md": "9b5f62cc3ab50171a107dced982947d7bd501c3ae7a74217bac5f5315bd52d20",
    "runs/autocommit-false.execution.json": "340f39dd478825aa0107994f85a617f1fd9308e67abd9ef1a19f090913815ef4",
    "runs/autocommit-false.stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
    "runs/autocommit-false.stdout.log": "d3c152cfffe1c8d520596ed6013367a8c9cfac48db02252ed31d59ebc88b41d8",
    "runs/begin-too-late.execution.json": "b71ff825811753cc39c3eb46edabf02830bb8731e5379fbba289e2d218be8726",
    "runs/begin-too-late.stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
    "runs/begin-too-late.stdout.log": "00b3d3430667c25551a74142b9eb9f4bbc35b308abbf96582a18c9699e49bd3d",
    "runs/broken.execution.json": "df168c085b93deeeb8f7c898db12cc221d90313d925d85632c05715e75cb6301",
    "runs/broken.stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
    "runs/broken.stdout.log": "df580fe1477330beac4ca122fbb3bede5532c30ca0ddccb8fe6c8a6b5e20e0d5",
    "runs/commit-control.execution.json": "5e43c9020be60f9043cf126dc9fb245c7b98537c45b0e0cc60f174da7d8d0ccd",
    "runs/commit-control.stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
    "runs/commit-control.stdout.log": "0a84b73e154f409b7aed093e92358c253720f591b37f62e0f80544d81f35aac4",
    "runs/fixed.execution.json": "d38ce2f9fbddd832cee737d3f90474cb5ddfa881cce0a9cb94ab55d342ab6d91",
    "runs/fixed.stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
    "runs/fixed.stdout.log": "149c1d5fe0f18641c56d0edcd0d643b623d82f221c8d12c5e521ba2445fc051e",
    "runs/isolation-none.execution.json": "cfca33a0a9c6d1f1f24e7b4d65961bef5d44e63fd9ebaa1729f346130484592e",
    "runs/isolation-none.stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
    "runs/isolation-none.stdout.log": "2fc27715506e47ab434336b1632f36f01cd04f9bb1ccd593f09586276e3d1976",
    "runs/probe.execution.json": "aee5f2ea7b88bf1b03640d5cafc783f3cf1dde9006d8ae58c5efd2ed4e8e2380",
    "runs/probe.stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
    "runs/probe.stdout.log": "5ce222db83646e870480be897cc782ff038504ee0a3c14a539bc57f62c3d7376",
    "runs/unreleased-control.execution.json": "76814e098daff410463255e89c7a9d6d828d7d64f1c299d3bf4208bdb3f79a03",
    "runs/unreleased-control.stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
    "runs/unreleased-control.stdout.log": "457bdb571587bb40cc37254cc45883848c70a4ea84cf6edabdb0a7ebb0e51801"
  },
  "sources": [
    {
      "title": "SQLite SAVEPOINT and outermost RELEASE semantics",
      "url": "https://www.sqlite.org/lang_savepoint.html"
    },
    {
      "title": "Python 3.12 sqlite3 transaction control",
      "url": "https://docs.python.org/3.12/library/sqlite3.html#transaction-control"
    },
    {
      "title": "SQLAlchemy SQLite legacy transaction mode and SAVEPOINT",
      "url": "https://docs.sqlalchemy.org/en/20/dialects/sqlite.html#legacy-transaction-mode-with-the-sqlite3-driver"
    }
  ],
  "scope": "Measured on Linux x86_64, CPython 3.12.14 and SQLite 3.53.1, using only standard-library sqlite3. In a disposable file database, a SAVEPOINT released before a real outer BEGIN leaves its row after a forced later failure. A separate read-only connection observes 3 rows instead of the 2 seed rows. Explicit BEGIN before SAVEPOINT restores exact seed rows after rollback (12 checks). Controls measure BEGIN-too-late, isolation_level=None without BEGIN, successful commit, and unreleased SAVEPOINT rollback. Connection.autocommit=False is separately executed and passes on this runtime; this attribute was added in Python 3.12. No SQLAlchemy/ORM integration, async driver, concurrency, power-loss durability, package upgrade, alternate journal mode, other OS, other Python version or other SQLite version was tested. All data is public and synthetic. Matching recorded metadata is not proof of application compatibility.",
  "record_id": "470a5b9df9da6fc6b733999865d903a57dd1f053fe195f31e740932672eecc4b"
}

Nothing is required in return. Reader notes and result reports are optional.

Optional delivery receipt

All records and downloads are already open. Generate a receipt only if useful for your work.

Responses from readers · unverified

Only notes explicitly authorized for public display appear here. Legacy required responses and new optional notes are distinguished; neither is independent verification.

No public reader responses yet.

Have a complete reproducible solution? Submit it for review →