<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On 5 December 2015 at 03:46, Steven Schveighoffer via Digitalmars-d <span dir="ltr"><<a href="mailto:digitalmars-d@puremagic.com" target="_blank">digitalmars-d@puremagic.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="">On 12/4/15 7:33 PM, Iain Buclaw via Digitalmars-d wrote:<br>
</span><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="">
On 5 December 2015 at 00:40, Iain Buclaw <<a href="mailto:ibuclaw@gdcproject.org" target="_blank">ibuclaw@gdcproject.org</a><br></span><span class="">
<mailto:<a href="mailto:ibuclaw@gdcproject.org" target="_blank">ibuclaw@gdcproject.org</a>>> wrote:<br>
<br>
On 4 December 2015 at 21:52, Iain Buclaw <<a href="mailto:ibuclaw@gdcproject.org" target="_blank">ibuclaw@gdcproject.org</a><br></span><span class="">
<mailto:<a href="mailto:ibuclaw@gdcproject.org" target="_blank">ibuclaw@gdcproject.org</a>>> wrote:<br>
<br>
On 1 December 2015 at 09:46, Iain Buclaw <<a href="mailto:ibuclaw@gdcproject.org" target="_blank">ibuclaw@gdcproject.org</a><br></span><span class="">
<mailto:<a href="mailto:ibuclaw@gdcproject.org" target="_blank">ibuclaw@gdcproject.org</a>>> wrote:<br>
<br>
When running the unittest program for druntime.<br>
<br>
---<br>
Program received signal SIGSEGV, Segmentation fault.<br>
__memset_avx2 () at<br>
../sysdeps/x86_64/multiarch/memset-avx2.S:101<br>
<br>
backtrace:<br>
#0 __memset_avx2 () at<br>
../sysdeps/x86_64/multiarch/memset-avx2.S:101<br>
#1 0x00000000004d45a0 in gc.gc.GC.malloc(ulong, uint,<br>
ulong*, const(TypeInfo)) (this=..., size=8, bits=0,<br>
alloc_size=0x7fffffffd428, ti=0x714050<br>
<TypeInfo_PS2rt3aaA4Impl.init$>) at<br>
../../../../dev/libphobos/libd<br>
runtime/gc/gc.d:459<br>
#2 0x00000000004c5948 in gc_qalloc (sz=8, ba=0, ti=0x714050<br>
<TypeInfo_PS2rt3aaA4Impl.init$>) at<br></span>
../../../.../dev/libphobos/libdruntime/gc/proxy.d:196<span class=""><br>
#3 0x00000000004450de in core.memory.GC.qalloc(ulong, uint,<br>
const(TypeInfo)) (sz=8, ba=0, ti=0x714050<br>
<TypeInfo_PS2rt3aaA4Impl.init$>) at<br>
../../../../dev/libphobos/libdruntime/core/memory.d:368<br>
#4 0x0000000000420e31 in _d_newitemT (_ti=0x714050<br>
<TypeInfo_PS2rt3aaA4Impl.init$>) at<br>
../../../../dev/libphobos/libdruntime/rt/lifetime.d:1096<br>
#5 0x0000000000411f6c in _aaGetX (aa=0x7ffff7ed2090,<br>
keyti=0x7191a0 <ClassInfo for core.thread.Thread>,<br>
valuesize=8, pkey=0x7fffffffd598) at<br>
../../../../dev/libphobos/libdruntime/rt/aaA.d:172<br>
<br>
<br>
DMD dropped calling this function in favour for _aaGetY().<br>
<br>
Maybe I'm chasing a dead end, but maybe, *maybe* something<br>
changed and _aaGetX was not updated parallel?<br>
<br>
Iain.<br>
<br>
<br>
Well, reverting all of druntime 2.067 (minus the bits that produce<br>
new errors) and I don't hit this error.<br>
<br>
At least I have a (rather large) starting point to bisect down. :-)<br>
<br>
<br></span><span class="">
Squashed down to a 1600 line diff of rt.lifetime, everything else has<br>
been applied and passes the unittests just fine.<br>
</span></blockquote>
<br>
I'm interested in hearing what this is. lifetime.d went through a major update with struct destructor support in the GC. We've found a couple of bugs in there. You should examine the history between 2.067 and now.<br>
<br>
-Steve<br>
</blockquote></div><br></div><div class="gmail_extra">Applying changes in a patch by patch manner using git-format, it didn't take long to find the bad patch.<br><br><a href="https://github.com/D-Programming-Language/druntime/pull/941">https://github.com/D-Programming-Language/druntime/pull/941</a><br><br></div><div class="gmail_extra">There's apparently a dependency on a compiler change, though I haven't looked at that yet.<br><br></div><div class="gmail_extra">Iain<br></div></div>