generic-worker panic on windows 10 build 1803
Categories
(Taskcluster :: Workers, defect, P2)
Tracking
(Not tracked)
People
(Reporter: grenade, Assigned: pmoore)
References
()
Details
Attachments
(3 files, 1 obsolete file)
| Assignee | ||
Comment 1•7 years ago
|
||
| Assignee | ||
Comment 2•7 years ago
|
||
| Assignee | ||
Comment 3•7 years ago
|
||
| Reporter | ||
Comment 4•7 years ago
|
||
| Assignee | ||
Comment 5•7 years ago
|
||
| Reporter | ||
Comment 6•7 years ago
|
||
| Reporter | ||
Comment 7•7 years ago
|
||
| Assignee | ||
Comment 8•7 years ago
|
||
| Reporter | ||
Updated•7 years ago
|
| Reporter | ||
Comment 9•7 years ago
|
||
| Reporter | ||
Comment 10•7 years ago
|
||
| Reporter | ||
Comment 11•7 years ago
|
||
| Assignee | ||
Updated•7 years ago
|
| Reporter | ||
Comment 12•7 years ago
|
||
| Reporter | ||
Comment 13•7 years ago
|
||
| Reporter | ||
Comment 14•7 years ago
|
||
| Reporter | ||
Comment 15•7 years ago
|
||
| Reporter | ||
Comment 16•7 years ago
|
||
| Assignee | ||
Comment 17•7 years ago
|
||
| Assignee | ||
Comment 18•7 years ago
|
||
Comment 19•7 years ago
|
||
Pete: can you find some time to dig into this soon? It is blocking OKRs for relops.
| Assignee | ||
Comment 20•7 years ago
|
||
Looking at this now!
Created a test task....
https://tools.taskcluster.net/groups/L3-UBJqERpaIv4sMdFJx6A/tasks/L3-UBJqERpaIv4sMdFJx6A/details
| Assignee | ||
Comment 21•7 years ago
|
||
The generic-worker indeed seems to be crashing. Here is the crash report...
Jan 17 15:01:34 i-05486e568aff5bc17.gecko-t-win10-64-alpha.use1.mozilla.com generic-worker: Creating Windows user task_1547733693...
Jan 17 15:01:34 i-05486e568aff5bc17.gecko-t-win10-64-alpha.use1.mozilla.com generic-worker: Running command: 'net' 'user' 'task_1547733693' 'pWd0_Gw30Igm87fMg81sTDSCzxInb' '/add' '/expires:never' '/passwordchg:no' '/y'
Jan 17 15:01:34 i-05486e568aff5bc17.gecko-t-win10-64-alpha.use1.mozilla.com generic-worker: Created new OS user!
Jan 17 15:01:34 i-05486e568aff5bc17.gecko-t-win10-64-alpha.use1.mozilla.com generic-worker: Running command: 'wmic' 'useraccount' 'where' 'name='task_1547733693'' 'set' 'passwordexpires=false' Updating property(s) of '\\I-05486E568AFF5\ROOT\CIMV2:Win32_UserAccount.Domain="I-05486E568AFF5",Name="task_1547733693"' Property(s) update successful.
Jan 17 15:01:34 i-05486e568aff5bc17.gecko-t-win10-64-alpha.use1.mozilla.com generic-worker: Running command: 'net' 'localgroup' 'Remote Desktop Users' '/add' 'task_1547733693' The command completed successfully.
Jan 17 15:01:34 i-05486e568aff5bc17.gecko-t-win10-64-alpha.use1.mozilla.com generic-worker: Making system call LogonUserW with args: [C0422CF140 C042245360 C0422C3640 2 0 C042245368]
Jan 17 15:01:34 i-05486e568aff5bc17.gecko-t-win10-64-alpha.use1.mozilla.com generic-worker: Result: 1 0 The operation completed successfully.
Jan 17 15:01:34 i-05486e568aff5bc17.gecko-t-win10-64-alpha.use1.mozilla.com generic-worker: Making system call LoadUserProfileW with args: [460 C042073080]
Jan 17 15:01:35 i-05486e568aff5bc17.gecko-t-win10-64-alpha.use1.mozilla.com generic-worker: Result: 1 0 The operation completed successfully.
Jan 17 15:01:35 i-05486e568aff5bc17.gecko-t-win10-64-alpha.use1.mozilla.com generic-worker: Making system call SHSetKnownFolderPath with args: [C7D850 0 460 C042355DB0]
Jan 17 15:01:35 i-05486e568aff5bc17.gecko-t-win10-64-alpha.use1.mozilla.com generic-worker: Result: 0 0 The specified module could not be found.
Jan 17 15:01:35 i-05486e568aff5bc17.gecko-t-win10-64-alpha.use1.mozilla.com generic-worker: Making system call SHGetKnownFolderPath with args: [C7D850 8000 460 C042245418]
Jan 17 15:01:35 i-05486e568aff5bc17.gecko-t-win10-64-alpha.use1.mozilla.com generic-worker: Result: 0 0 The operation completed successfully.
Jan 17 15:01:35 i-05486e568aff5bc17.gecko-t-win10-64-alpha.use1.mozilla.com generic-worker: Making system call CoTaskMemFree with args: [14FC2C0]
Jan 17 15:01:35 i-05486e568aff5bc17.gecko-t-win10-64-alpha.use1.mozilla.com generic-worker: Result: 1 0 The operation completed successfully.
Jan 17 15:01:35 i-05486e568aff5bc17.gecko-t-win10-64-alpha.use1.mozilla.com generic-worker: Making system call SHSetKnownFolderPath with args: [C7D840 0 460 C042355EA0]
Jan 17 15:01:35 i-05486e568aff5bc17.gecko-t-win10-64-alpha.use1.mozilla.com generic-worker: Result: 80070057 0 Too many posts were made to a semaphore.
Jan 17 15:01:35 i-05486e568aff5bc17.gecko-t-win10-64-alpha.use1.mozilla.com generic-worker: Saving file file-caches.json (absolute path: C:\generic-worker\file-caches.json)
Jan 17 15:01:35 i-05486e568aff5bc17.gecko-t-win10-64-alpha.use1.mozilla.com generic-worker: Saving file directory-caches.json (absolute path: C:\generic-worker\directory-caches.json)
Jan 17 15:01:35 i-05486e568aff5bc17.gecko-t-win10-64-alpha.use1.mozilla.com generic-worker: goroutine 1 [running]: runtime/debug.Stack(0x0, 0xc042096398, 0x0) /home/travis/.gimme/versions/go1.10.3.src/src/runtime/debug/stack.go:24 +0xae main.HandleCrash(0x8f4240, 0xc0422454a8) /home/travis/gopath/src/github.com/taskcluster/generic-worker/main.go:561 +0x2d main.RunWorker.func1(0xc04246fd70) /home/travis/gopath/src/github.com/taskcluster/generic-worker/main.go:580 +0x59 panic(0x8f4240, 0xc0422454a8) /home/travis/.gimme/versions/go1.10.3.src/src/runtime/panic.go:502 +0x237 main.prepareTaskUser(0xc0421f56f0, 0xf, 0x2) /home/travis/gopath/src/github.com/taskcluster/generic-worker/plat_windows.go:216 +0x782 main.PrepareTaskEnvironment(0xbf08408f55930cc8) /home/travis/gopath/src/github.com/taskcluster/generic-worker/main.go:1339 +0x120 main.RunWorker(0x0) /home/travis/gopath/src/github.com/taskcluster/generic-worker/main.go:639 +0x52a main.main() /home/travis/gopath/src/github.com/taskcluster/generic-worker/main.go:417 +0x946
Jan 17 15:01:35 i-05486e568aff5bc17.gecko-t-win10-64-alpha.use1.mozilla.com generic-worker: *********** PANIC occurred! ***********
Jan 17 15:01:35 i-05486e568aff5bc17.gecko-t-win10-64-alpha.use1.mozilla.com generic-worker: The parameter is incorrect.
Jan 17 15:01:36 i-05486e568aff5bc17.gecko-t-win10-64-alpha.use1.mozilla.com generic-worker: Exiting worker with exit code 69
Jan 17 15:01:36 i-05486e568aff5bc17.gecko-t-win10-64-alpha.use1.mozilla.com generic-worker: Immediate shutdown being issued...
Jan 17 15:01:36 i-05486e568aff5bc17.gecko-t-win10-64-alpha.use1.mozilla.com generic-worker: generic-worker internal error
From here we can see this is running version 10.11.2 of generic-worker (commit 4b47d5d9).
| Assignee | ||
Comment 22•7 years ago
|
||
It looks like comment 3 is accurate - it is the call to update folder location that is failing.
What is interesting as that we are able to successfully update local app data folder, but not roaming app data folder.
We move them from C: drive to Z: drive.
See MSDN known folder IDs (and search for "FOLDERID_LocalAppData" and "FOLDERID_RoamingAppData" on that page).
After successfully updating the roaming app data folder, we fail to update the local app data folder with the error "The parameter is incorrect.".
Note, the reason we make these syscalls is to relocate data folders from C: drive to Z: drive. Now that we are creating our base images in automation, we may be able to put the users directory on the Z: drive at Windows-installation time. This could mean we wouldn't need to change the location later. This may be a worthwhile simplification, and we could remove the code that changes these folder locations dynamically after creating the task user account.
| Assignee | ||
Comment 23•7 years ago
|
||
Other options:
- we disable moving known folders for windows 10 build 1803
- we consider not being able to relocate a known folder a non-fatal error
Another thing worth trying is running the knownfolder utility on a base image directly, to see if it has the same issue.
| Assignee | ||
Comment 24•7 years ago
|
||
I've checked the GUIDs and they match up. I have no good explanation for why this fails on Windows 10 build 1803 but works on all other Windows platforms we've tried. It is quite an obscure feature, perhaps it genuinely is broken in this build of Windows.
| Reporter | ||
Comment 25•7 years ago
•
|
||
(In reply to Pete Moore [:pmoore][:pete] from comment #22)
Note, the reason we make these syscalls is to relocate data folders from C: drive to Z: drive. Now that we are creating our base images in automation, we may be able to put the users directory on the Z: drive at Windows-installation time. This could mean we wouldn't need to change the location later. This may be a worthwhile simplification, and we could remove the code that changes these folder locations dynamically after creating the task user account.
unfortunately this isn't easily practicable. one of the reasons we use the z: drive at all is because of speed problems on the first ebs volume (see bugs 1305174, 1307204). since we have to attach the z: drive to new spot instances rather than bake it into the ami in order to get the better performing drives, we can't rely on any data added to the z: drive during ami creation.
this makes it impossible to set the users folder to the z: drive during ami creation, since the z: drive that is available during ami creation is discarded and a new blank one attached for each spot instance instantiated from the ami later. if the users folder was set to z during ami creation, the admin and system users folders would be installed there and discarded during ami creation. when a new spot instance was spun up with a blank z drive, it would be missing the admin and system profiles and would behave in ways i couldn't predict.
(In reply to Pete Moore [:pmoore][:pete] from comment #23)
we disable moving known folders for windows 10 build 1803
also worth a shot
we consider not being able to relocate a known folder a non-fatal error
seems to be the path of least resistance
either of these should give us a way forward. windows 10 1803 tests will probably write temp data to the c: drive which will have a performance cost but is better than not being able to test on 1803.
once we get tests working, we could also look at adding some symlinks, setting env vars or some other approach that causes temp data to be written to the task folder on z: in order to fix performance.
| Assignee | ||
Comment 26•7 years ago
|
||
| Assignee | ||
Comment 27•7 years ago
|
||
(In reply to Rob Thijssen [:grenade (UTC+2)] from comment #25)
(In reply to Pete Moore [:pmoore][:pete] from comment #22)
Note, the reason we make these syscalls is to relocate data folders from C: drive to Z: drive. Now that we are creating our base images in automation, we may be able to put the users directory on the Z: drive at Windows-installation time. This could mean we wouldn't need to change the location later. This may be a worthwhile simplification, and we could remove the code that changes these folder locations dynamically after creating the task user account.
unfortunately this isn't easily practicable. one of the reasons we use the z: drive at all is because of speed problems on the first ebs volume (see bugs 1305174, 1307204). since we have to attach the z: drive to new spot instances rather than bake it into the ami in order to get the better performing drives, we can't rely on any data added to the z: drive during ami creation.
this makes it impossible to set the users folder to the z: drive during ami creation, since the z: drive that is available during ami creation is discarded and a new blank one attached for each spot instance instantiated from the ami later. if the users folder was set to z during ami creation, the admin and system users folders would be installed there and discarded during ami creation. when a new spot instance was spun up with a blank z drive, it would be missing the admin and system profiles and would behave in ways i couldn't predict.
This makes perfect sense - many thanks for the explanation.
(In reply to Pete Moore [:pmoore][:pete] from comment #23)
we disable moving known folders for windows 10 build 1803
also worth a shot
we consider not being able to relocate a known folder a non-fatal error
seems to be the path of least resistance
either of these should give us a way forward. windows 10 1803 tests will probably write temp data to the c: drive which will have a performance cost but is better than not being able to test on 1803.
once we get tests working, we could also look at adding some symlinks, setting env vars or some other approach that causes temp data to be written to the task folder on z: in order to fix performance.
Great - I've just made a PR to make it a non-fatal error. Like you say, this should unblock us.
I'm still curious if knownfolder utility runs ok or not on 1803 but I haven't had the chance to check yet.
Updated•7 years ago
|
Comment 28•7 years ago
|
||
| Assignee | ||
Comment 29•7 years ago
|
||
Hi Rob!
Can you try again with https://github.com/taskcluster/generic-worker/releases/tag/v11.1.0?
Let me know if you get stuck at all.
Thanks,
Pete
| Reporter | ||
Comment 30•7 years ago
•
|
||
testing in progress:
- iso-to-ami (build new win 10 1803 base amis from win 10 1803 isos): https://tools.taskcluster.net/groups/F-VY4ZyUQ42NgIILmA3Nrw
- OpenCloudConfig (build win 10 1803 alpha worker types):
- treeherder (run firefox unit tests on win 10 1803 alpha worker types): https://treeherder.mozilla.org/#/jobs?repo=try&revision=4eb0584a543cadbef6c64c7e23e3ba1b1dceb91c
| Reporter | ||
Comment 31•7 years ago
|
||
pmoore: looks good! feel free to close this.
| Reporter | ||
Comment 32•7 years ago
|
||
| Assignee | ||
Comment 33•7 years ago
|
||
Thanks Rob!
Updated•7 years ago
|
Description
•