Fix Azure maintain_system immutability and Y: mapping#1215
Open
jwmossmoz wants to merge 5 commits into
Open
Conversation
d3de8d3 to
fe72fa8
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
0/2are success,1/4/6are failureinmutable=trueonly after the post-bootstrap Puppet run succeedsY:mapping available on immutable boots and mapY:again intask-user-init.ps1for the generic-worker task userWhy this fixes it
The traced worker did not fail because Puppet failed. Puppet exited
2, which means success with changes.The task failed later because
run-taskusedHG_STORE_PATH=y:/hg-shared. Before this PR,Y:was created only in the mutable boot path by the SYSTEMmaintain_systemtask, after Puppet ran. That mapping could exist for SYSTEM, butsubstmappings are session-scoped, so a new generic-worker task user did not reliably see it; on later immutable boots, the host-sideLinkZY2Dcall was skipped too. This PR keeps the host mapping on immutable boots and createsY:inside each task-user session before task commands run.The post-bootstrap Puppet run still matters because it is the pass that applies the machine's final runtime state after bootstrap changes are in place. Once that run exits
0or2, the image can be marked immutable; if it exits1,4, or6, the boot should stay mutable and fail instead of hiding a bad catalog run.Validation
Local checks:
azure-maintainsystem.ps1andtask-user-init.ps1git diff --checkInvoke-ScriptAnalyzerreports existing style warnings onlyWorker-images revalidation:
fix/azure-maintainsystem-inmutablebrowser_utility_geolocation_crashed.js: https://firefox-ci-tc.services.mozilla.com/tasks/groups/cOeyEtEMT6m9t3Oq2wiIUQDirect startup-test evidence for the previous
y:/hg-sharedfailure path:HG_STORE_PATH (y:/hg-shared)warning, but noFileNotFoundError: 'y:/'; checkout continues underD:/task_..., Firefox runs for 30 seconds, and the tasks exit0withResult: SUCCEEDED.Same-worker post-bootstrap evidence:
vm-f9snmhsoqga9tf0txdfmrgepikayjryo0ivranAK0sAoY1Qt-YojELHs3AkQfirst, then rebooted into a new generic-worker task user and ranUUMjgX34QvmLlxcIkK9Lagon the same VM; both completed successfully.2at2026-05-20 17:57:46Z. After the first task resolved, later boot-timemaintain_systempasses at18:04:26Zand18:19:11Zran the immutable path:Run-MaintainSystem,LinkZY2D :: mapped Y: to D:\\, andStart-WorkerRunner, with no second Puppet apply in that window.Resolved 1 tasks in total so farat18:03:50ZandResolved 2 tasks in total so farat18:18:40Z, confirming same-VM reuse across the generic-worker reboot/new-task-user path.Current PR check note:
win116425h2azureserverspec failure was from a stale-branch NVIDIA A10 driver mismatch afterRELOPS-2372: bump NVIDIA A10 GRID driver to 573.96 (#1218)landed onmaster.mastermerge, so the driver data and serverspec expectation are aligned; rerun checks should not hit that mismatch.Original failure examples from the earlier cancelled run: