August 23, 2022

Hi,

I got an error message when my program exits (the main functionality is done, I guess the error happened during D runtime's cleanup)

: allocatestack.c:384: advise_stack_range: Assertion `freesize < size' failed.

I suspect it somehow related to I pass some (object) pointers to foreign languages containers (C and Rust). But my main program seems behave correctly (I keep those pointers on the D side to prevent them from being GC-ed), this error only happens when the program exits.

Anyone can give me some hint where I should look at? (and where is the allocatestack.c?)

Thanks.

August 23, 2022
On Tuesday, 23 August 2022 at 18:50:14 UTC, mw wrote:
> Hi,
>
> I got an error message when my program exits (the main functionality is done, I guess the error happened during D runtime's cleanup)
>
> : allocatestack.c:384: advise_stack_range: Assertion `freesize < size' failed.
>
> I suspect it somehow related to I pass some (object) pointers to foreign languages containers (C and Rust). But my main program seems behave correctly (I keep those pointers on the D side to prevent them from being GC-ed), this error only happens when the program exits.
>
> Anyone can give me some hint where I should look at? (and where is the allocatestack.c?)
>
> Thanks.

allocatestack.c is some thing of GLIBC, the line seems to match [1] but I don't think that will help you much. You will need to get a trace where the function is called.

[1] https://code.woboq.org/userspace/glibc/nptl/allocatestack.c.html