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
}