Experiment formal browser session fixture registration red results 01 - kmosoti/FabricO11y GitHub Wiki

Browser session fixture registration: actual source counterexamples 01

This is source-harness evidence at b1e7e83c74ba029c3b377ee047220db93853d578, not candidate/browser acceptance. C-080 admitted this exact command. The unchanged production finalizer was exercised with actual owned process groups; the session checker controls detected its absent explicit AB/C checker.

Command: env PYTHONPATH=tools/ui python3 -B -m unittest -v test_session_clock.SessionFixtureBindingTests test_role_matrix.BrowserFixtureCleanupTests. It ran from 2026-10-13T04:34:37.819319+00:00 to 2026-10-13T04:34:40.827116+00:00. Exit 1, ten methods, nine assertion failures, one positive cleanup method accepted. No import, setup, or independent cleanup failure occurred.

Four failures were the missing AB/C checker. Five actual-finalizer failures were suppression of another group after an initial stop error, premature scratch removal while a sampler was alive, and an unreaped owned child after already-exited, terminated, and timed-out leaders. The independent control finalizer killed/reaped every still-owned process, stopped its sampler and restored the subreaper. Its literal records below preserve that distinction.

The outer unit fabric-work-5df178bd79204e9db8d6ba2385b68afe confirmed stop, removed its own launcher scratch, used no swap and reported memory peak 49926144 bytes. Failure evidence and all five control directories are preserved; already-deleted finalizer work is recorded as absent and has not been reconstructed. No full browser, clock adapter, guest or acceptance run was performed.

results/service-opening-candidate/browser-session-fixture-registration-red-01.json

SHA-256 9867f59e014d0d0e0a06a423da2a5a666a3f3786f48463f7fbac26e79d3641d3, 1672 bytes.

{
  "label": "browser-session-fixture-registration-red-01",
  "command": [
    "env",
    "PYTHONPATH=tools/ui",
    "python3",
    "-B",
    "-m",
    "unittest",
    "-v",
    "test_session_clock.SessionFixtureBindingTests",
    "test_role_matrix.BrowserFixtureCleanupTests"
  ],
  "delegated": false,
  "frozen": null,
  "scope": "harness controls only; no candidate acceptance evidence",
  "harness_revision": "b1e7e83c74ba029c3b377ee047220db93853d578",
  "source_status_before": "",
  "storage_root": "/run/media/kmosoti/data/FabricO11y",
  "admission_bytes": 32271986221,
  "admission_observation": {
    "data_bytes": 32271986221,
    "regular_path_bytes": 32271909711,
    "path_count": 380763,
    "uid": 0,
    "gid": 0,
    "attempt": 1
  },
  "reserved_bytes": 1073741824,
  "observations": [],
  "started_utc": "2026-10-13T04:34:37.819319+00:00",
  "state": "completed",
  "log": "/run/media/kmosoti/data/FabricO11y/results/service-opening-candidate/browser-session-fixture-registration-red-01.log",
  "launcher_exit": 1,
  "exit": 1,
  "source_status_after": "",
  "finished_utc": "2026-10-13T04:34:40.827116+00:00",
  "log_sha256": "799a38e3cb18a9598ede713977f4bb61f968eff084d25efb8e78f62ff54fd0d6",
  "resource_receipts": [
    {
      "path": "/run/media/kmosoti/data/FabricO11y/results/service-opening-candidate/resource-containment/fabric-work-5df178bd79204e9db8d6ba2385b68afe.json",
      "sha256": "5b9b7f360da027d55649535f12bcb24e458e3ad89274f9f70182ca952b722c59",
      "exit": 1,
      "stop_confirmed": true,
      "retained_failure_evidence": "/run/media/kmosoti/data/FabricO11y/evidence/fabric-work-5df178bd79204e9db8d6ba2385b68afe"
    }
  ]
}

results/service-opening-candidate/browser-session-fixture-registration-red-01.log

SHA-256 799a38e3cb18a9598ede713977f4bb61f968eff084d25efb8e78f62ff54fd0d6, 13667 bytes.

