Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Spurious NSURL test failures on Windows x64 MSVC #367

Open
triplef opened this issue Jan 30, 2024 · 7 comments
Open

Spurious NSURL test failures on Windows x64 MSVC #367

triplef opened this issue Jan 30, 2024 · 7 comments

Comments

@triplef
Copy link
Member

triplef commented Jan 30, 2024

Looking at the recent test runs on the master branch it seems that since around October 10 the following test is sometimes failing for the Windows x64 MSVC target:

base/NSURL/test00.m:
Failed file:     test00.m aborted without running all tests!

@hmelder do you maybe have an idea what might be going on here? I think you had marked that test as "hopeful" a while back because of #266, so it’s not clear to me why it’s failing the test run.

@hmelder
Copy link
Contributor

hmelder commented Feb 6, 2024

Do you maybe have an idea what might be going on here?

Hard to tell without any output. Can you reproduce it locally and send me the lldb backtrace?

@qmfrederik
Copy link
Contributor

For this build: https://github.com/gnustep/libs-base/actions/runs/7890397845/job/21532477606, a slightly different set of tests failed:

Running base/NSURL/test01.m...
2024-02-13 17:47:49.222 test01[5456:6932] Unable to map timezone 'Coordinated Universal Time' to IANA format
2024-02-13 17:47:49.222 test01[5456:6932] Marking local web server tests as hopeful because GSInetServerStream is broken on Windows
Start set:       test01.m:40 ... Keepalive
Passed test:     (2024-02-13 17:47:59.246 +0000)   test01.m:71 ... keep-alive test 0 OK
Passed test:     (2024-02-13 17:47:59.246 +0000)   test01.m:71 ... keep-alive test 1 OK
Passed test:     (2024-02-13 17:47:59.246 +0000)   test01.m:71 ... keep-alive test 2 OK
Passed test:     (2024-02-13 17:47:59.246 +0000)   test01.m:71 ... keep-alive test 3 OK
Passed test:     (2024-02-13 17:47:59.246 +0000)   test01.m:71 ... keep-alive test 4 OK
Passed test:     (2024-02-13 17:47:59.262 +0000)   test01.m:71 ... keep-alive test 5 OK
Passed test:     (2024-02-13 17:47:59.262 +0000)   test01.m:71 ... keep-alive test 6 OK
Passed test:     (2024-02-13 17:47:59.262 +0000)   test01.m:71 ... keep-alive test 7 OK
Failed file:     test01.m aborted without running all tests!
Running base/NSURLHandle/test01.m...
2024-02-13 17:51:11.578 test01[6476:6532] Unable to map timezone 'Coordinated Universal Time' to IANA format
2024-02-13 17:51:11.578 test01[6476:6532] Marking local web server tests as hopeful because GSInetServerStream is broken on Windows
2024-02-13 17:51:11.625 StatusServer[6940:5880] Unable to map timezone 'Coordinated Universal Time' to IANA format
Failed file:     test01.m aborted without running all tests!

@qmfrederik
Copy link
Contributor

qmfrederik commented Feb 14, 2024

Also, looks like these tests started consistently failing after d6bb6de, which has the following comment: "Source/NSString.m: Return empty string of correct class when loading from an empty file or URL."

@hmelder
Copy link
Contributor

hmelder commented Feb 14, 2024

I was able to reproduce this on Windows on ARM64:

image

(The Windows loader cannot find the python3.dll which is why lldb fails to start)

@hmelder
Copy link
Contributor

hmelder commented Feb 14, 2024

If this helps:

(lldb) Process 6132 launched: 'C:\tools-windows-msvc\src\gnustep-base\Tests\base\NSURL\obj\test01.exe' (aarch64)
Process 6132 stopped
* thread #1, stop reason = Exception 0xc0000008 encountered at address 0x7ffe51b527f8
    frame #0: 0x00007ffe51b527f8 ntdll.dll`KiRaiseUserExceptionDispatcher + 40
