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();
}
---

Reply via email to