Issues with debugging GC-related crashes #2

Kagamin spam at here.lot
Thu Apr 19 08:30:45 UTC 2018


On Wednesday, 18 April 2018 at 22:24:13 UTC, Matthias Klumpp 
wrote:
> size_t memSize = pooltable.maxAddr - minAddr;
> (https://github.com/ldc-developers/druntime/blob/ldc/src/gc/impl/conservative/gc.d#L1982 )
> That wouldn't make sense for a pool size...
>
> The machine this is running on has 16G memory, at the time of 
> the crash the software was using ~2.1G memory, with 130G 
> virtual memory due to LMDB memory mapping (I wonder what 
> happens if I reduce that...)

If big LMDB mapping causes a problem, try a test like this:
---
import core.memory;
void testLMDB()
{
     //how do you use it?
}
void test1()
{
     void*[][] a;
     foreach(i;0..100000)a~=new void*[10000];
     void*[][] b;
     foreach(i;0..100000)b~=new void*[10000];
     b=null;
     GC.collect();

     testLMDB();

     GC.collect();
     foreach(i;0..100000)a~=new void*[10000];
     foreach(i;0..100000)b~=new void*[10000];
     b=null;
     GC.collect();
}
---


More information about the Digitalmars-d mailing list