ntdll.dll`KiRaiseUserExceptionDispatcher:
->  0x7ffe51b527f8 <+40>: ldp    x29, x30, [sp], #0xb0
    0x7ffe51b527fc <+44>: ret
    0x7ffe51b52800 <+48>: udf    #0x0
    0x7ffe51b52804 <+52>: udf    #0x0
(lldb) bt
* thread #1, stop reason = Exception 0xc0000008 encountered at address 0x7ffe51b527f8
  * frame #0: 0x00007ffe51b527f8 ntdll.dll`KiRaiseUserExceptionDispatcher + 40
    frame #1: 0x00007ffe4d4ab5d8 KernelBase.dll`CloseHandle + 120
    frame #2: 0x00007ffdf5233e94
    frame #3: 0x00007ffdf5234224
    frame #4: 0x00007ffdf5233d28
    frame #5: 0x00007ffdf5233c14
    frame #6: 0x00007ffdf5233c88
    frame #7: 0x00007ffdf52341a8
    frame #8: 0x00007ffdf5233ef8
    frame #9: 0x00007ffdf5eae0e8 gnustep-base-1_29.dll`GSFromUnicode at GSFileHandle.m:1682
    frame #10: 0x00007ffdf5c5b610 gnustep-base-1_29.dll`GSDefaultLanguageLocale at GSHTTPURLHandle.m:359
    frame #11: 0x00007ffdf5c5d320 gnustep-base-1_29.dll`GSDefaultLanguageLocale at GSHTTPURLHandle.m:805
    frame #12: 0x00007ffdf5d7c400 gnustep-base-1_29.dll`NSShouldRetainWithZone at NSObject.m:2028
    frame #13: 0x00007ffdf5d6c4d4 gnustep-base-1_29.dll`NSLogv at NSNotificationCenter.m:1195
    frame #14: 0x00007ffdf5d6c9e0 gnustep-base-1_29.dll`NSLogv at NSNotificationCenter.m:1240
    frame #15: 0x00007ffdf5eae574 gnustep-base-1_29.dll`GSFromUnicode at GSFileHandle.m:1781
    frame #16: 0x00007ffdf5eafc64 gnustep-base-1_29.dll`GSFromUnicode at GSFileHandle.m:2239
    frame #17: 0x00007ffdf5eb05e8 gnustep-base-1_29.dll`GSFromUnicode at GSFileHandle.m:2402
    frame #18: 0x00007ffdf5eb3198 gnustep-base-1_29.dll`GSFromUnicode at GSRunLoopCtxt.m:582
    frame #19: 0x00007ffdf5dc0ef8 gnustep-base-1_29.dll`_NSRangeExceptionRaise at NSRunLoop.m:1254
(lldb) bt
* thread #1, stop reason = Exception 0xc0000008 encountered at address 0x7ffe51b527f8
 frame #0: 0x00007ffe51b527f8 ntdll.dll`KiRaiseUserExceptionDispatcher + 40
 frame #1: 0x00007ffe4d4ab5d8 KernelBase.dll`CloseHandle + 120
* frame #2: 0x00007ffdf5233e94
 frame #3: 0x00007ffdf5234224
 frame #4: 0x00007ffdf5233d28
 frame #5: 0x00007ffdf5233c14
 frame #6: 0x00007ffdf5233c88
 frame #7: 0x00007ffdf52341a8
 frame #8: 0x00007ffdf5233ef8
 frame #9: 0x00007ffdf5eae0e8 gnustep-base-1_29.dll`GSFromUnicode at GSFileHandle.m:1682
 frame #10: 0x00007ffdf5c5b610 gnustep-base-1_29.dll`GSDefaultLanguageLocale at GSHTTPURLHandle.m:359
 frame #11: 0x00007ffdf5c5d320 gnustep-base-1_29.dll`GSDefaultLanguageLocale at GSHTTPURLHandle.m:805
 frame #12: 0x00007ffdf5d7c400 gnustep-base-1_29.dll`NSShouldRetainWithZone at NSObject.m:2028
 frame #13: 0x00007ffdf5d6c4d4 gnustep-base-1_29.dll`NSLogv at NSNotificationCenter.m:1195
 frame #14: 0x00007ffdf5d6c9e0 gnustep-base-1_29.dll`NSLogv at NSNotificationCenter.m:1240
 frame #15: 0x00007ffdf5eae574 gnustep-base-1_29.dll`GSFromUnicode at GSFileHandle.m:1781
 frame #16: 0x00007ffdf5eafc64 gnustep-base-1_29.dll`GSFromUnicode at GSFileHandle.m:2239
 frame #17: 0x00007ffdf5eb05e8 gnustep-base-1_29.dll`GSFromUnicode at GSFileHandle.m:2402
 frame #18: 0x00007ffdf5eb3198 gnustep-base-1_29.dll`GSFromUnicode at GSRunLoopCtxt.m:582
 frame #19: 0x00007ffdf5dc0ef8 gnustep-base-1_29.dll`_NSRangeExceptionRaise at NSRunLoop.m:1254
(lldb) bt all
thread #2
 frame #0: 0x00007ffe51b511a4 ntdll.dll`NtWaitForWorkViaWorkerFactory + 4
 frame #1: 0x00007ffe51b86c00 ntdll.dll`RtlSetThreadWorkOnBehalfTicket + 864
 frame #2: 0x00007ffe517f2310 kernel32.dll`BaseThreadInitThunk + 48
 frame #3: 0x00007ffe51bb577c ntdll.dll`RtlUserThreadStart + 60
thread #3
 frame #0: 0x00007ffe51b511a4 ntdll.dll`NtWaitForWorkViaWorkerFactory + 4
 frame #1: 0x00007ffe51b86c00 ntdll.dll`RtlSetThreadWorkOnBehalfTicket + 864
 frame #2: 0x00007ffe517f2310 kernel32.dll`BaseThreadInitThunk + 48
 frame #3: 0x00007ffe51bb577c ntdll.dll`RtlUserThreadStart + 60
