AdaCore/libadalang

Binder Crashes when building with BUILD_MODE=prod

andrewathalye opened this issue · 3 comments

Linux x86_64, NixOS, GNAT 12.2.0

Building v23.0.0 with BUILD_MODE=prod causes a Stack Overflow (Storage_Error) in gnatbind after building static libadalang. This is probably related to the optimisation level? It compiles and binds without issue in the default BUILD_MODE.

No additional information is dumped by gnatbind unfortunately, but I saw in top that it was using ~4GB of memory which is fairly high for a normal compile job.

thvnx commented

Hi @andrewathalye . How much memory is available on this machine? Some libadalang Ada sources can be huge, and compiling them in prod mode will make GNAT very resource-consuming.

Can you try running the build by limiting the parallelism (you can pass --jobs=N to manage.py)?

The machine in question had 64GB RAM and 6 cores with hyperthreading. I can try with less parallelism, but this seems like a stack overflow to me rather than an out of memory.

thvnx commented

That should be quite enough indeed! Could you retry with more stack (ulimit -s) to check whether the problem persists?

I have 8MB of stack on my system and I was not able to reproduce your issue.