There is a command-line flag for this:

tystie% R --help
...
  --max-ppsize=N        Set max size of protect stack to N

so you do not need to re-compile. It is not uncommon to need more space to load objects than to save them, and the need to raise this limit to re-load a worskpace has come up before on R-help (it is why there is a command-line flag).

The PP stack is not the only stack that can overflow; it is not even the commonest one. So we could not have guessed without the error message, and if you raise this limit you may hit others.

I don't think 63000 objects is large, but 63000 named objects would
be.  Remember that each character string etc is an object (see
memory.profile() for a real count).


On Sat, 12 Sep 2009, Duncan Murdoch wrote:

On 12/09/2009 5:04 PM, sebed1110-div...@yahoo.fr wrote:
Hi,

the error message is "Error: protect(): protection stack overflow"

63000 objects is far more than most people would use, so you may have hit an internal limit. The "protection stack" is used internally by R to temporarily mark objects as "in use" even if they haven't been assigned anywhere; overflows usually signal a bug in some code. By default, it is limited to 50000 entries, and it's very rare that any code would generate more than that number of temporary objects. However, if you have 63000 objects, it's conceivable that they are all protected at some point during loading.

The easiest way to fix this may be not to produce so many objects. I suspect that they aren't all meaningful to you, you probably produced them automatically. So why not store them within a list, or some other structure? That's the normal way to program in R.

If you can't do that, you may be able to read your file by recompiling R with a larger stack limit. The line to change is in src/include/Defn.h around line 214, currently

#define R_PPSSIZE       50000L

Change that to a larger number and you might get lucky.

Duncan Murdoch


Edwige.

Dear all,

I can't load my workspace of 25Mo on R version 2.9.2, because of "
But I saved it normally (save.image()), and I didn't get any notification...
Does anyone know what that can be due to? Is there any limitation of number of objects (+/-63000)?

At least, the error message would be helpful.

Uwe Ligges

Thanks

Edwige Polus.

--
Brian D. Ripley,                  rip...@stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to