DynamoRIO / DynamoRIO/dynamorio
drx-test fails to set up job flags on GA Server2016
- Dominant language
- C
- Stars
- 3.2k
- Forks
- 629
- Avg merge
- 2d 18h
- Merged PRs (30d)
- 30
Description
drx-test:
```
2020-12-05T20:35:30.7960247Z CreateProcess failure
2020-12-05T20:35:30.7960827Z Function AssignProcessToJobObject() failed!
2020-12-05T20:35:30.7961514Z Error code 0x6.
```
More info:
```
2020-12-05T22:10:28.9127958Z Start 136: code_api|client.drx-test
2020-12-05T22:10:28.9128300Z
2020-12-05T22:10:28.9130476Z 136: Test command: D:\a\dynamorio\dynamorio\build_debug-internal-64\bin64\drrun.exe "-s" "90" "-quiet" "-debug" "-use_dll" "D:/a/dynamorio/dynamorio/build_debug-internal-64/lib64/debug/dynamorio.dll" "-exit0" "-stderr_mask" "0xC" "-msgbox_mask" "0" "-dumpcore_mask" "0x7d" "-staged" "-code_api" "-c" "D:/a/dynamorio/dynamorio/build_debug-internal-64/suite/tests/bin/client.drx-test.dll.dll" "--" "D:/a/dynamorio/dynamorio/build_debug-internal-64/suite/tests/bin/client.drx-test.exe"
<...>
2020-12-05T22:10:32.2311021Z 136: CreateProcess |D:/a/dynamorio/dynamorio/build_debug-internal-64/suite/tests/bin/client.drx-test.exe| |D:/a/dynamorio/dynamorio/build_debug-internal-64/suite/tests/bin/client.drx-test.exe 000000000000009C| failure: 0x5
2020-12-05T22:10:32.2313912Z 136: Function AssignProcessToJobObject() failed!
2020-12-05T22:10:32.2314660Z 136: Error code 0x6.
```
5 == ERROR_ACCESS_DENIED
Could it be b/c of forward slashes?? That would be a not-found error
though right?
Wait: it's on child #2! The 1st one worked.
So likely it is the CREATE_BREAKAWAY_FROM_JOB, which will fail if the job
wasn't created with JOB_OBJECT_LIMIT_BREAKAWAY_OK.
So we'd expect AssignProcessToJobObject() to fail too: should try it.
If so: not much we can do? Is this from however GA sets up the shell to launch our tests?
Some OS config?
For now drx-test is on the ignore list.
Contributor guide
Research direction
Start with the drx-test failure on GA Server2016 and inspect the Windows job setup around CREATE_BREAKAWAY_FROM_JOB and AssignProcessToJobObject(). Compare the first and second child-process behavior, then determine whether the GitHub Actions environment or the test setup causes the failure; done means drx-test no longer fails unexpectedly or the ignore-list decision is clearly documented.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- ci-cd, operating-systems, testing
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100