Change 34004

russell_jackson (Russell C. Jackson (Rusty))
Russell C. Jackson (Rusty) committed this change into //guest/russell_jackson/sdp
Request Review
Download .zip
Improve SDP backup/recovery, Maintenance, logging and cloud operation.

Add owned checkpoint locks, recovery-aware retention, preserved database switches,
bounded cleanup and coordinated AWS/Azure snapshots. Fix service-user password
initialization, edge staging, standby promotion state parsing, proxy cache setup,
typed depot verification and historical-server configuration/error handling.
Remove unused OTP programs; keep Windows removed, server.locks cleanup and the
journal-count condition unchanged. Add no global shell strict modes.

Update operational documentation and add reproducible mkdirs.sh/mkdirs.cfg
container assurance. Validate Ubuntu 26.04 and UBI 8.10/9.8/10.2 across both Python
runtimes: 44 stages; 428 offline tests per runtime/OS, zero offline skips;
19 deployed-archive comparisons per combination. Three six-node topology runs
pass all 30 recovery/failure scenarios. P4D 2023.1 through 2026.1 on UBI 8/9
pass all 14 cells and 98 scenarios. Static, documentation and provenance checks
pass. Containers do not certify every fleet kernel, patch build or integration.

Tested source manifest SHA-256:
e1a23e17b8ced8c1148d9a250589977c6f6e98606bf2a81dc3ff5d7c909e3695
Deployed comparison archive SHA-256:
1bd23217356ee3808e040d39aea5be9519bda7c8f2b4924656a70aff8ad7293a
  • Files 155
  • Comments 0