Running as unit: fabric-work-5df178bd79204e9db8d6ba2385b68afe.service
resource group: /user.slice/user-1000.slice/[email protected]/app.slice/fabric-work-5df178bd79204e9db8d6ba2385b68afe.service; memory.max=21474836480; swap.max=0
test_exact_session_rows_keep_original_boundaries_and_actual_request_windows (test_session_clock.SessionFixtureBindingTests.test_exact_session_rows_keep_original_boundaries_and_actual_request_windows) ... FAIL
test_explicit_two_state_checker_accepts_literal_binding_without_rewriting_rows (test_session_clock.SessionFixtureBindingTests.test_explicit_two_state_checker_accepts_literal_binding_without_rewriting_rows) ... FAIL
test_fixture_keys_images_and_process_receipts_are_independently_bound (test_session_clock.SessionFixtureBindingTests.test_fixture_keys_images_and_process_receipts_are_independently_bound) ... FAIL
test_fresh_distinct_state_and_serial_zero_population_stop_are_required (test_session_clock.SessionFixtureBindingTests.test_fresh_distinct_state_and_serial_zero_population_stop_are_required) ... FAIL
test_actual_finally_attempts_all_groups_and_retains_scratch_after_failed_stop (test_role_matrix.BrowserFixtureCleanupTests.test_actual_finally_attempts_all_groups_and_retains_scratch_after_failed_stop) ... resource group: /user.slice/user-1000.slice/[email protected]/app.slice/fabric-work-5df178bd79204e9db8d6ba2385b68afe.service; memory.max=21474836480; swap.max=0
browser control evidence retained: /run/media/kmosoti/data/FabricO11y/scratch/browser-cleanup-control-4vpv_tgn
FAIL
/usr/lib64/python3.14/subprocess.py:1139: ResourceWarning: subprocess 1379191 is still running
  _warn("subprocess %s is still running" % self.pid,
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/usr/lib64/python3.14/subprocess.py:1139: ResourceWarning: subprocess 1379193 is still running
  _warn("subprocess %s is still running" % self.pid,
ResourceWarning: Enable tracemalloc to get the object allocation traceback
test_actual_finally_normal_empty_fixture_has_confirmed_cleanup (test_role_matrix.BrowserFixtureCleanupTests.test_actual_finally_normal_empty_fixture_has_confirmed_cleanup) ... resource group: /user.slice/user-1000.slice/[email protected]/app.slice/fabric-work-5df178bd79204e9db8d6ba2385b68afe.service; memory.max=21474836480; swap.max=0
ok
test_actual_finally_preserves_scratch_until_bounded_sampler_is_stopped (test_role_matrix.BrowserFixtureCleanupTests.test_actual_finally_preserves_scratch_until_bounded_sampler_is_stopped) ... resource group: /user.slice/user-1000.slice/[email protected]/app.slice/fabric-work-5df178bd79204e9db8d6ba2385b68afe.service; memory.max=21474836480; swap.max=0
browser control evidence retained: /run/media/kmosoti/data/FabricO11y/scratch/browser-cleanup-control-tg7_g28p
FAIL
test_actual_finally_stops_child_when_leader_already_exited (test_role_matrix.BrowserFixtureCleanupTests.test_actual_finally_stops_child_when_leader_already_exited) ... resource group: /user.slice/user-1000.slice/[email protected]/app.slice/fabric-work-5df178bd79204e9db8d6ba2385b68afe.service; memory.max=21474836480; swap.max=0
browser control evidence retained: /run/media/kmosoti/data/FabricO11y/scratch/browser-cleanup-control-x6fny6zv
FAIL
test_actual_finally_stops_term_resistant_child_after_leader_termination (test_role_matrix.BrowserFixtureCleanupTests.test_actual_finally_stops_term_resistant_child_after_leader_termination) ... resource group: /user.slice/user-1000.slice/[email protected]/app.slice/fabric-work-5df178bd79204e9db8d6ba2385b68afe.service; memory.max=21474836480; swap.max=0
browser control evidence retained: /run/media/kmosoti/data/FabricO11y/scratch/browser-cleanup-control-hk9nasd7
FAIL
test_actual_finally_timeout_escalation_stops_whole_group (test_role_matrix.BrowserFixtureCleanupTests.test_actual_finally_timeout_escalation_stops_whole_group) ... resource group: /user.slice/user-1000.slice/[email protected]/app.slice/fabric-work-5df178bd79204e9db8d6ba2385b68afe.service; memory.max=21474836480; swap.max=0
browser control evidence retained: /run/media/kmosoti/data/FabricO11y/scratch/browser-cleanup-control-wz2k2c7a
FAIL

======================================================================
FAIL: test_exact_session_rows_keep_original_boundaries_and_actual_request_windows (test_session_clock.SessionFixtureBindingTests.test_exact_session_rows_keep_original_boundaries_and_actual_request_windows)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/run/media/kmosoti/data/FabricO11y/scratch/console-access-acceptance/tools/ui/test_session_clock.py", line 408, in test_exact_session_rows_keep_original_boundaries_and_actual_request_windows
    checker = self.checker()
  File "/run/media/kmosoti/data/FabricO11y/scratch/console-access-acceptance/tools/ui/test_session_clock.py", line 312, in checker
    self.assertTrue(callable(checker), 'missing explicit two-state session fixture checker')
    ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: False is not true : missing explicit two-state session fixture checker

======================================================================
FAIL: test_explicit_two_state_checker_accepts_literal_binding_without_rewriting_rows (test_session_clock.SessionFixtureBindingTests.test_explicit_two_state_checker_accepts_literal_binding_without_rewriting_rows)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/run/media/kmosoti/data/FabricO11y/scratch/console-access-acceptance/tools/ui/test_session_clock.py", line 316, in test_explicit_two_state_checker_accepts_literal_binding_without_rewriting_rows
    checker = self.checker()
  File "/run/media/kmosoti/data/FabricO11y/scratch/console-access-acceptance/tools/ui/test_session_clock.py", line 312, in checker
    self.assertTrue(callable(checker), 'missing explicit two-state session fixture checker')
    ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: False is not true : missing explicit two-state session fixture checker

======================================================================
FAIL: test_fixture_keys_images_and_process_receipts_are_independently_bound (test_session_clock.SessionFixtureBindingTests.test_fixture_keys_images_and_process_receipts_are_independently_bound)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/run/media/kmosoti/data/FabricO11y/scratch/console-access-acceptance/tools/ui/test_session_clock.py", line 323, in test_fixture_keys_images_and_process_receipts_are_independently_bound
    checker = self.checker()
  File "/run/media/kmosoti/data/FabricO11y/scratch/console-access-acceptance/tools/ui/test_session_clock.py", line 312, in checker
    self.assertTrue(callable(checker), 'missing explicit two-state session fixture checker')
    ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: False is not true : missing explicit two-state session fixture checker

======================================================================
FAIL: test_fresh_distinct_state_and_serial_zero_population_stop_are_required (test_session_clock.SessionFixtureBindingTests.test_fresh_distinct_state_and_serial_zero_population_stop_are_required)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/run/media/kmosoti/data/FabricO11y/scratch/console-access-acceptance/tools/ui/test_session_clock.py", line 358, in test_fresh_distinct_state_and_serial_zero_population_stop_are_required
    checker = self.checker()
  File "/run/media/kmosoti/data/FabricO11y/scratch/console-access-acceptance/tools/ui/test_session_clock.py", line 312, in checker
    self.assertTrue(callable(checker), 'missing explicit two-state session fixture checker')
    ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: False is not true : missing explicit two-state session fixture checker

======================================================================
FAIL: test_actual_finally_attempts_all_groups_and_retains_scratch_after_failed_stop (test_role_matrix.BrowserFixtureCleanupTests.test_actual_finally_attempts_all_groups_and_retains_scratch_after_failed_stop)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/run/media/kmosoti/data/FabricO11y/scratch/console-access-acceptance/tools/ui/test_role_matrix.py", line 590, in test_actual_finally_attempts_all_groups_and_retains_scratch_after_failed_stop
    self.assertEqual(set(attempted), {item['process'].pid for item in groups},
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                     'a first stop error must not suppress other owned group attempts')
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: Items in the second set but not the first:
1379191 : a first stop error must not suppress other owned group attempts

======================================================================
FAIL: test_actual_finally_preserves_scratch_until_bounded_sampler_is_stopped (test_role_matrix.BrowserFixtureCleanupTests.test_actual_finally_preserves_scratch_until_bounded_sampler_is_stopped)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/run/media/kmosoti/data/FabricO11y/scratch/console-access-acceptance/tools/ui/test_role_matrix.py", line 606, in test_actual_finally_preserves_scratch_until_bounded_sampler_is_stopped
    self.assertTrue(namespace['work'].is_dir(), 'scratch must not be removed while sampler lives')
    ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: False is not true : scratch must not be removed while sampler lives

======================================================================
FAIL: test_actual_finally_stops_child_when_leader_already_exited (test_role_matrix.BrowserFixtureCleanupTests.test_actual_finally_stops_child_when_leader_already_exited)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/run/media/kmosoti/data/FabricO11y/scratch/console-access-acceptance/tools/ui/test_role_matrix.py", line 551, in test_actual_finally_stops_child_when_leader_already_exited
    self.assert_zero_population(groups)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^
  File "/run/media/kmosoti/data/FabricO11y/scratch/console-access-acceptance/tools/ui/test_role_matrix.py", line 535, in assert_zero_population
    self.assertFalse((Path('/proc') / str(item['child'])).exists(), 'actual finalizer left an unreaped owned child')
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: True is not false : actual finalizer left an unreaped owned child

======================================================================
FAIL: test_actual_finally_stops_term_resistant_child_after_leader_termination (test_role_matrix.BrowserFixtureCleanupTests.test_actual_finally_stops_term_resistant_child_after_leader_termination)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/run/media/kmosoti/data/FabricO11y/scratch/console-access-acceptance/tools/ui/test_role_matrix.py", line 556, in test_actual_finally_stops_term_resistant_child_after_leader_termination
    self.assert_zero_population(groups)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^
  File "/run/media/kmosoti/data/FabricO11y/scratch/console-access-acceptance/tools/ui/test_role_matrix.py", line 535, in assert_zero_population
    self.assertFalse((Path('/proc') / str(item['child'])).exists(), 'actual finalizer left an unreaped owned child')
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: True is not false : actual finalizer left an unreaped owned child

======================================================================
FAIL: test_actual_finally_timeout_escalation_stops_whole_group (test_role_matrix.BrowserFixtureCleanupTests.test_actual_finally_timeout_escalation_stops_whole_group)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/run/media/kmosoti/data/FabricO11y/scratch/console-access-acceptance/tools/ui/test_role_matrix.py", line 571, in test_actual_finally_timeout_escalation_stops_whole_group
    self.assert_zero_population(groups)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^
  File "/run/media/kmosoti/data/FabricO11y/scratch/console-access-acceptance/tools/ui/test_role_matrix.py", line 535, in assert_zero_population
    self.assertFalse((Path('/proc') / str(item['child'])).exists(), 'actual finalizer left an unreaped owned child')
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: True is not false : actual finalizer left an unreaped owned child

----------------------------------------------------------------------
Ran 10 tests in 2.546s

FAILED (failures=9)
          Finished with result: exit-code
Main processes terminated with: code=exited, status=1/FAILURE
               Service runtime: 2.725s
             CPU time consumed: 354ms
                   Memory peak: 47.6M (swap: 0B)

results/service-opening-candidate/resource-containment/fabric-work-5df178bd79204e9db8d6ba2385b68afe.json

SHA-256 5b9b7f360da027d55649535f12bcb24e458e3ad89274f9f70182ca952b722c59, 1798 bytes.

{
  "unit": "fabric-work-5df178bd79204e9db8d6ba2385b68afe",
  "command": [
    "env",
    "PYTHONPATH=tools/ui",
    "python3",
    "-B",
    "-m",
    "unittest",
    "-v",
    "test_session_clock.SessionFixtureBindingTests",
    "test_role_matrix.BrowserFixtureCleanupTests"
  ],
  "exit": 1,
  "wrapper_exit": 1,
  "command_receipt": {
    "unit": "fabric-work-5df178bd79204e9db8d6ba2385b68afe",
    "command": [
      "env",
      "PYTHONPATH=tools/ui",
      "python3",
      "-B",
      "-m",
      "unittest",
      "-v",
      "test_session_clock.SessionFixtureBindingTests",
      "test_role_matrix.BrowserFixtureCleanupTests"
    ],
    "cgroup": "/sys/fs/cgroup/user.slice/user-1000.slice/[email protected]/app.slice/fabric-work-5df178bd79204e9db8d6ba2385b68afe.service",
    "state": "completed",
    "exit": 1,
    "resource_observation": "command_return_before_service_stop",
    "resources": {
      "memory.peak": "49926144",
      "memory.events": "low 0\nhigh 0\nmax 0\noom 0\noom_kill 0\noom_group_kill 0\nsock_throttled 0",
      "cpu.stat": "usage_usec 348848\nuser_usec 299185\nsystem_usec 49662\nnice_usec 0\ncore_sched.force_idle_usec 0\nnr_periods 0\nnr_throttled 0\nthrottled_usec 0\nnr_bursts 0\nburst_usec 0"
    }
  },
  "stop_confirmed": true,
  "stop_error": null,
  "started_unix": 1791866077.84849,
  "elapsed_s": 2.7394766807556152,
  "storage_root": "/run/media/kmosoti/data/FabricO11y",
  "temporary": "/run/media/kmosoti/data/FabricO11y/scratch/work-u24lu5_x",
  "temporary_removed": true,
  "retained_failure_evidence": "/run/media/kmosoti/data/FabricO11y/evidence/fabric-work-5df178bd79204e9db8d6ba2385b68afe",
  "memory_high_bytes": 17179869184,
  "memory_max_bytes": 21474836480,
  "swap_max_bytes": 0,
  "runtime_max_seconds": 1800,
  "delegated": false
}

scratch/browser-cleanup-control-4vpv_tgn/cleanup-evidence.json

SHA-256 17193faec26edaddbd2ac23e44f471134a23fa6089bca1aa51a5d5d2ebe4d39e, 5175 bytes.

{
  "body_failure": {
    "type": "AssertionError",
    "message": "Items in the second set but not the first:\n1379191 : a first stop error must not suppress other owned group attempts"
  },
  "scratch_retained": true,
  "cleanup_began_monotonic_ns": 688022261360261,
  "processes": [
    {
      "pid": 1379191,
      "expected_start_ticks": 78089055,
      "began_monotonic_ns": 688022261482225,
      "pidfd_kill_attempted": true,
      "stop_confirmed": true,
      "observed_start_ticks": 78089055,
      "pgid": 1379191,
      "state_before_signal": "S",
      "outcome": "reaped by control",
      "wait_status": 9,
      "ended_monotonic_ns": 688022271837179
    },
    {
      "pid": 1379192,
      "expected_start_ticks": 78089057,
      "began_monotonic_ns": 688022271845787,
      "pidfd_kill_attempted": true,
      "stop_confirmed": true,
      "observed_start_ticks": 78089057,
      "pgid": 1379191,
      "state_before_signal": "S",
      "outcome": "reaped by control",
      "wait_status": 9,
      "ended_monotonic_ns": 688022282465091
    },
    {
      "pid": 1379193,
      "expected_start_ticks": 78089058,
      "began_monotonic_ns": 688022282473292,
      "pidfd_kill_attempted": true,
      "stop_confirmed": true,
      "observed_start_ticks": 78089058,
      "pgid": 1379193,
      "state_before_signal": "S",
      "outcome": "reaped by control",
      "wait_status": 9,
      "ended_monotonic_ns": 688022292844548
    },
    {
      "pid": 1379194,
      "expected_start_ticks": 78089060,
      "began_monotonic_ns": 688022292851278,
      "pidfd_kill_attempted": true,
      "stop_confirmed": true,
      "observed_start_ticks": 78089060,
      "pgid": 1379193,
      "state_before_signal": "S",
      "outcome": "reaped by control",
      "wait_status": 9,
      "ended_monotonic_ns": 688022303445946
    }
  ],
  "groups": [
    {
      "pgid": 1379191,
      "confirmed_zero_population": true,
      "before_monotonic_ns": 688022303457501,
      "after_monotonic_ns": 688022303470415
    },
    {
      "pgid": 1379193,
      "confirmed_zero_population": true,
      "before_monotonic_ns": 688022303472994,
      "after_monotonic_ns": 688022303475545
    }
  ],
  "files": [
    {
      "path": "owned-process.py",
      "identity": {
        "dev": 64513,
        "ino": 14569987,
        "mode": 33188,
        "uid": 1000,
        "nlink": 1,
        "size": 1638,
        "mtime_ns": 1791866078014626383,
        "ctime_ns": 1791866078014626383
      },
      "sha256": "7f699be4983ecef61e10f6841691e0f3b7216b3c2e7420d01aeafbc4559d0714"
    },
    {
      "path": "group-0/child.pid",
      "identity": {
        "dev": 64513,
        "ino": 14569990,
        "mode": 33188,
        "uid": 1000,
        "nlink": 1,
        "size": 16,
        "mtime_ns": 1791866078032050847,
        "ctime_ns": 1791866078041849700
      },
      "sha256": "4a5196342f67e03961821f900e3aab76cb335766f33c4a8d8685f6365393c8f2",
      "pid": 1379192,
      "start_ticks": 78089057,
      "pidfd_bound": true
    },
    {
      "path": "group-0/ready",
      "identity": {
        "dev": 64513,
        "ino": 14569992,
        "mode": 33188,
        "uid": 1000,
        "nlink": 1,
        "size": 5,
        "mtime_ns": 1791866078043082449,
        "ctime_ns": 1791866078043849688
      },
      "sha256": "b24d6d33736ecd5604a4b17bc9c6481039fac362bb7df044ef1c10a2bfd21db6"
    },
    {
      "path": "group-0/process.log",
      "identity": {
        "dev": 64513,
        "ino": 14569989,
        "mode": 33188,
        "uid": 1000,
        "nlink": 1,
        "size": 0,
        "mtime_ns": 1791866078014626383,
        "ctime_ns": 1791866078014626383
      },
      "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
    },
    {
      "path": "group-1/child.pid",
      "identity": {
        "dev": 64513,
        "ino": 14569995,
        "mode": 33188,
        "uid": 1000,
        "nlink": 1,
        "size": 16,
        "mtime_ns": 1791866078064157033,
        "ctime_ns": 1791866078064849558
      },
      "sha256": "09407ef6bde2bf057ae4fcd269ca8387e873949ce8ad39c2e620c0fb2c21c564",
      "pid": 1379194,
      "start_ticks": 78089060,
      "pidfd_bound": true
    },
    {
      "path": "group-1/ready",
      "identity": {
        "dev": 64513,
        "ino": 14569997,
        "mode": 33188,
        "uid": 1000,
        "nlink": 1,
        "size": 5,
        "mtime_ns": 1791866078066317275,
        "ctime_ns": 1791866078066849546
      },
      "sha256": "b24d6d33736ecd5604a4b17bc9c6481039fac362bb7df044ef1c10a2bfd21db6"
    },
    {
      "path": "group-1/process.log",
      "identity": {
        "dev": 64513,
        "ino": 14569994,
        "mode": 33188,
        "uid": 1000,
        "nlink": 1,
        "size": 0,
        "mtime_ns": 1791866078045849676,
        "ctime_ns": 1791866078045849676
      },
      "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
    }
  ],
  "sampler_alive_before_cleanup": true,
  "sampler_stopped": true,
  "subreaper_restored": true,
  "work_exists_after_control": true,
  "cleanup_errors": [],
  "recorded_monotonic_ns": 688022303939237
}

scratch/browser-cleanup-control-4vpv_tgn/group-0/child.pid

SHA-256 4a5196342f67e03961821f900e3aab76cb335766f33c4a8d8685f6365393c8f2, 16 bytes.

1379192 78089057

scratch/browser-cleanup-control-4vpv_tgn/group-0/process.log

SHA-256 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855, 0 bytes.


scratch/browser-cleanup-control-4vpv_tgn/group-0/ready

SHA-256 b24d6d33736ecd5604a4b17bc9c6481039fac362bb7df044ef1c10a2bfd21db6, 5 bytes.

ready

scratch/browser-cleanup-control-4vpv_tgn/group-1/child.pid

SHA-256 09407ef6bde2bf057ae4fcd269ca8387e873949ce8ad39c2e620c0fb2c21c564, 16 bytes.

1379194 78089060

scratch/browser-cleanup-control-4vpv_tgn/group-1/process.log

SHA-256 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855, 0 bytes.


scratch/browser-cleanup-control-4vpv_tgn/group-1/ready

SHA-256 b24d6d33736ecd5604a4b17bc9c6481039fac362bb7df044ef1c10a2bfd21db6, 5 bytes.

ready

scratch/browser-cleanup-control-4vpv_tgn/owned-process.py

SHA-256 7f699be4983ecef61e10f6841691e0f3b7216b3c2e7420d01aeafbc4559d0714, 1638 bytes.

import os, select, signal, sys, time
from pathlib import Path
directory, work, mode = Path(sys.argv[1]), Path(sys.argv[2]), sys.argv[3]
expires = time.monotonic() + 45
def atomic(name, text):
    pending = directory / (name + '.pending')
    with pending.open('x') as stream:
        stream.write(text); stream.flush(); os.fsync(stream.fileno())
    pending.replace(directory / name)
if mode == 'timeout': signal.signal(signal.SIGTERM, signal.SIG_IGN)
gate_read, gate_write = os.pipe()
child = os.fork()
if child == 0:
    os.close(gate_write)
    if not select.select([gate_read], [], [], 5)[0] or os.read(gate_read, 1) != b'1': os._exit(1)
    os.close(gate_read)
    signal.signal(signal.SIGTERM, signal.SIG_IGN)
    held = (work / ('held-' + directory.name)).open('xb')
    held.write(b'literal browser private fixture'); held.flush()
    atomic('ready', 'ready')
    time.sleep(max(0, expires - time.monotonic()))
    os._exit(0)
os.close(gate_read)
try:
    process = Path('/proc') / str(child)
    fields = (process / 'stat').read_text().rsplit(')', 1)[1].split()
    if process.stat().st_uid != os.getuid() or int(fields[19]) <= 0 or int(fields[1]) != os.getpid() or int(fields[2]) != os.getpid():
        raise RuntimeError('fork child is outside owned private group')
    atomic('child.pid', f'{child} {fields[19]}')
    os.write(gate_write, b'1')
finally:
    os.close(gate_write)
deadline = time.monotonic() + 5
while not (directory / 'ready').exists():
    if time.monotonic() >= deadline: raise RuntimeError('child readiness deadline')
    time.sleep(.01)
if mode != 'exited': time.sleep(max(0, expires - time.monotonic()))

scratch/browser-cleanup-control-4vpv_tgn/work/held-group-0

SHA-256 93f54be9ac7e2d02b12a2608593fcb7195dbab9f7536463d01e9a720aaba568d, 31 bytes.

literal browser private fixture

scratch/browser-cleanup-control-4vpv_tgn/work/held-group-1

SHA-256 93f54be9ac7e2d02b12a2608593fcb7195dbab9f7536463d01e9a720aaba568d, 31 bytes.

literal browser private fixture

scratch/browser-cleanup-control-tg7_g28p/cleanup-evidence.json

SHA-256 e4438ac29ffd591db1ca215ae753bff07f4cb5244e8747eb520ba8d668f7ae89, 848 bytes.

{
  "body_failure": {
    "type": "AssertionError",
    "message": "False is not true : scratch must not be removed while sampler lives"
  },
  "scratch_retained": true,
  "cleanup_began_monotonic_ns": 688024349993951,
  "processes": [],
  "groups": [],
  "files": [
    {
      "path": "owned-process.py",
      "identity": {
        "dev": 64513,
        "ino": 14570002,
        "mode": 33188,
        "uid": 1000,
        "nlink": 1,
        "size": 1638,
        "mtime_ns": 1791866078166818655,
        "ctime_ns": 1791866078166818655
      },
      "sha256": "7f699be4983ecef61e10f6841691e0f3b7216b3c2e7420d01aeafbc4559d0714"
    }
  ],
  "sampler_alive_before_cleanup": true,
  "sampler_stopped": true,
  "subreaper_restored": true,
  "work_exists_after_control": false,
  "cleanup_errors": [],
  "recorded_monotonic_ns": 688024350288432
}

scratch/browser-cleanup-control-tg7_g28p/out/browser.json

SHA-256 a21bc0b62792399ce22962ed9f5ffc56407fdce01e814f1b02d4700dc94b54a6, 288 bytes.

{
  "exit": 0,
  "cleanup": "owned TLS/server/browser fixtures removed; process groups stopped; screenshots/logs retained",
  "remaining_uncertainty": "virtual authenticator only; no physical/synced passkeys, OS trust installation, mobile OS, general capacity or release qualification"
}

scratch/browser-cleanup-control-tg7_g28p/out/resource-samples.json

SHA-256 37517e5f3dc66819f61f5a7bb8ace1921282415f10551d2defa5c3eb0985b570, 3 bytes.

[]

scratch/browser-cleanup-control-tg7_g28p/owned-process.py

SHA-256 7f699be4983ecef61e10f6841691e0f3b7216b3c2e7420d01aeafbc4559d0714, 1638 bytes.

import os, select, signal, sys, time
from pathlib import Path
directory, work, mode = Path(sys.argv[1]), Path(sys.argv[2]), sys.argv[3]
expires = time.monotonic() + 45
def atomic(name, text):
    pending = directory / (name + '.pending')
    with pending.open('x') as stream:
        stream.write(text); stream.flush(); os.fsync(stream.fileno())
    pending.replace(directory / name)
if mode == 'timeout': signal.signal(signal.SIGTERM, signal.SIG_IGN)
gate_read, gate_write = os.pipe()
child = os.fork()
if child == 0:
    os.close(gate_write)
    if not select.select([gate_read], [], [], 5)[0] or os.read(gate_read, 1) != b'1': os._exit(1)
    os.close(gate_read)
    signal.signal(signal.SIGTERM, signal.SIG_IGN)
    held = (work / ('held-' + directory.name)).open('xb')
    held.write(b'literal browser private fixture'); held.flush()
    atomic('ready', 'ready')
    time.sleep(max(0, expires - time.monotonic()))
    os._exit(0)
os.close(gate_read)
try:
    process = Path('/proc') / str(child)
    fields = (process / 'stat').read_text().rsplit(')', 1)[1].split()
    if process.stat().st_uid != os.getuid() or int(fields[19]) <= 0 or int(fields[1]) != os.getpid() or int(fields[2]) != os.getpid():
        raise RuntimeError('fork child is outside owned private group')
    atomic('child.pid', f'{child} {fields[19]}')
    os.write(gate_write, b'1')
finally:
    os.close(gate_write)
deadline = time.monotonic() + 5
while not (directory / 'ready').exists():
    if time.monotonic() >= deadline: raise RuntimeError('child readiness deadline')
    time.sleep(.01)
if mode != 'exited': time.sleep(max(0, expires - time.monotonic()))

scratch/browser-cleanup-control-x6fny6zv/cleanup-evidence.json

SHA-256 990da5262f03d0f46d0098df2457c98286df11015b1ca7b1bef0a3bd5dc2d916, 2865 bytes.

{
  "body_failure": {
    "type": "AssertionError",
    "message": "True is not false : actual finalizer left an unreaped owned child"
  },
  "scratch_retained": true,
  "cleanup_began_monotonic_ns": 688024414600997,
  "processes": [
    {
      "pid": 1379199,
      "expected_start_ticks": 78089273,
      "began_monotonic_ns": 688024414607263,
      "pidfd_kill_attempted": false,
      "stop_confirmed": true,
      "outcome": "already absent",
      "ended_monotonic_ns": 688024414635726
    },
    {
      "pid": 1379200,
      "expected_start_ticks": 78089274,
      "began_monotonic_ns": 688024414639481,
      "pidfd_kill_attempted": true,
      "stop_confirmed": true,
      "observed_start_ticks": 78089274,
      "pgid": 1379199,
      "state_before_signal": "S",
      "outcome": "reaped by control",
      "wait_status": 9,
      "ended_monotonic_ns": 688024424927509
    }
  ],
  "groups": [
    {
      "pgid": 1379199,
      "confirmed_zero_population": true,
      "before_monotonic_ns": 688024424935936,
      "after_monotonic_ns": 688024424948062
    }
  ],
  "files": [
    {
      "path": "owned-process.py",
      "identity": {
        "dev": 64513,
        "ino": 14570008,
        "mode": 33188,
        "uid": 1000,
        "nlink": 1,
        "size": 1638,
        "mtime_ns": 1791866080193836437,
        "ctime_ns": 1791866080193836437
      },
      "sha256": "7f699be4983ecef61e10f6841691e0f3b7216b3c2e7420d01aeafbc4559d0714"
    },
    {
      "path": "group-0/child.pid",
      "identity": {
        "dev": 64513,
        "ino": 14570011,
        "mode": 33188,
        "uid": 1000,
        "nlink": 1,
        "size": 16,
        "mtime_ns": 1791866080210708365,
        "ctime_ns": 1791866080211836326
      },
      "sha256": "6896d3e8f91b0a67c7730a5aacfc0a493638636ddb886d947921a6b2f42817f9",
      "pid": 1379200,
      "start_ticks": 78089274,
      "pidfd_bound": true
    },
    {
      "path": "group-0/ready",
      "identity": {
        "dev": 64513,
        "ino": 14570013,
        "mode": 33188,
        "uid": 1000,
        "nlink": 1,
        "size": 5,
        "mtime_ns": 1791866080212410359,
        "ctime_ns": 1791866080212836320
      },
      "sha256": "b24d6d33736ecd5604a4b17bc9c6481039fac362bb7df044ef1c10a2bfd21db6"
    },
    {
      "path": "group-0/process.log",
      "identity": {
        "dev": 64513,
        "ino": 14570010,
        "mode": 33188,
        "uid": 1000,
        "nlink": 1,
        "size": 0,
        "mtime_ns": 1791866080193836437,
        "ctime_ns": 1791866080193836437
      },
      "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
    }
  ],
  "sampler_alive_before_cleanup": false,
  "sampler_stopped": true,
  "subreaper_restored": true,
  "work_exists_after_control": false,
  "cleanup_errors": [],
  "recorded_monotonic_ns": 688024425332806
}

scratch/browser-cleanup-control-x6fny6zv/group-0/child.pid

SHA-256 6896d3e8f91b0a67c7730a5aacfc0a493638636ddb886d947921a6b2f42817f9, 16 bytes.

1379200 78089274

scratch/browser-cleanup-control-x6fny6zv/group-0/process.log

SHA-256 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855, 0 bytes.


scratch/browser-cleanup-control-x6fny6zv/group-0/ready

SHA-256 b24d6d33736ecd5604a4b17bc9c6481039fac362bb7df044ef1c10a2bfd21db6, 5 bytes.

ready

scratch/browser-cleanup-control-x6fny6zv/out/browser.json

SHA-256 f89d94d009cb26de9518316334129eb68aa8079416ec3783d77b938dde05ddb9, 331 bytes.

{
  "exit": 0,
  "process_exits": {
    "group-0": 0
  },
  "cleanup": "owned TLS/server/browser fixtures removed; process groups stopped; screenshots/logs retained",
  "remaining_uncertainty": "virtual authenticator only; no physical/synced passkeys, OS trust installation, mobile OS, general capacity or release qualification"
}

scratch/browser-cleanup-control-x6fny6zv/out/resource-samples.json

SHA-256 37517e5f3dc66819f61f5a7bb8ace1921282415f10551d2defa5c3eb0985b570, 3 bytes.

[]

scratch/browser-cleanup-control-x6fny6zv/owned-process.py

SHA-256 7f699be4983ecef61e10f6841691e0f3b7216b3c2e7420d01aeafbc4559d0714, 1638 bytes.

import os, select, signal, sys, time
from pathlib import Path
directory, work, mode = Path(sys.argv[1]), Path(sys.argv[2]), sys.argv[3]
expires = time.monotonic() + 45
def atomic(name, text):
    pending = directory / (name + '.pending')
    with pending.open('x') as stream:
        stream.write(text); stream.flush(); os.fsync(stream.fileno())
    pending.replace(directory / name)
if mode == 'timeout': signal.signal(signal.SIGTERM, signal.SIG_IGN)
gate_read, gate_write = os.pipe()
child = os.fork()
if child == 0:
    os.close(gate_write)
    if not select.select([gate_read], [], [], 5)[0] or os.read(gate_read, 1) != b'1': os._exit(1)
    os.close(gate_read)
    signal.signal(signal.SIGTERM, signal.SIG_IGN)
    held = (work / ('held-' + directory.name)).open('xb')
    held.write(b'literal browser private fixture'); held.flush()
    atomic('ready', 'ready')
    time.sleep(max(0, expires - time.monotonic()))
    os._exit(0)
os.close(gate_read)
try:
    process = Path('/proc') / str(child)
    fields = (process / 'stat').read_text().rsplit(')', 1)[1].split()
    if process.stat().st_uid != os.getuid() or int(fields[19]) <= 0 or int(fields[1]) != os.getpid() or int(fields[2]) != os.getpid():
        raise RuntimeError('fork child is outside owned private group')
    atomic('child.pid', f'{child} {fields[19]}')
    os.write(gate_write, b'1')
finally:
    os.close(gate_write)
deadline = time.monotonic() + 5
while not (directory / 'ready').exists():
    if time.monotonic() >= deadline: raise RuntimeError('child readiness deadline')
    time.sleep(.01)
if mode != 'exited': time.sleep(max(0, expires - time.monotonic()))

scratch/browser-cleanup-control-hk9nasd7/cleanup-evidence.json

SHA-256 92c16388776d25b7b4bbb4e8abd60385feccdc4f8fda83a339627f05292cf409, 2865 bytes.

{
  "body_failure": {
    "type": "AssertionError",
    "message": "True is not false : actual finalizer left an unreaped owned child"
  },
  "scratch_retained": true,
  "cleanup_began_monotonic_ns": 688024464639195,
  "processes": [
    {
      "pid": 1379202,
      "expected_start_ticks": 78089279,
      "began_monotonic_ns": 688024464647736,
      "pidfd_kill_attempted": false,
      "stop_confirmed": true,
      "outcome": "already absent",
      "ended_monotonic_ns": 688024464677737
    },
    {
      "pid": 1379203,
      "expected_start_ticks": 78089281,
      "began_monotonic_ns": 688024464681887,
      "pidfd_kill_attempted": true,
      "stop_confirmed": true,
      "observed_start_ticks": 78089281,
      "pgid": 1379202,
      "state_before_signal": "S",
      "outcome": "reaped by control",
      "wait_status": 9,
      "ended_monotonic_ns": 688024474906012
    }
  ],
  "groups": [
    {
      "pgid": 1379202,
      "confirmed_zero_population": true,
      "before_monotonic_ns": 688024474914467,
      "after_monotonic_ns": 688024474925826
    }
  ],
  "files": [
    {
      "path": "owned-process.py",
      "identity": {
        "dev": 64513,
        "ino": 14570018,
        "mode": 33188,
        "uid": 1000,
        "nlink": 1,
        "size": 1638,
        "mtime_ns": 1791866080259226518,
        "ctime_ns": 1791866080259226518
      },
      "sha256": "7f699be4983ecef61e10f6841691e0f3b7216b3c2e7420d01aeafbc4559d0714"
    },
    {
      "path": "group-0/child.pid",
      "identity": {
        "dev": 64513,
        "ino": 14570021,
        "mode": 33188,
        "uid": 1000,
        "nlink": 1,
        "size": 16,
        "mtime_ns": 1791866080276149661,
        "ctime_ns": 1791866080276835926
      },
      "sha256": "a514eb8ab3812fdbe2e9de46d702acfac0d284088499e694d23077159234cfe3",
      "pid": 1379203,
      "start_ticks": 78089281,
      "pidfd_bound": true
    },
    {
      "path": "group-0/ready",
      "identity": {
        "dev": 64513,
        "ino": 14570023,
        "mode": 33188,
        "uid": 1000,
        "nlink": 1,
        "size": 5,
        "mtime_ns": 1791866080277794319,
        "ctime_ns": 1791866080277835920
      },
      "sha256": "b24d6d33736ecd5604a4b17bc9c6481039fac362bb7df044ef1c10a2bfd21db6"
    },
    {
      "path": "group-0/process.log",
      "identity": {
        "dev": 64513,
        "ino": 14570020,
        "mode": 33188,
        "uid": 1000,
        "nlink": 1,
        "size": 0,
        "mtime_ns": 1791866080259226518,
        "ctime_ns": 1791866080259226518
      },
      "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
    }
  ],
  "sampler_alive_before_cleanup": false,
  "sampler_stopped": true,
  "subreaper_restored": true,
  "work_exists_after_control": false,
  "cleanup_errors": [],
  "recorded_monotonic_ns": 688024475280112
}

scratch/browser-cleanup-control-hk9nasd7/group-0/child.pid

SHA-256 a514eb8ab3812fdbe2e9de46d702acfac0d284088499e694d23077159234cfe3, 16 bytes.

1379203 78089281

scratch/browser-cleanup-control-hk9nasd7/group-0/process.log

SHA-256 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855, 0 bytes.


scratch/browser-cleanup-control-hk9nasd7/group-0/ready

SHA-256 b24d6d33736ecd5604a4b17bc9c6481039fac362bb7df044ef1c10a2bfd21db6, 5 bytes.

ready

scratch/browser-cleanup-control-hk9nasd7/out/browser.json

SHA-256 83df3eb5b4ce0daf1d61fca299b240e3be40c276b4c3a3d4fbe02d7d57afa517, 333 bytes.

{
  "exit": 0,
  "process_exits": {
    "group-0": -15
  },
  "cleanup": "owned TLS/server/browser fixtures removed; process groups stopped; screenshots/logs retained",
  "remaining_uncertainty": "virtual authenticator only; no physical/synced passkeys, OS trust installation, mobile OS, general capacity or release qualification"
}

scratch/browser-cleanup-control-hk9nasd7/out/resource-samples.json

SHA-256 37517e5f3dc66819f61f5a7bb8ace1921282415f10551d2defa5c3eb0985b570, 3 bytes.

[]

scratch/browser-cleanup-control-hk9nasd7/owned-process.py

SHA-256 7f699be4983ecef61e10f6841691e0f3b7216b3c2e7420d01aeafbc4559d0714, 1638 bytes.

import os, select, signal, sys, time
from pathlib import Path
directory, work, mode = Path(sys.argv[1]), Path(sys.argv[2]), sys.argv[3]
expires = time.monotonic() + 45
def atomic(name, text):
    pending = directory / (name + '.pending')
    with pending.open('x') as stream:
        stream.write(text); stream.flush(); os.fsync(stream.fileno())
    pending.replace(directory / name)
if mode == 'timeout': signal.signal(signal.SIGTERM, signal.SIG_IGN)
gate_read, gate_write = os.pipe()
child = os.fork()
if child == 0:
    os.close(gate_write)
    if not select.select([gate_read], [], [], 5)[0] or os.read(gate_read, 1) != b'1': os._exit(1)
    os.close(gate_read)
    signal.signal(signal.SIGTERM, signal.SIG_IGN)
    held = (work / ('held-' + directory.name)).open('xb')
    held.write(b'literal browser private fixture'); held.flush()
    atomic('ready', 'ready')
    time.sleep(max(0, expires - time.monotonic()))
    os._exit(0)
os.close(gate_read)
try:
    process = Path('/proc') / str(child)
    fields = (process / 'stat').read_text().rsplit(')', 1)[1].split()
    if process.stat().st_uid != os.getuid() or int(fields[19]) <= 0 or int(fields[1]) != os.getpid() or int(fields[2]) != os.getpid():
        raise RuntimeError('fork child is outside owned private group')
    atomic('child.pid', f'{child} {fields[19]}')
    os.write(gate_write, b'1')
finally:
    os.close(gate_write)
deadline = time.monotonic() + 5
while not (directory / 'ready').exists():
    if time.monotonic() >= deadline: raise RuntimeError('child readiness deadline')
    time.sleep(.01)
if mode != 'exited': time.sleep(max(0, expires - time.monotonic()))

scratch/browser-cleanup-control-wz2k2c7a/cleanup-evidence.json

SHA-256 f56eaf21b6883fba7b0cd534af675e5710d40253e7966c9bbb7660fd7678858c, 2865 bytes.

{
  "body_failure": {
    "type": "AssertionError",
    "message": "True is not false : actual finalizer left an unreaped owned child"
  },
  "scratch_retained": true,
  "cleanup_began_monotonic_ns": 688024716112315,
  "processes": [
    {
      "pid": 1379205,
      "expected_start_ticks": 78089284,
      "began_monotonic_ns": 688024716118754,
      "pidfd_kill_attempted": false,
      "stop_confirmed": true,
      "outcome": "already absent",
      "ended_monotonic_ns": 688024716144659
    },
    {
      "pid": 1379206,
      "expected_start_ticks": 78089286,
      "began_monotonic_ns": 688024716147421,
      "pidfd_kill_attempted": true,
      "stop_confirmed": true,
      "observed_start_ticks": 78089286,
      "pgid": 1379205,
      "state_before_signal": "Z",
      "outcome": "reaped by control",
      "wait_status": 9,
      "ended_monotonic_ns": 688024716243647
    }
  ],
  "groups": [
    {
      "pgid": 1379205,
      "confirmed_zero_population": true,
      "before_monotonic_ns": 688024716246418,
      "after_monotonic_ns": 688024716250167
    }
  ],
  "files": [
    {
      "path": "owned-process.py",
      "identity": {
        "dev": 64513,
        "ino": 14570028,
        "mode": 33188,
        "uid": 1000,
        "nlink": 1,
        "size": 1638,
        "mtime_ns": 1791866080309183696,
        "ctime_ns": 1791866080309183696
      },
      "sha256": "7f699be4983ecef61e10f6841691e0f3b7216b3c2e7420d01aeafbc4559d0714"
    },
    {
      "path": "group-0/child.pid",
      "identity": {
        "dev": 64513,
        "ino": 14570031,
        "mode": 33188,
        "uid": 1000,
        "nlink": 1,
        "size": 16,
        "mtime_ns": 1791866080325835624,
        "ctime_ns": 1791866080326835618
      },
      "sha256": "28ad185d6853ebe3437c60552effad277fdc527b50145673664262a26a782e26",
      "pid": 1379206,
      "start_ticks": 78089286,
      "pidfd_bound": true
    },
    {
      "path": "group-0/ready",
      "identity": {
        "dev": 64513,
        "ino": 14570033,
        "mode": 33188,
        "uid": 1000,
        "nlink": 1,
        "size": 5,
        "mtime_ns": 1791866080327511062,
        "ctime_ns": 1791866080327835612
      },
      "sha256": "b24d6d33736ecd5604a4b17bc9c6481039fac362bb7df044ef1c10a2bfd21db6"
    },
    {
      "path": "group-0/process.log",
      "identity": {
        "dev": 64513,
        "ino": 14570030,
        "mode": 33188,
        "uid": 1000,
        "nlink": 1,
        "size": 0,
        "mtime_ns": 1791866080309183696,
        "ctime_ns": 1791866080309183696
      },
      "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
    }
  ],
  "sampler_alive_before_cleanup": false,
  "sampler_stopped": true,
  "subreaper_restored": true,
  "work_exists_after_control": false,
  "cleanup_errors": [],
  "recorded_monotonic_ns": 688024716464665
}

scratch/browser-cleanup-control-wz2k2c7a/group-0/child.pid

SHA-256 28ad185d6853ebe3437c60552effad277fdc527b50145673664262a26a782e26, 16 bytes.

1379206 78089286

scratch/browser-cleanup-control-wz2k2c7a/group-0/process.log

SHA-256 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855, 0 bytes.


scratch/browser-cleanup-control-wz2k2c7a/group-0/ready

SHA-256 b24d6d33736ecd5604a4b17bc9c6481039fac362bb7df044ef1c10a2bfd21db6, 5 bytes.

ready

scratch/browser-cleanup-control-wz2k2c7a/out/browser.json

SHA-256 3d0c540767cf3cdf1766cf6e983f02f7864c4eab84967425229e2063ddfe3ea3, 332 bytes.

{
  "exit": 0,
  "process_exits": {
    "group-0": -9
  },
  "cleanup": "owned TLS/server/browser fixtures removed; process groups stopped; screenshots/logs retained",
  "remaining_uncertainty": "virtual authenticator only; no physical/synced passkeys, OS trust installation, mobile OS, general capacity or release qualification"
}

scratch/browser-cleanup-control-wz2k2c7a/out/resource-samples.json

SHA-256 37517e5f3dc66819f61f5a7bb8ace1921282415f10551d2defa5c3eb0985b570, 3 bytes.

[]

scratch/browser-cleanup-control-wz2k2c7a/owned-process.py

SHA-256 7f699be4983ecef61e10f6841691e0f3b7216b3c2e7420d01aeafbc4559d0714, 1638 bytes.

import os, select, signal, sys, time
from pathlib import Path
directory, work, mode = Path(sys.argv[1]), Path(sys.argv[2]), sys.argv[3]
expires = time.monotonic() + 45
def atomic(name, text):
    pending = directory / (name + '.pending')
    with pending.open('x') as stream:
        stream.write(text); stream.flush(); os.fsync(stream.fileno())
    pending.replace(directory / name)
if mode == 'timeout': signal.signal(signal.SIGTERM, signal.SIG_IGN)
gate_read, gate_write = os.pipe()
child = os.fork()
if child == 0:
    os.close(gate_write)
    if not select.select([gate_read], [], [], 5)[0] or os.read(gate_read, 1) != b'1': os._exit(1)
    os.close(gate_read)
    signal.signal(signal.SIGTERM, signal.SIG_IGN)
    held = (work / ('held-' + directory.name)).open('xb')
    held.write(b'literal browser private fixture'); held.flush()
    atomic('ready', 'ready')
    time.sleep(max(0, expires - time.monotonic()))
    os._exit(0)
os.close(gate_read)
try:
    process = Path('/proc') / str(child)
    fields = (process / 'stat').read_text().rsplit(')', 1)[1].split()
    if process.stat().st_uid != os.getuid() or int(fields[19]) <= 0 or int(fields[1]) != os.getpid() or int(fields[2]) != os.getpid():
        raise RuntimeError('fork child is outside owned private group')
    atomic('child.pid', f'{child} {fields[19]}')
    os.write(gate_write, b'1')
finally:
    os.close(gate_write)
deadline = time.monotonic() + 5
while not (directory / 'ready').exists():
    if time.monotonic() >= deadline: raise RuntimeError('child readiness deadline')
    time.sleep(.01)
if mode != 'exited': time.sleep(max(0, expires - time.monotonic()))

results/service-opening-candidate/browser-session-fixture-registration-post-inspection-01.json

SHA-256 770b480492cb033ff0a303e8360fefffaa0ba0d1de114dd68acea54893ae4e96, 2054 bytes.

{
  "observed_utc": "2026-10-13T04:43:43.389358+00:00",
  "project_running_units": "",
  "control_directories": [
    {
      "path": "/run/media/kmosoti/data/FabricO11y/scratch/browser-cleanup-control-4vpv_tgn",
      "retained_bytes": 6917,
      "process_observations": [
        {
          "pid": 1379191,
          "proc_path_exists_now": false
        },
        {
          "pid": 1379192,
          "proc_path_exists_now": false
        },
        {
          "pid": 1379193,
          "proc_path_exists_now": false
        },
        {
          "pid": 1379194,
          "proc_path_exists_now": false
        }
      ],
      "work_exists": true
    },
    {
      "path": "/run/media/kmosoti/data/FabricO11y/scratch/browser-cleanup-control-tg7_g28p",
      "retained_bytes": 2777,
      "process_observations": [],
      "work_exists": false
    },
    {
      "path": "/run/media/kmosoti/data/FabricO11y/scratch/browser-cleanup-control-x6fny6zv",
      "retained_bytes": 4858,
      "process_observations": [
        {
          "pid": 1379199,
          "proc_path_exists_now": false
        },
        {
          "pid": 1379200,
          "proc_path_exists_now": false
        }
      ],
      "work_exists": false
    },
    {
      "path": "/run/media/kmosoti/data/FabricO11y/scratch/browser-cleanup-control-hk9nasd7",
      "retained_bytes": 4860,
      "process_observations": [
        {
          "pid": 1379202,
          "proc_path_exists_now": false
        },
        {
          "pid": 1379203,
          "proc_path_exists_now": false
        }
      ],
      "work_exists": false
    },
    {
      "path": "/run/media/kmosoti/data/FabricO11y/scratch/browser-cleanup-control-wz2k2c7a",
      "retained_bytes": 4859,
      "process_observations": [
        {
          "pid": 1379205,
          "proc_path_exists_now": false
        },
        {
          "pid": 1379206,
          "proc_path_exists_now": false
        }
      ],
      "work_exists": false
    }
  ],
  "MemFree": 14356430848,
  "MemAvailable": 22018338816
}