SessionLog-2026-09-02.md #1

  • //
  • test-install_sdp/
  • dev/
  • ai_dev_support/
  • SessionLog-2026-09-02.md
  • Markdown
  • View
  • Commits
  • Open Download .zip Download (9 KB)

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.

# 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).