93 edited 60 added 2 deleted
Maintenance/accessdates.py#13
Loading...
Maintenance/clean_protect.py#7
Loading...
Maintenance/convert_label_to_autoreload.py#8
Loading...
Maintenance/create_p4_filelist.sh#4
Loading...
Maintenance/creategroups.py#8
Loading...
Maintenance/createusers.py#8
Loading...
Maintenance/edge_maintenance#19
Loading...
Maintenance/email_pending_client_deletes.py#14
Loading...
Maintenance/file_inventory.py#1
Loading...
Maintenance/maintain_user_from_groups.py#9
Loading...
Maintenance/maintenance#18
Loading...
Maintenance/maintenance_workspace.sh#1
Loading...
Maintenance/p4lock.py#8
Loading...
Maintenance/p4unlock.py#8
Loading...
Maintenance/removeuserfromgroups.py#8
Loading...
Maintenance/removeuserfromgroups_file.py#7
Loading...
Maintenance/removeusersfromgroup.py#8
Loading...
Maintenance/sdputils.py#13
Loading...
Maintenance/unload_clients.py#14
Loading...
Maintenance/update-changes.py#8
Loading...
Server/Unix/p4/common/bin/backup_functions.sh#117
Loading...
Server/Unix/p4/common/bin/broker_rotate.sh#11
Loading...
Server/Unix/p4/common/bin/cacheclean.sh#28
Loading...
Server/Unix/p4/common/bin/ccheck.sh#4
Loading...
Server/Unix/p4/common/bin/check_dir_ownership.sh#2
Loading...
Server/Unix/p4/common/bin/convert_old_master_to_standby.sh#7
Loading...
Server/Unix/p4/common/bin/convert_standby_to_master.sh#13
Loading...
Server/Unix/p4/common/bin/daily_checkpoint.sh#24
Loading...
Server/Unix/p4/common/bin/edge_dump.sh#11
Loading...
Server/Unix/p4/common/bin/gen_default_broker_cfg.sh#6
Loading...
Server/Unix/p4/common/bin/journal_watch.sh#5
Loading...
Server/Unix/p4/common/bin/live_checkpoint.sh#9
Loading...
Server/Unix/p4/common/bin/load_checkpoint.sh#6
Loading...
Server/Unix/p4/common/bin/mkedge-standby.sh#5
Loading...
Server/Unix/p4/common/bin/mkedge.sh#11
Loading...
Server/Unix/p4/common/bin/mkstandby.sh#24
Loading...
Server/Unix/p4/common/bin/mkstandby_shared.sh#9
Loading...
Server/Unix/p4/common/bin/p4broker_base#7
Loading...
Server/Unix/p4/common/bin/p4cachepurge.sh#8
Loading...
Server/Unix/p4/common/bin/p4d_base#23
Loading...
Server/Unix/p4/common/bin/p4p_base#6
Loading...
Server/Unix/p4/common/bin/p4verify.py#48
Loading...
Server/Unix/p4/common/bin/p4verify.txt#4
Loading...
Server/Unix/p4/common/bin/proxy_rotate.sh#4
Loading...
Server/Unix/p4/common/bin/proxyclean.sh#6
Loading...
Server/Unix/p4/common/bin/recover_edge.sh#20
Loading...
Server/Unix/p4/common/bin/recreate_db_checkpoint.sh#19
Loading...
Server/Unix/p4/common/bin/recreate_db_sync_replica.sh#34
Loading...
Server/Unix/p4/common/bin/recreate_offline_db.sh#10
Loading...
Server/Unix/p4/common/bin/replica_cleanup.sh#13
Loading...
Server/Unix/p4/common/bin/replica_status.sh#27
Loading...
Server/Unix/p4/common/bin/request_replica_checkpoint.sh#4
Loading...
Server/Unix/p4/common/bin/rotate_journal.sh#14
Loading...
Server/Unix/p4/common/bin/rsync_missing.sh#8
Loading...
Server/Unix/p4/common/bin/run_if_edge.sh#14
Loading...
Server/Unix/p4/common/bin/run_if_master.sh#15
Loading...
Server/Unix/p4/common/bin/run_if_replica.sh#17
Loading...
Server/Unix/p4/common/bin/sdp_cache_cleanup.sh#1
Loading...
Server/Unix/p4/common/bin/sdp_checkpoint_lock.sh#1
Loading...
Server/Unix/p4/common/bin/sdp_service_user.sh#1
Loading...
Server/Unix/p4/common/bin/sdp_structured_log.py#6
Loading...
Server/Unix/p4/common/bin/sdp_structured_log.sh#11
Loading...
Server/Unix/p4/common/bin/sizes.sh#6
Loading...
Server/Unix/p4/common/bin/sync_replica.sh#42
Loading...
Server/Unix/p4/common/bin/triggers/AUTHENTICATION.md#1
Loading...
Server/Unix/p4/common/bin/triggers/externalcopy.txt#2
Loading...
Server/Unix/p4/common/bin/triggers/keep_group_unset.py#10
Loading...
Server/Unix/p4/common/bin/triggers/otpauthcheck.py#6
Loading...
Server/Unix/p4/common/bin/triggers/otpkeygen.py#5
Loading...
Server/Unix/p4/common/bin/triggers/rad_authcheck.py#7
Loading...
Server/Unix/p4/common/bin/triggers/radtest.py#4
Loading...
Server/Unix/p4/common/bin/triggers/submit_form_1_in.py#6
Loading...
Server/Unix/p4/common/bin/upgrade.sh#27
Loading...
Server/Unix/p4/common/cloud/aws/bin/snapshot.sh#3
Loading...
Server/Unix/p4/common/cloud/azure/bin/snapshot.sh#1
Loading...
Server/Unix/p4/common/cloud/bin/sdp_snapshot.py#1
Loading...
Server/Unix/p4/common/etc/cron.d/template.crontab#30
Loading...
Server/Unix/p4/common/site/ReadMe.md#2
Loading...
Server/Unix/p4/common/site/bin/ReadMe.txt#2
Loading...
Server/Unix/setup/RUNTIME_AND_TESTING.md#1
Loading...
Server/Unix/setup/configure_new_server.sh#24
Loading...
Server/Unix/setup/dummy_ip.txt#4
Loading...
Server/Unix/setup/firewalld/README.md#2
Loading...
Server/Unix/setup/install_sdp.sh#5
Loading...
Server/Unix/setup/install_sdp_python.sh#7
Loading...
Server/Unix/setup/mkdirs.sh#69
Loading...
Server/Unix/setup/systemd/README.md#2
Loading...
doc/Best_Practices.md#2
Loading...
doc/DR-Failover-steps-Unix-standby.md#3
Loading...
doc/P4_Server_Overview.md#2
Loading...
doc/SDP-Cheat-Sheet.md#2
Loading...
doc/SDP_Guide.Unix.md#7
Loading...
doc/cloud_snapshots.md#1
Loading...
doc/maintenance_scripts.md#4
Loading...
doc/operational_scripts.md#9
Loading...
doc/production_validation.md#1
Loading...
doc/review_2026-10-16.md#2
Loading...
doc/sdp_install_unix.md#3
Loading...
doc/standby_edge_failover.md#3
Loading...
test/DISPOSABLE_TESTING.md#1
Loading...
test/containers/Dockerfile.rhel#1
Loading...
test/containers/Dockerfile.rhel8#1
Loading...
test/containers/Dockerfile.rhel9#1
Loading...
test/containers/Dockerfile.ubuntu#1
Loading...
test/containers/Dockerfile.versions#1
Loading...
test/containers/README.md#1
Loading...
test/containers/VERSION_COMPATIBILITY.md#1
Loading...
test/containers/__init__.py#1
Loading...
test/containers/baseline_comparison.py#1
Loading...
test/containers/bootstrap.sh#1
Loading...
test/containers/coverage.py#1
Loading...
test/containers/download_binaries.sh#1
Loading...
test/containers/export_archive.py#1
Loading...
test/containers/export_baseline.py#1
Loading...
test/containers/export_source.py#1
Loading...
test/containers/fixture_inventory.py#1
Loading...
test/containers/maintenance_integration.py#1
Loading...
test/containers/python_runtime.sh#1
Loading...
test/containers/release_gate.py#1
Loading...
test/containers/run_matrix.py#1
Loading...
test/containers/runtime_integration.py#1
Loading...
test/containers/sudoers_preview.sh#1
Loading...
test/containers/test_container_tools.py#1
Loading...
test/containers/topology_bootstrap.sh#1
Loading...
test/containers/topology_integration.py#1
Loading...
test/containers/version_bootstrap.sh#1
Loading...
test/containers/version_compatibility.py#1
Loading...
test/disposable_test_guard.sh#1
Loading...
test/reset.sh#5
Loading...
test/sdp_test_harness.sh#6
Loading...
test/test_additional_maintenance.py#1
Loading...
test/test_baseline_maintenance.py#1
Loading...
test/test_baseline_runtime.py#1
Loading...
test/test_cache_cancellation.py#1
Loading...
test/test_ccheck_compatibility.py#1
Loading...
test/test_cloud_improvements.py#1
Loading...
test/test_core_improvements.py#1
Loading...
test/test_core_review.py#2
Loading...
test/test_logging_concurrency.py#1
Loading...
test/test_maintenance_improvements.py#1
Loading...
test/test_maintenance_logging.py#2
Loading...
test/test_maintenance_review.py#2
Loading...
test/test_operational_edges.py#1
Loading...
test/test_release_gate.py#1
Loading...
test/test_remaining_utilities.py#1
Loading...
test/test_runtime_improvements.py#1
Loading...
test/test_runtime_review.py#2
Loading...
test/test_service_lifecycle.py#1
Loading...
test/test_service_password.py#1
Loading...
test/test_setup_improvements.py#1
Loading...
test/test_setup_triggers_review.py#2
Loading...
test/test_systemd_service_detection.py#1
Loading...
test/test_trigger_utilities.py#1
Loading...
test/test_verification_depots.py#1
Loading...
test/test_version_compatibility.py#1
Loading...
Tip: Use n and p to cycle through the changes.