[Rd] Stack checking, core dumps, and embedding R
Jeffrey Horner
jeff.horner at vanderbilt.edu
Wed Apr 12 06:46:51 CEST 2006
Simon Urbanek wrote:
> On Apr 11, 2006, at 5:34 AM, A.J. Rossini wrote:
>
>> I've been experiencing some interesting stack warnings recently
>> when moving from R 2.2.x to the R 2.3.0 series and the R 2.4.0
>> series. In particular, I'm getting warnings of "Error: C stack
>> usage is too close to the limit" before segfaulting, and this
>> wasn't happening under the 2.2.x series.
>>
>> Here's the question statement: (ONLY) In the situation where one
>> is embedding R, is anyone else seeing this occur with recent (past
>> 2 weeks) versions of R (both the 2.3.x and 2.4.x series)?
>>
>
> When embedding R, the stack base is set to -1 (which is almost
> certainly wrong) if R cannot find the stack base using some system
> method. I have just fixed the detection for OS X, so you shouldn't
My question may be unrelated, but I stumbled across it while trying to
understand the above problem. The following is from R-trunk r37731
src/unix/system.c in Rf_initialize_R() and is run when the os is neither
linux nor freebsd:
if(R_running_as_main_program) {
/* This is not the main program, but unless embedded it is
near the top, 5540 bytes away when checked. */
R_CStackStart = (uintptr_t) &i + 6000;
}
This is run before we know which direction the stack grows:
{
int ii;
/* 1 is downwards */
R_CStackDir = ((uintptr_t)&i > (uintptr_t)&ii) ? 1 : -1;
}
So, R_CStackStart is being set to the address of i (on the stack) plus
6000 bytes, an approximation to somewhere near the beginning of the
stack, but this presumes the stack grows down, right? What if it grows
up? Then shouldn't we subtract 6000 bytes?
> get that message there anymore. However, I was wondering why to not
> set it to something reasonable - even if we are not the main
> application, IMHO less harm is done setting it to something based on
> the current stack pointer than using -1. The status quo relies on the
> embedding application to set the stack base - I don't know if that's
> a good idea. Opinions?
>
> Cheers,
> Simon
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
--
Jeffrey Horner Computer Systems Analyst School of Medicine
615-322-8606 Department of Biostatistics Vanderbilt University
More information about the R-devel
mailing list