Thread overview
Windows segfault, need brief help
Jul 12, 2019
Anonymouse
Jul 12, 2019
Stefan Koch
Jul 13, 2019
Anonymouse
Jul 13, 2019
rikki cattermole
Jul 13, 2019
Boris Carvajal
Jul 13, 2019
Anonymouse
Jul 14, 2019
Boris Carvajal
Jul 15, 2019
Anonymouse
July 12, 2019
I'm suddenly getting segfaults when running tests on Windows. It works fine on Linux. I reduced it to a few lines (plus a dependency) with dustmite, but they don't really make sense[1]. Nevertheless they do trigger the segfault.

Can someone with Windows 10 and dmd 2.087.0 try the following and see if it crashes please?

> git clone https://github.com/zorael/tests -b wintestcrash && cd tests && dub test

If it ends with an assertion failure, okay, darn. If it "exited with code -1073741819" I'll have confirmed it happens for more than just me and AppVeyor, and thus can go ahead and file a bug report.

> Running custom 'unittest' configuration.
> Performing "unittest" build using C:\D\dmd2\windows\bin\dmd.exe for x86_64.
> cachetools 0.1.2: target for configuration "library" is up to date.
> requests 1.0.9: target for configuration "std" is up to date.
> test ~wintestcrash: building configuration "unittest"...
> Linking...
> To force a rebuild of up-to-date targets, run again with --force.
> Running .\test.exe
> Program exited with code -1073741819

[1]: https://github.com/zorael/tests/blob/wintestcrash/source/app.dx
July 12, 2019
On Friday, 12 July 2019 at 22:46:11 UTC, Anonymouse wrote:
> I'm suddenly getting segfaults when running tests on Windows. It works fine on Linux. I reduced it to a few lines (plus a dependency) with dustmite, but they don't really make sense[1]. Nevertheless they do trigger the segfault.
>
> Can someone with Windows 10 and dmd 2.087.0 try the following and see if it crashes please?
>
>> [...]
>
> If it ends with an assertion failure, okay, darn. If it "exited with code -1073741819" I'll have confirmed it happens for more than just me and AppVeyor, and thus can go ahead and file a bug report.
>
>> [...]
>
> [1]: https://github.com/zorael/tests/blob/wintestcrash/source/app.dx

maybe you haven't pushed?
I can't see it.
July 13, 2019
dmd v2.082 cannot reproduce

Needs to be tested on something newer perhaps?
July 13, 2019
On Friday, 12 July 2019 at 22:46:11 UTC, Anonymouse wrote:
> I'm suddenly getting segfaults when running tests on Windows. It works fine on Linux. I reduced it to a few lines (plus a dependency) with dustmite, but they don't really make sense[1]. Nevertheless they do trigger the segfault.
>
> Can someone with Windows 10 and dmd 2.087.0 try the following and see if it crashes please?
>
>> git clone https://github.com/zorael/tests -b wintestcrash && cd tests && dub test

I can reproduce it on Win10/x64 (qemu).
But it's really hard to debug on windows (at least with dmd and no V.Studio), I could only get a readable backtrace with "WinDbg Preview" debugger:

[0x0]   msvcr100!_output_l + 0x41e
[0x1]   msvcr100!printf + 0x7c
[0x2]   test!int core.runtime.runModuleUnitTests().__foreachbody1(object.ModuleInfo*) + 0xd1
[0x3]   test!int object.ModuleInfo.opApply(scope int delegate(object.ModuleInfo*)).__lambda2(immutable(object.ModuleInfo*)) + 0x27
[0x4]   test!int rt.minfo.moduleinfos_apply(scope int delegate(immutable(object.ModuleInfo*))).__foreachbody2(ref rt.sections_win64.SectionGroup) + 0x54
[0x5]   test!int rt.minfo.moduleinfos_apply(scope int delegate(immutable(object.ModuleInfo*))) + 0x1f
[0x6]   test!int object.ModuleInfo.opApply(scope int delegate(object.ModuleInfo*)) + 0x27
[0x7]   test!runModuleUnitTests + 0xfe
...
msvcr100!_output_l+0x41e:
00000000`62e0346e 443811   cmp  byte ptr [rcx],r10b ds:00000000`00000010=??
Registers are: rcx = 0x0000000000000010, r10 = 0x0000000000000000
it seems like ( str[i] == '\0')

So the program try to print from an invalid pointer and the StackTrace/Throwable object is somewhat related.
July 13, 2019
On Friday, 12 July 2019 at 23:05:41 UTC, Stefan Koch wrote:
>> [1]: https://github.com/zorael/tests/blob/wintestcrash/source/app.dx
>
> maybe you haven't pushed?
> I can't see it.

Sorry, typo in the link.

https://github.com/zorael/tests/blob/wintestcrash/source/app.d
July 13, 2019
On Saturday, 13 July 2019 at 06:36:06 UTC, Boris Carvajal wrote:
> On Friday, 12 July 2019 at 22:46:11 UTC, Anonymouse wrote:
>> I'm suddenly getting segfaults when running tests on Windows. It works fine on Linux. I reduced it to a few lines (plus a dependency) with dustmite, but they don't really make sense[1]. Nevertheless they do trigger the segfault.
>>
>> Can someone with Windows 10 and dmd 2.087.0 try the following and see if it crashes please?
>>
>>> git clone https://github.com/zorael/tests -b wintestcrash && cd tests && dub test
>
> I can reproduce it on Win10/x64 (qemu).
> But it's really hard to debug on windows (at least with dmd and no V.Studio), I could only get a readable backtrace with "WinDbg Preview" debugger:

Thank you!

Filed as https://issues.dlang.org/show_bug.cgi?id=20048.

July 14, 2019
On Saturday, 13 July 2019 at 16:39:51 UTC, Anonymouse wrote:

> Thank you!
>
> Filed as https://issues.dlang.org/show_bug.cgi?id=20048.

https://github.com/dlang/druntime/pull/2675
July 15, 2019
On Sunday, 14 July 2019 at 08:49:43 UTC, Boris Carvajal wrote:
> On Saturday, 13 July 2019 at 16:39:51 UTC, Anonymouse wrote:
>
>> Thank you!
>>
>> Filed as https://issues.dlang.org/show_bug.cgi?id=20048.
>
> https://github.com/dlang/druntime/pull/2675

Excellent, thanks!

I got OPTLINK errors while trying to confirm that it worked with digger, so I'll just trust it and wait for 2.088.