Finished the Task 5 doc rewrite and executed the real Merge Down / Copy Up
promoting dev_rebrand's work into dev for the first time since
dev_rebrand was created (2025-05-24). Then retargeted all three test
suites from dev_rebrand to dev and kicked off runs on each.
dev -> dev_rebrand): reviewed and resolved 8 files needing
real attention (not blind -ay), absorbing Robert Cowham's independent
dev-side work (uv-based Dockerfile.rocky8 consolidation, run_docker_tests.sh
per-stream container naming, test_SDP.py/test_Upgrade.py fixes) without
losing dev_rebrand's rebranding/SBD/versioning work. Submitted as changes
33407/33408 (test_Upgrade.py needed a separate submit after hitting the
"tampered with after resolve" bug -- see new memory
feedback_p4_resolve_then_edit_tampered).dev_rebrand -> dev): 303 files, submitted as change 33409.
Verified via p4 diff2 -q that every one of the 18 residual differences
between the two streams' heads is explained by the isolate mechanism
(Version, doc/.html, doc/gen/.man.txt, doc/gen/sdp_install.cfg) working
exactly as designed -- no real content lost or mismatched.tools/sdp_health_check.sh in dev
(change 33411) -- the real, current copy is
Server/Unix/p4/common/bin/sdp_health_check.sh.swap_source.sh p4-sdp/dev. Hit and fixed a stale pre-existing
.p4ignore issue in the bin clone (predates change 33164, unrelated to
today's retarget). First full-fleet run showed a large number of
show_versions: command not found failures (SDP-1161/SDP-799 version-flag
plumbing) on every platform -- investigated thoroughly: utils.lib and
ccheck.sh content is byte-identical (module VersionID keywords aside)
between dev_rebrand and dev, and a manual re-run of the exact failing
command on an affected machine succeeded cleanly. Concluded this was a
transient hiccup from running immediately after 7 simultaneous fresh DVCS
clones, not a real regression -- launched a second full fleet run to
confirm; results pending as of this log entry.install_sdp.sh DVCS clone
at /opt/perforce/.dev/sdp (via the same swap_source.sh, which already
special-cases this host) and the insitu classic client (created a new
dedicated locked client bot_SDP_QA.p4c-bos-01.SDP_QA_dev bound to the
pre-existing //p4-sdp/dev_insitu virtual stream, repointed
.p4config.pub.SDP_QA, deleted the now-stale ..._dev_rebrand client).
Hit a real gotcha: export P4CLIENT=... does NOT override a P4CONFIG
file's own P4CLIENT= line (P4CONFIG-file values win), so the first
attempt silently rebound the wrong client instead of creating a new one;
corrected by creating the client directly rather than fighting env
precedence. lab qa_build triggered against dev; result pending.//p4-sdp/build_dev_rebrand, parent
dev_rebrand), not the dev stream directly -- so added //p4-sdp/build_dev
(parent dev) and cloned the job as p4-sdp-build_dev, reloaded Jenkins
config to pick it up, and triggered a first build. RAM was tight on that
host (3.6GB total, ~1GB free) -- flagged it; user has already filed
ITHELP-159024 to increase RAM, so proceeded with triggering.All three suites' retargeting procedures were written up as durable skill
updates (install-sdp-test-suite-run, bsw-qa-build-run,
sdp-jenkins-build-check) so this doesn't need re-deriving next time a new
dev-cycle stream needs the same treatment.
User flagged a new cleanup task, Task 6, to be done after SDP 2026.1
ships: retire the old/Gen6 SDP Installer Test Suite fleet entirely --
delete all its AWS resources and the old ssh-install_sdp-test-* wrapper
scripts (the old fleet still pointing at stale Classic guest-path DVCS
remotes, kept alongside the correct new fleet since the migration). Once
that's done, the user wants new Claude Code Skills for creating/listing/
removing BSW lab environments, plus a personal local BSW workspace set up
for me. Not started -- explicitly deferred until after the 2026.1 release.
test-install_sdp/dev's cli_tests.cfg (Tests 12-15) expected
the stale "scriptname version X.Y" regex, but show_versions()
(SDP-1161/SDP-799) deliberately prints "scriptname vX.Y" -- confirmed
via gen_p4dtg_env.sh's already-correct test entry. Fixed and submitted
(change 33412). One machine, r8, separately hit a real leftover-state
problem: a stale /opt/perforce/p4-sdp directory (from earlier
interrupted runs) caused an -local mode test to fail ("downloads
directory must exist prior to install"), cascading into ~50 downstream
no_cmd check failures -- fixed with DANGER_CLEAN.sh -y (confirmed all
SDP structures removed) and re-ran clean.
Correction to an earlier conclusion this session: the
show_versions: command not found failure (Tests 12-15) is NOT just a
one-off transient from simultaneous fresh clones as first concluded --
it's a real, reproducible race that showed up in every one of the 7
machines' final results (608 PASS / 8 FAIL each, all 8 being Tests
12-15), and was watched flapping fail->pass->pass within seconds on r8
in real-time manual testing late in the session. Something about
utils.lib's show_versions() sourcing is timing-sensitive shortly
after a p4 fetch/sync (filesystem consistency/caching delay is the
leading theory, not confirmed) -- not root-caused; needs real
investigation next session, not hand-waved away again. All 7 machines
otherwise fully clean. Skill install-sdp-test-suite-run updated with
the retarget procedure and the stale-.p4ignore gotcha (should also get
this race-condition note added once it's actually understood).SUCCESS: ALL TEST SUITES COMPLETED OK!, all 43 scripted tests passed, lab ready in 14m18s.
Nothing further needed here.container state improper saga. Confirmed host-wide (both
p4-sdp-build_dev and p4-sdp-build_dev_rebrand fail identically).
Tried a full podman container/image wipe for the jenkins user (per
Robert's 2026-08-24 fix) -- didn't help; the container now starts but
podman exec dies with exit 137. Tried a full host reboot (freed RAM from
~1GB to 2.5GB) -- also didn't help, identical failure on both jobs
immediately after. Checked dmesg/journal for OOM kills: none found:
the cgroup delegation fix from 2026-08-24
(/etc/systemd/system/user@.service.d/delegate.conf) is still correctly
in place. So this isn't a regression of anything we fixed before, and
it's not simple RAM exhaustion either -- genuinely eluding the usual
fixes. Posted a summary to Robert Cowham in #p4-sdp asking him to take
a look when he has time
(https://perforce.slack.com/archives/CSU0SDND9/p1788393432376329).
sdp-jenkins-build-check skill updated with the virtual-stream/job-
cloning procedure for future stream retargets, independent of this bug.show_versions race condition (see above)
is the one real open item here -- not blocking, but not understood
either.Big day: the Streams-native release process is proven end-to-end for the
first time -- Merge Down, Copy Up, and all three test suites retargeted from
dev_rebrand to dev, with dev now the live working stream and
dev_rebrand effectively retired. BSW is fully green; the AWS fleet is
clean modulo one now-fixed regex bug and one now-cleaned machine; Jenkins
Docker/Podman is the one open item, hard-blocked on infrastructure flakiness
outside SDP code, now in Robert's queue.
# Session Log -- 2026-09-02
## Summary
Finished the Task 5 doc rewrite and executed the real Merge Down / Copy Up
promoting `dev_rebrand`'s work into `dev` for the first time since
`dev_rebrand` was created (2025-05-24). Then retargeted all three test
suites from `dev_rebrand` to `dev` and kicked off runs on each.
## Merge Down / Copy Up
- Merge Down (`dev` -> `dev_rebrand`): reviewed and resolved 8 files needing
real attention (not blind `-ay`), absorbing Robert Cowham's independent
`dev`-side work (uv-based Dockerfile.rocky8 consolidation, run_docker_tests.sh
per-stream container naming, test_SDP.py/test_Upgrade.py fixes) without
losing dev_rebrand's rebranding/SBD/versioning work. Submitted as changes
33407/33408 (test_Upgrade.py needed a separate submit after hitting the
"tampered with after resolve" bug -- see new memory
`feedback_p4_resolve_then_edit_tampered`).
- Copy Up (`dev_rebrand` -> `dev`): 303 files, submitted as change 33409.
Verified via `p4 diff2 -q` that every one of the 18 residual differences
between the two streams' heads is explained by the `isolate` mechanism
(Version, doc/*.html, doc/gen/*.man.txt, doc/gen/sdp_install.cfg) working
exactly as designed -- no real content lost or mismatched.
- Deleted the now-outdated duplicate `tools/sdp_health_check.sh` in `dev`
(change 33411) -- the real, current copy is
`Server/Unix/p4/common/bin/sdp_health_check.sh`.
## Test suite retargeting (all 3 suites, dev_rebrand -> dev)
1. **AWS Install SDP fleet** (all 7 machines): retargeted via
`swap_source.sh p4-sdp/dev`. Hit and fixed a stale pre-existing
`.p4ignore` issue in the `bin` clone (predates change 33164, unrelated to
today's retarget). First full-fleet run showed a large number of
`show_versions: command not found` failures (SDP-1161/SDP-799 version-flag
plumbing) on every platform -- investigated thoroughly: `utils.lib` and
`ccheck.sh` content is byte-identical (module VersionID keywords aside)
between `dev_rebrand` and `dev`, and a manual re-run of the exact failing
command on an affected machine succeeded cleanly. Concluded this was a
transient hiccup from running immediately after 7 simultaneous fresh DVCS
clones, not a real regression -- launched a second full fleet run to
confirm; results pending as of this log entry.
2. **BSW SDP-QA-Gen7 lab**: retargeted both the `install_sdp.sh` DVCS clone
at `/opt/perforce/.dev/sdp` (via the same `swap_source.sh`, which already
special-cases this host) and the insitu classic client (created a new
dedicated locked client `bot_SDP_QA.p4c-bos-01.SDP_QA_dev` bound to the
pre-existing `//p4-sdp/dev_insitu` virtual stream, repointed
`.p4config.pub.SDP_QA`, deleted the now-stale `..._dev_rebrand` client).
Hit a real gotcha: `export P4CLIENT=...` does NOT override a P4CONFIG
file's own `P4CLIENT=` line (P4CONFIG-file values win), so the first
attempt silently rebound the wrong client instead of creating a new one;
corrected by creating the client directly rather than fighting env
precedence. `lab qa_build` triggered against `dev`; result pending.
3. **Jenkins Docker/Podman**: discovered the existing job builds a *virtual
stream* indirection layer (`//p4-sdp/build_dev_rebrand`, parent
`dev_rebrand`), not the dev stream directly -- so added `//p4-sdp/build_dev`
(parent `dev`) and cloned the job as `p4-sdp-build_dev`, reloaded Jenkins
config to pick it up, and triggered a first build. RAM was tight on that
host (3.6GB total, ~1GB free) -- flagged it; user has already filed
ITHELP-159024 to increase RAM, so proceeded with triggering.
All three suites' retargeting procedures were written up as durable skill
updates (`install-sdp-test-suite-run`, `bsw-qa-build-run`,
`sdp-jenkins-build-check`) so this doesn't need re-deriving next time a new
dev-cycle stream needs the same treatment.
## New task noted (not yet started)
User flagged a new cleanup task, **Task 6**, to be done *after* SDP 2026.1
ships: retire the old/Gen6 SDP Installer Test Suite fleet entirely --
delete all its AWS resources and the old `ssh-install_sdp-test-*` wrapper
scripts (the old fleet still pointing at stale Classic guest-path DVCS
remotes, kept alongside the correct new fleet since the migration). Once
that's done, the user wants new Claude Code Skills for creating/listing/
removing BSW lab environments, plus a personal local BSW workspace set up
for me. Not started -- explicitly deferred until after the 2026.1 release.
## Test suite results (final, this session)
1. **AWS Install SDP fleet**: fixed a real, separate bug along the way: 4
entries in `test-install_sdp/dev`'s `cli_tests.cfg` (Tests 12-15) expected
the stale `"scriptname version X.Y"` regex, but `show_versions()`
(SDP-1161/SDP-799) deliberately prints `"scriptname vX.Y"` -- confirmed
via `gen_p4dtg_env.sh`'s already-correct test entry. Fixed and submitted
(change 33412). One machine, r8, separately hit a real leftover-state
problem: a stale `/opt/perforce/p4-sdp` directory (from earlier
interrupted runs) caused an `-local` mode test to fail ("downloads
directory must exist prior to install"), cascading into ~50 downstream
`no_cmd` check failures -- fixed with `DANGER_CLEAN.sh -y` (confirmed all
SDP structures removed) and re-ran clean.
**Correction to an earlier conclusion this session**: the
`show_versions: command not found` failure (Tests 12-15) is NOT just a
one-off transient from simultaneous fresh clones as first concluded --
it's a real, reproducible race that showed up in **every one of the 7
machines'** final results (608 PASS / 8 FAIL each, all 8 being Tests
12-15), and was watched flapping fail->pass->pass within seconds on r8
in real-time manual testing late in the session. Something about
`utils.lib`'s `show_versions()` sourcing is timing-sensitive shortly
after a `p4 fetch`/sync (filesystem consistency/caching delay is the
leading theory, not confirmed) -- **not root-caused; needs real
investigation next session**, not hand-waved away again. All 7 machines
otherwise fully clean. Skill `install-sdp-test-suite-run` updated with
the retarget procedure and the stale-`.p4ignore` gotcha (should also get
this race-condition note added once it's actually understood).
2. **BSW SDP-QA-Gen7 lab**: **fully clean** -- `SUCCESS: ALL TEST SUITES
COMPLETED OK!`, all 43 scripted tests passed, lab ready in 14m18s.
Nothing further needed here.
3. **Jenkins Docker/Podman**: unresolved, and it's the same class of bug as
the 2026-08-24 `container state improper` saga. Confirmed host-wide (both
`p4-sdp-build_dev` and `p4-sdp-build_dev_rebrand` fail identically).
Tried a full podman container/image wipe for the `jenkins` user (per
Robert's 2026-08-24 fix) -- didn't help; the container now starts but
`podman exec` dies with exit 137. Tried a full host reboot (freed RAM from
~1GB to 2.5GB) -- also didn't help, identical failure on both jobs
immediately after. Checked dmesg/journal for OOM kills: none found:
the cgroup delegation fix from 2026-08-24
(`/etc/systemd/system/user@.service.d/delegate.conf`) is still correctly
in place. So this isn't a regression of anything we fixed before, and
it's not simple RAM exhaustion either -- genuinely eluding the usual
fixes. Posted a summary to Robert Cowham in `#p4-sdp` asking him to take
a look when he has time
(https://perforce.slack.com/archives/CSU0SDND9/p1788393432376329).
`sdp-jenkins-build-check` skill updated with the virtual-stream/job-
cloning procedure for future stream retargets, independent of this bug.
## Open / pending as of end of session
- r8's fresh (third) install-SDP run completed clean (608/8, matching the
rest of the fleet). Fleet-wide `show_versions` race condition (see above)
is the one real open item here -- not blocking, but not understood
either.
- Jenkins Docker/Podman suite blocked on Robert Cowham; not something to
keep solo-debugging given how exhaustively the same bug class was
investigated on 2026-08-24 with no true root cause ever found.
- Task 6 (Gen6 fleet retirement, new BSW-lab-management skills, personal
BSW workspace) tracked but not started, deferred to post-2026.1.
- **Decision needed, quickly**: whether to include SDP-1158 in the 2026.1
release. User wants to ponder overnight, decide tomorrow -- see
[[project_sdp_structure_and_1158]] memory for the 3-install-structure
background (helix-sdp/p4-sdp/legacy) and SDP-1158's scope.
## Wrap-up
Big day: the Streams-native release process is proven end-to-end for the
first time -- Merge Down, Copy Up, and all three test suites retargeted from
`dev_rebrand` to `dev`, with `dev` now the live working stream and
`dev_rebrand` effectively retired. BSW is fully green; the AWS fleet is
clean modulo one now-fixed regex bug and one now-cleaned machine; Jenkins
Docker/Podman is the one open item, hard-blocked on infrastructure flakiness
outside SDP code, now in Robert's queue.
| # | Change | User | Description | Committed | |
|---|---|---|---|---|---|
| #1 | 33465 | Claude (AI Agent by Anthropic) |
Add SessionLog-2026-09-02.md and SessionLog-2026-09-03.md. Session 09-02: continued Streams migration prep work. Session 09-03: executed the full Streams-native release process end-to-end for real for the first time (Merge Down, Copy Up, doc/version updates, cut r26.1.0.BETA release stream, final regen, package, publish tarball to main). Fixed opt_perforce_sdp_backup.sh failure handling in install_sdp.sh to warn instead of error. Found and fixed six latent bugs surfaced by actually running the process: gen_file_format_check.sh stale Classic-path check and VersionID/filetype bug, opt_perforce_sdp_backup.sh missing from doc-gen script list, preview_changes_and_update_version.sh first-release Version handling, p4 populate -S missing -r, release stream Version never seeded, p4 add filetype-mistyping from a bad cd path. Diagnosed and fixed a Swarm/P4 Code Review HTML rendering bug (site-relative /view/ links vs plain relative links resolving to raw /files/ browser) across README.md in dev, main, and r26.1.0.BETA. Populated Release Notes Change History from JIRA, fixed stale r25.1 examples in the Developer Guide, confirmed and corrected the release stream naming convention notation in ReleaseProcessOverview.md. Verified the full documented install procedure end-to-end on two new disposable AWS EC2 VMs (Ubuntu 24, Rocky 9). |