* thread #1, stop reason = Exception 0xc0000008 encountered at address 0x7ffe51b527f8
 frame #0: 0x00007ffe51b527f8 ntdll.dll`KiRaiseUserExceptionDispatcher + 40
 frame #1: 0x00007ffe4d4ab5d8 KernelBase.dll`CloseHandle + 120
* frame #2: 0x00007ffdf5233e94
 frame #3: 0x00007ffdf5234224
 frame #4: 0x00007ffdf5233d28
 frame #5: 0x00007ffdf5233c14
 frame #6: 0x00007ffdf5233c88
 frame #7: 0x00007ffdf52341a8
 frame #8: 0x00007ffdf5233ef8
 frame #9: 0x00007ffdf5eae0e8 gnustep-base-1_29.dll`GSFromUnicode at GSFileHandle.m:1682
 frame #10: 0x00007ffdf5c5b610 gnustep-base-1_29.dll`GSDefaultLanguageLocale at GSHTTPURLHandle.m:359
 frame #11: 0x00007ffdf5c5d320 gnustep-base-1_29.dll`GSDefaultLanguageLocale at GSHTTPURLHandle.m:805
 frame #12: 0x00007ffdf5d7c400 gnustep-base-1_29.dll`NSShouldRetainWithZone at NSObject.m:2028
 frame #13: 0x00007ffdf5d6c4d4 gnustep-base-1_29.dll`NSLogv at NSNotificationCenter.m:1195
 frame #14: 0x00007ffdf5d6c9e0 gnustep-base-1_29.dll`NSLogv at NSNotificationCenter.m:1240
 frame #15: 0x00007ffdf5eae574 gnustep-base-1_29.dll`GSFromUnicode at GSFileHandle.m:1781
 frame #16: 0x00007ffdf5eafc64 gnustep-base-1_29.dll`GSFromUnicode at GSFileHandle.m:2239
 frame #17: 0x00007ffdf5eb05e8 gnustep-base-1_29.dll`GSFromUnicode at GSFileHandle.m:2402
 frame #18: 0x00007ffdf5eb3198 gnustep-base-1_29.dll`GSFromUnicode at GSRunLoopCtxt.m:582
 frame #19: 0x00007ffdf5dc0ef8 gnustep-base-1_29.dll`_NSRangeExceptionRaise at NSRunLoop.m:1254
thread #4
 frame #0: 0x00007ffe51b511a4 ntdll.dll`NtWaitForWorkViaWorkerFactory + 4
 frame #1: 0x00007ffe51b86c00 ntdll.dll`RtlSetThreadWorkOnBehalfTicket + 864
 frame #2: 0x00007ffe517f2310 kernel32.dll`BaseThreadInitThunk + 48
 frame #3: 0x00007ffe51bb577c ntdll.dll`RtlUserThreadStart + 60
thread #6
 frame #0: 0x00007ffe51b4f404 ntdll.dll`NtRemoveIoCompletion + 4
 frame #1: 0x00007ffe4b9c2d08 mswsock.dll`Tcpip4_WSHGetWildcardSockaddr + 520
 frame #2: 0x00007ffe517f2310 kernel32.dll`BaseThreadInitThunk + 48
 frame #3: 0x00007ffe51bb577c ntdll.dll`RtlUserThreadStart + 60
thread #5
 frame #0: 0x00007ffe51b4f3b4 ntdll.dll`NtWaitForSingleObject + 4
 frame #1: 0x00007ffe4d4a6c68 KernelBase.dll`WaitForSingleObjectEx + 136
 frame #2: 0x00007ffdf5df469c gnustep-base-1_29.dll`uni_isnonsp at NSTask.m:1206
 frame #3: 0x00007ffdf5d7c400 gnustep-base-1_29.dll`NSShouldRetainWithZone at NSObject.m:2028
 frame #4: 0x00007ffdf5df6d88 gnustep-base-1_29.dll`GSCurrentThreadDictionary at NSThread.m:1307
 frame #5: 0x00007ffdf5df7324 gnustep-base-1_29.dll`static void nsthreadLauncher(thread=0x00000163927f9588) at NSThread.m:1433
 frame #6: 0x00007ffdf51a8ff8
 frame #7: 0x00007ffe517f2310 kernel32.dll`BaseThreadInitThunk + 48
 frame #8: 0x00007ffe51bb577c ntdll.dll`RtlUserThreadStart + 60
(lldb)

@hmelder
Copy link
Contributor

hmelder commented Feb 14, 2024

I cannot get more information out of it right now. Maybe running it on x86_64 and debugging it there is more rewarding.

@qmfrederik
Copy link
Contributor

This seems to be pretty consistent now on win64/clang+msvc, causing CI to be red. I propose skipping the failing tests/marking them as hopeful in #398. I believe it's a reasonable thing to do as this issue has been open for > 3 months, but let me know if you object.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

3 participants