On 27/4/2024 23:09, mcalh...@macports.org wrote:
Perhaps not.
I am not quite sure what constitutes a genuine stack overflow.
However, after building the offending binary using the
backtrace_on_stack_overflow crate, and I saw no evidence of of infinite
recursion
(https://docs.rs/backtrace-on-stack-overflow/latest/backtrace_on_stack_overflow/ <https://docs.rs/backtrace-on-stack-overflow/latest/backtrace_on_stack_overflow/>).
Also, the `ulimit` and `sysctl ` values seem consistent across the
different OSs I’ve tried.
I assume they are the same on the buildbots as well.
I will try adding`-stack_size` to the linker flags.
However, the same binary crashes on some OSs and succeeds on others, so
I am not sure why the `-stack_size` would be acceptable on some OSs but
not others.
I don't know how rust does things, but typically there would be one or
more guard pages just beyond the end of the memory area reserved for the
stack. Normal allocations on the stack exceeding the maximum stack size
due to excessive depth of function calls or an excessively large object
being allocated will touch a guard page and cause an exception,
resulting in a stack overflow being reported. That's what I mean by a
genuine stack overflow.
But code could touch a guard page for any number of other reasons, and
that may also be reported as a stack overflow.
- Josh