Closed Bug 1417772 Opened 7 years ago Closed 5 years ago

Perma Tier 2 Central TestDllInterceptor.exe | test failed with return code 2147483651 after Assertion failure: false (MOZ_ASSERT_UNREACHABLE: Unrecognized opcode sequence)

Categories

(Core :: mozglue, defect, P3)

Unspecified
Windows
defect

Tracking

()

RESOLVED FIXED
mozilla72
Tracking Status
firefox72 --- fixed

People

(Reporter: intermittent-bug-filer, Assigned: toshi)

Details

(Keywords: intermittent-failure)

Attachments

(1 file)

Filed by: csabou [at] mozilla.com

https://treeherder.mozilla.org/logviewer.html#?job_id=145154648&repo=mozilla-central

https://queue.taskcluster.net/v1/task/Aue8UB7BRx67nAPkuh0_4A/runs/0/artifacts/public/logs/live_backing.log

23:47:37     INFO -  TEST-START | TestDllInterceptor.exe
23:47:37     INFO -  PID 6732 |
23:47:37     INFO -  Assertion failure: false (MOZ_ASSERT_UNREACHABLE: Unrecognized opcode sequence), at z:/build/build/src/obj-firefox/dist/include\nsWindowsDllInterceptor.h:895
23:47:37  WARNING -  TEST-UNEXPECTED-FAIL | TestDllInterceptor.exe | test failed with return code 2147483651
23:47:37     INFO -  TEST-INFO took 423ms
https://wiki.mozilla.org/Bug_Triage#Intermittent_Test_Failure_Cleanup
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → INCOMPLETE
Recent failure log: https://treeherder.mozilla.org/logviewer.html#?job_id=185162586&repo=autoland&lineNumber=988

13:41:12     INFO -  TEST-START | TestCheckedInt.exe
13:41:12     INFO -  PID 1828 |
13:41:12     INFO -  0 tests failed, 5066 tests passed out of 5066 tests, covering 11 distinct integer types.
13:41:12     INFO -  TEST-PASS | TestCheckedInt.exe | took 176ms
13:41:12     INFO -  TEST-START | TestCountPopulation.exe
13:41:12     INFO -  TEST-PASS | TestCountPopulation.exe | took 174ms
13:41:12     INFO -  TEST-START | TestCountZeroes.exe
13:41:12     INFO -  TEST-PASS | TestCountZeroes.exe | took 122ms
13:41:12     INFO -  TEST-START | TestDefineEnum.exe
13:41:12     INFO -  TEST-PASS | TestDefineEnum.exe | took 171ms
13:41:12     INFO -  TEST-START | TestDllInterceptor.exe
13:41:12  WARNING -  TEST-UNEXPECTED-FAIL | TestDllInterceptor.exe | test failed with return code 3221225794
13:41:12     INFO -  TEST-INFO took 170ms
13:41:12     INFO -  TEST-START | TestEndian.exe
13:41:13     INFO -  TEST-PASS | TestEndian.exe | took 121ms
13:41:13     INFO -  TEST-START | TestEnumeratedArray.exe
13:41:13     INFO -  TEST-PASS | TestEnumeratedArray.exe | took 171ms
13:41:13     INFO -  TEST-START | TestEnumSet.exe
13:41:13     INFO -  TEST-PASS | TestEnumSet.exe | took 171ms
13:41:13     INFO -  TEST-START | TestEnumTypeTraits.exe
13:41:13     INFO -  TEST-PASS | TestEnumTypeTraits.exe | took 169ms
13:41:13     INFO -  TEST-START | TestFastBernoulliTrial.exe
13:41:13     INFO -  TEST-PASS | TestFastBernoulliTrial.exe | took 176ms
13:41:13     INFO -  TEST-START | TestFloatingPoint.exe
13:41:13     INFO -  TEST-PASS | TestFloatingPoint.exe | took 172ms
13:41:13     INFO -  TEST-START | TestIntegerPrintfMacros.exe
13:41:14     INFO -  TEST-PASS | TestIntegerPrintfMacros.exe | took 125ms
13:41:14     INFO -  TEST-START | TestIntegerRange.exe
13:41:14     INFO -  TEST-PASS | TestIntegerRange.exe | took 174ms
Status: RESOLVED → REOPENED
Resolution: INCOMPLETE → ---
https://wiki.mozilla.org/Bug_Triage#Intermittent_Test_Failure_Cleanup
Status: REOPENED → RESOLVED
Closed: 6 years ago6 years ago
Resolution: --- → INCOMPLETE
New occurrences: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=215900517&repo=mozilla-central&lineNumber=1114
Status: RESOLVED → REOPENED
Resolution: INCOMPLETE → ---
Status: REOPENED → RESOLVED
Closed: 6 years ago5 years ago
Resolution: --- → INCOMPLETE

Recent log failure: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=242990385&repo=autoland&lineNumber=1045

