https://bugs.winehq.org/show_bug.cgi?id=43961
Bug ID: 43961 Summary: ntdll/info tests crash on arm Product: Wine Version: 2.20 Hardware: arm OS: Linux Status: NEW Keywords: download, testcase Severity: normal Priority: P2 Component: ntdll Assignee: wine-bugs@winehq.org Reporter: austinenglish@gmail.com Distribution: Debian
Backtrace: =>0 0xb0cc2000 (0xb132fcc0) 1 0xb1376970 func_info+0x2267() [/home/austin/wine-git/dlls/ntdll/tests/info.c:1772] in ntdll_test (0xb132fcc0) 2 0xb1376970 func_info+0x2267() [/home/austin/wine-git/dlls/ntdll/tests/info.c:1772] in ntdll_test (0xb132fff8) 3 0xb1337ebc main+0x2f3(argc=<is not available>, argv=<is not available>) [/home/austin/wine-git/dlls/ntdll/tests/../../../include/wine/test.h:603] in ntdll_test<elf> (0x00000000)
what's strange is arm is supposed to work: https://source.winehq.org/git/wine.git/blob/039d267b0925273197a9edcf7664c4a4...
1762 #if defined(__x86_64__) || defined(__i386__) 1763 *(unsigned char*)addr = 0xc3; /* lret ... in both i386 and x86_64 */ 1764 #elif defined(__arm__) 1765 *(unsigned long*)addr = 0xe12fff1e; /* bx lr */ 1766 #elif defined(__aarch64__) 1767 *(unsigned long*)addr = 0xd65f03c0; /* ret */ 1768 #else 1769 ok(0, "Add a return opcode for your architecture or expect a crash in this test\n"); 1770 #endif 1771 trace("trying to execute code in the readwrite only mapped anon file...\n"); 1772 f = addr;f(); 1773 trace("...done.\n");
https://bugs.winehq.org/show_bug.cgi?id=43961
André H. nerv@dawncrow.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |nerv@dawncrow.de
--- Comment #1 from André H. nerv@dawncrow.de --- doesn't crash here: 0008:info: 663 tests executed (13 marked as todo, 5 failures), 0 skipped.
https://bugs.winehq.org/show_bug.cgi?id=43961
--- Comment #2 from Austin English austinenglish@gmail.com --- Created attachment 67150 --> https://bugs.winehq.org/attachment.cgi?id=67150 output
Still in wine-5.7-301-ga897d858e4
https://bugs.winehq.org/show_bug.cgi?id=43961
--- Comment #3 from Austin English austinenglish@gmail.com --- FWIW, tested on windows arm (surface rt, armv7), there's one failure: info.c:2521: Test failed: Expected 64, got 32
https://bugs.winehq.org/show_bug.cgi?id=43961
Vijay Kamuju infyquest@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED CC| |infyquest@gmail.com Fixed by SHA1| |44274d172bb72ef06157f5f8a84 | |152a9e7fc5c82 Status|NEW |RESOLVED
--- Comment #4 from Vijay Kamuju infyquest@gmail.com --- Should be fixed by https://source.winehq.org/git/wine.git/commitdiff/44274d172bb72ef06157f5f8a8...
https://bugs.winehq.org/show_bug.cgi?id=43961
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|FIXED |--- Status|RESOLVED |REOPENED
--- Comment #5 from Austin English austinenglish@gmail.com --- (In reply to Vijay Kamuju from comment #4)
Should be fixed by https://source.winehq.org/git/wine.git/commitdiff/ 44274d172bb72ef06157f5f8a84152a9e7fc5c82
That just address comment #3, please don't close bugs that you or someone else haven't verified as fixed.
https://bugs.winehq.org/show_bug.cgi?id=43961
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|REOPENED |NEW CC| |focht@gmx.net
--- Comment #6 from Anastasius Focht focht@gmx.net --- Hello Austin,
I'm seeing a crash as well but it looks different from yours:
test_query_process -> alignment fault when accessing members in SYSTEM_PROCESS_INFORMATION array
--- snip --- $ WINEDEBUG=+seh,+relay,+ntdll,+server wine ./ntdll_test.exe.so info >>log.txt 2>&1 ... Starting test_query_process() ... 0024:Call ntdll.NtQuerySystemInformation(00000005,80615df0,000003e0,8011fa40) ret=7fa433f8 0024:trace:ntdll:NtQuerySystemInformation (0x00000005,0x80615df0,0x000003e0,0x8011fa40) 0024: create_snapshot( attributes=00000000, flags=00000003 ) 0024: create_snapshot() = 0 { handle=005c } 0024: next_process( handle=005c, reset=1 ) 0024: next_process() = 0 { count=3, pid=0020, ppid=0000, threads=1, priority=2, handles=32, unix_pid=1358, filename=L"E:\home\focht\projects\wine\mainline-build-arm\dlls\ntdll\tests\ntdll_test.exe" } 0024: next_thread( handle=005c, reset=1 ) 0024: next_thread() = 0 { count=2, pid=0080, tid=00a4, base_pri=0, delta_pri=0 } 0024: next_thread( handle=005c, reset=0 ) 0024: next_thread() = 0 { count=4, pid=0080, tid=00a0, base_pri=0, delta_pri=0 } 0024: next_thread( handle=005c, reset=0 ) 0024: next_thread() = 0 { count=5, pid=0080, tid=009c, base_pri=0, delta_pri=0 } 0024: next_thread( handle=005c, reset=0 ) 0024: next_thread() = 0 { count=3, pid=0038, tid=0090, base_pri=0, delta_pri=0 } 0024: next_thread( handle=005c, reset=0 ) 0024: next_thread() = 0 { count=4, pid=004c, tid=008c, base_pri=0, delta_pri=0 } 0024: next_thread( handle=005c, reset=0 ) 0024: next_thread() = 0 { count=4, pid=004c, tid=0088, base_pri=0, delta_pri=0 } 0024: next_thread( handle=005c, reset=0 ) 0024: next_thread() = 0 { count=2, pid=0080, tid=0084, base_pri=0, delta_pri=0 } 0024: next_thread( handle=005c, reset=0 ) 0024: next_thread() = 0 { count=2, pid=004c, tid=0074, base_pri=0, delta_pri=0 } 0024: next_thread( handle=005c, reset=0 ) 0024: next_thread() = 0 { count=4, pid=0044, tid=0068, base_pri=0, delta_pri=0 } 0024: next_thread( handle=005c, reset=0 ) 0024: next_thread() = 0 { count=4, pid=0044, tid=0064, base_pri=0, delta_pri=0 } 0024: next_thread( handle=005c, reset=0 ) 0024: next_thread() = 0 { count=5, pid=0044, tid=0060, base_pri=0, delta_pri=0 } 0024: next_thread( handle=005c, reset=0 ) 0024: next_thread() = 0 { count=3, pid=0038, tid=0054, base_pri=0, delta_pri=0 } 0024: next_thread( handle=005c, reset=0 ) 0024: next_thread() = 0 { count=2, pid=004c, tid=0050, base_pri=0, delta_pri=0 } 0024: next_thread( handle=005c, reset=0 ) 0024: next_thread() = 0 { count=2, pid=0044, tid=0048, base_pri=0, delta_pri=0 } 0024: next_thread( handle=005c, reset=0 ) 0024: next_thread() = 0 { count=4, pid=0038, tid=0040, base_pri=0, delta_pri=0 } 0024: next_thread( handle=005c, reset=0 ) 0024: next_thread() = 0 { count=2, pid=0038, tid=003c, base_pri=0, delta_pri=0 } 0024: next_thread( handle=005c, reset=0 ) 0024: next_thread() = 0 { count=2, pid=0030, tid=0034, base_pri=0, delta_pri=0 } 0024: next_thread( handle=005c, reset=0 ) 0024: next_thread() = 0 { count=3, pid=0020, tid=0024, base_pri=0, delta_pri=0 } 0024: next_thread( handle=005c, reset=0 ) 0024: next_thread() = NO_MORE_FILES { count=0, pid=0000, tid=0000, base_pri=0, delta_pri=0 } 0024: next_process( handle=005c, reset=0 ) 0024: next_process() = 0 { count=16, pid=0030, ppid=0028, threads=1, priority=2, handles=64, unix_pid=1364, filename=L"C:\windows\system32\winemenubuilder.exe" } 0024:trace:seh:raise_exception code=80000002 flags=0 addr=0xf7712068 pc=f7712068 tid=0024 0024:trace:seh:raise_exception r0=80615f0e r1=00000000 r2=ffffffff r3=80615ffe r4=8011f11c r5=80615f06 0024:trace:seh:raise_exception r6=000000f8 r7=8011f118 r8=00000001 r9=80615df0 r10=0000005c r11=8011e998 0024:trace:seh:raise_exception r12=00000000 sp=8011e8a0 lr=f7712068 pc=f7712068 cpsr=800f0010 0024:trace:seh:call_stack_handlers calling handler at 0x7fc35a78 code=80000002 flags=0 0024:Call kernelbase.UnhandledExceptionFilter(8011e628) ret=7fc35aa8 ... Unhandled exception: Alignment in 32-bit code (0xf7712068). Register dump: ARM User Mode Pc:f7712068 Sp:8011e8a0 Lr:f7712068 Cpsr:800f0010(N---) r0:80615f0e r1:00000000 r2:ffffffff r3:80615ffe r4:8011f11c r5:80615f06 r6:000000f8 r7:8011f118 r8:00000001 r9:80615df0 r10:0000005c r11:8011e998 r12:00000000 Stack dump: 0x8011e8a0: 00000005 80615df0 000003e0 8011fa40 0x8011e8b0: f78bfc10 f789fd34 00000002 00000000 0x8011e8c0: 8011edf0 00000024 00000002 f781923d 0x8011e8d0: 00000236 f78bfc10 000003e0 8011f198 0x8011e8e0: 00000028 00000004 00000001 8011e920 0x8011e8f0: 8011f1c0 8011fa40 0000005c 00000000 Backtrace: =>0 0xf7712068 (0x8011e998) 0xf7712068: stmia r5, {r6, r8} Modules: Module Address Debug info Name (13 modules) PE 7f1b0000-7f1b4000 Deferred imm32 PE 7f340000-7f344000 Deferred msvcrt PE 7f3f0000-7f3f7000 Deferred gdi32 PE 7f520000-7f524000 Deferred rpcrt4 PE 7f5b0000-7f5b3000 Deferred sechost PE 7f600000-7f604000 Deferred advapi32 PE 7f670000-7f674000 Deferred ucrtbase PE 7f760000-7f76f000 Deferred setupapi PE 7f7f0000-7f8d8000 Deferred user32 PE 7fb20000-7fb27000 Deferred kernelbase PE 7fbf0000-7fdab000 Deferred kernel32 PE 80000000-80004000 Deferred version PE f76b0000-f76b4000 Deferred ntdll --- snip ---
r5 = spi = next (second) SPI struct in array
Your crash in comment #2 is definitely different from the original backtrace in comment #0. Maybe some trace will help.
--- snip --- $ WINEDEBUG=+seh,+relay,+ntdll,+server wine ./ntdll_test.exe.so info >>log.txt 2>&1 --- snip ---
Filter out everything except the faulting thread to reduce the log ('grep tid: log.txt > <tid>.txt').
Regards
https://bugs.winehq.org/show_bug.cgi?id=43961
--- Comment #7 from Austin English austinenglish@gmail.com --- Created attachment 67277 --> https://bugs.winehq.org/attachment.cgi?id=67277 log.txt.xz
https://bugs.winehq.org/show_bug.cgi?id=43961
--- Comment #8 from Anastasius Focht focht@gmx.net --- Hello Austin,
the newest log doesn't show any of the aforementioned crashes. There are some unhandled exceptions when executing 'info debuggee' sub-tests (process debug flags). I don't get the point of this bug? What exactly doesn't work?
Regards
https://bugs.winehq.org/show_bug.cgi?id=43961
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #67277|0 |1 is obsolete| |
--- Comment #9 from Austin English austinenglish@gmail.com --- Created attachment 67804 --> https://bugs.winehq.org/attachment.cgi?id=67804 WINEDEBUG=+seh,+relay,+ntdll,+server
(In reply to Anastasius Focht from comment #8)
Hello Austin,
the newest log doesn't show any of the aforementioned crashes. There are some unhandled exceptions when executing 'info debuggee' sub-tests (process debug flags). I don't get the point of this bug? What exactly doesn't work?
Regards
I still see the crash, it's in test_mapprotection().
I disabled all other tests from info.c and got a relay log.
wine-5.13-195-g0d42388095.
https://bugs.winehq.org/show_bug.cgi?id=43961
François Gouget fgouget@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |source CC| |fgouget@codeweavers.com