20:56:06 INFO - TEST-START | TestDllInterceptor.exe
20:56:06 INFO - PID 7076 |
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Hook added
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Hook called
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Hook works properly
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Hook was not called after unregistration
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Original function worked properly
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Could hook GetWindowInfo from user32.dll
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Executed hooked function GetWindowInfo from user32.dll
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Could hook TrackPopupMenu from user32.dll
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Executed hooked function TrackPopupMenu from user32.dll
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Could hook QueryDosDeviceW from kernelbase.dll
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Executed hooked function QueryDosDeviceW from kernelbase.dll
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Could detour CreateWindowExW from user32.dll
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Executed hooked function CreateWindowExW from user32.dll
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Could hook InSendMessageEx from user32.dll
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Executed hooked function InSendMessageEx from user32.dll
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Could hook ImmGetCompositionStringW from imm32.dll
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Executed hooked function ImmGetCompositionStringW from imm32.dll
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Could hook ImmSetCandidateWindow from imm32.dll
20:56:06 INFO - TEST-SKIPPED | WindowsDllInterceptor | Will not attempt to execute patched ImmSetCandidateWindow.
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Could hook ImmNotifyIME from imm32.dll
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Executed hooked function ImmNotifyIME from imm32.dll
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Could hook GetKeyState from user32.dll
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Executed hooked function GetKeyState from user32.dll
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Could hook LdrUnloadDll from ntdll.dll
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Executed hooked function LdrUnloadDll from ntdll.dll
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Could hook LdrResolveDelayLoadedAPI from ntdll.dll
20:56:06 INFO - TEST-SKIPPED | WindowsDllInterceptor | Will not attempt to execute patched LdrResolveDelayLoadedAPI.
20:56:06 INFO - TEST-SKIPPED | WindowsDllInterceptor | Skipped hook test for RtlInstallFunctionTableCallback from kernel32.dll
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Could hook ProcessCaretEvents from tiptsf.dll
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Executed hooked function ProcessCaretEvents from tiptsf.dll
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Could hook SetCursorPos from user32.dll
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Executed hooked function SetCursorPos from user32.dll
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Could hook InternetOpenA from wininet.dll
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Executed hooked function InternetOpenA from wininet.dll
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Could hook InternetCloseHandle from wininet.dll
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Executed hooked function InternetCloseHandle from wininet.dll
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Could hook InternetConnectA from wininet.dll
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Executed hooked function InternetConnectA from wininet.dll
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Could hook InternetQueryDataAvailable from wininet.dll
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Executed hooked function InternetQueryDataAvailable from wininet.dll
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Could hook InternetReadFile from wininet.dll
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Executed hooked function InternetReadFile from wininet.dll
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Could hook InternetWriteFile from wininet.dll
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Executed hooked function InternetWriteFile from wininet.dll
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Could hook InternetSetOptionA from wininet.dll
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Executed hooked function InternetSetOptionA from wininet.dll
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Could hook HttpAddRequestHeadersA from wininet.dll
20:56:06 INFO - TEST-PASS | WindowsDllInterceptor | Executed hooked function HttpAddRequestHeadersA
20:56:06 WARNING - TEST-UNEXPECTED-FAIL | TestDllInterceptor.exe | test failed with return code 3221225477
20:56:06 INFO - TEST-INFO took 83ms

Status: RESOLVED → REOPENED
Resolution: INCOMPLETE → ---
Component: General → mozglue
OS: Unspecified → Windows
Priority: P5 → P3
Summary: Intermittent TestDllInterceptor.exe | test failed with return code 2147483651 → Intermittent TestDllInterceptor.exe | test failed with return code 2147483651 after Assertion failure: false (MOZ_ASSERT_UNREACHABLE: Unrecognized opcode sequence)
Summary: Intermittent TestDllInterceptor.exe | test failed with return code 2147483651 after Assertion failure: false (MOZ_ASSERT_UNREACHABLE: Unrecognized opcode sequence) → Perma Tier 2 Central TestDllInterceptor.exe | test failed with return code 2147483651 after Assertion failure: false (MOZ_ASSERT_UNREACHABLE: Unrecognized opcode sequence)

I think this is caused by a new test code, not product code. If so, adding #ifdef MOZ_CODE_COVERAGE to a right place should be good.

Is there any way to get TestDllInterceptor.exe and its symbol from "Windows 10 x64 CCov debug" build? I need to debug it locally.

Flags: needinfo?(tkikuchi) → needinfo?(btara)
Flags: needinfo?(btara)

I couldn't find pdb symbols, but I could get at least TestDllInterceptor.exe from a job I submitted.

https://treeherder.mozilla.org/#/jobs?repo=try&revision=d1bebbb270e8c99001262cacf01b83fcccf0e184&selectedJob=278086453

This test failure is expected because the assembly functions with CCov instrumentation have the patterns we cannot support for now. We need to skip these test cases.

0:000> u TestDllInterceptor!MovPushRet l3
TestDllInterceptor!MovPushRet:
00007ff7`169f1000 488305f840090001 add     qword ptr [TestDllInterceptor!rotatePayload+0x940c0 (00007ff7`16a85100)],1
00007ff7`169f1008 48b800000000ff7f0000 mov rax,7FFF00000000h
00007ff7`169f1012 50              push    rax
0:000> u TestDllInterceptor!MovRaxJump l3
TestDllInterceptor!MovRaxJump:
00007ff7`169f1020 488305e040090001 add     qword ptr [TestDllInterceptor!rotatePayload+0x940c8 (00007ff7`16a85108)],1
00007ff7`169f1028 48b800000000ff7f0000 mov rax,7FFF00000000h
00007ff7`169f1032 ffe0            jmp     rax
Assignee: nobody → tkikuchi

Our detour cannot handle assembly patterns which is injected by the code coverage
instrumentation. We need to skip them in CCov build.

Pushed by dluca@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/7dfa4aaad8f3
Skip testcases in TestAssemblyFunctions in CCov build. r=handyman
Status: REOPENED → RESOLVED
Closed: 5 years ago5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla72
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: