[R] help debugging segfaults

Simon Wood snw at mcs.st-and.ac.uk
Wed Jun 12 17:25:26 CEST 2002


Have you tried the dmalloc library (http://dmalloc.com)? I found it great
for tracing memory problems, but I was only using C rather than a mixture
of C and fortran.  Simon
  ______________________________________________________________________
> Simon Wood  snw at st-and.ac.uk  http://www.ruwpa.st-and.ac.uk/simon.html
> The Mathematical Institute, North Haugh, St. Andrews, Fife KY16 9SS UK
> Direct telephone: (0)1334 463799          Indirect fax: (0)1334 463748 


> I've run into segfaults when using my randomForest package on large dataset
> (e.g., 100 x 15200) and large number of trees (e.g., ntree=7000 and
> mtry=3000).  I'm wondering if anyone can give me some hints on where to look
> for the problem.
> 
> The randomForest package mainly consists of two things: rf.c contains rf(),
> a C wrapper function that calls the Fortran subroutines in rfsub.f that do
> most of the work (slightly altered from Breiman's original code).  All
> memory allocations are done in rf.c, using S_alloc().  When I run random
> forest with the data and setting as mentioned above, it was able to finish
> growing the 7000 trees, but segfault when returning from rf() to R.  GDB
> gave the following (gdb prompts removed):
> 
> do_dotCode (call=0x873aff4, op=0x8a5f620, args=0x8a5d010, env=0x86fd0a4)
>     at dotcode.c:1413
> 1413            break;
> 1845        PROTECT(ans = allocVector(VECSXP, nargs));
> 1846        havenames = 0;
> 1847        if (dup) {
> 1849            info.cargs = cargs;
> 1850            info.allArgs = args;
> 1851            info.nargs = nargs;
> 1852            info.functionName = buf;
> 1853            nargs = 0;
> 1854            for (pargs = args ; pargs != R_NilValue ; pargs =
> CDR(pargs)) {
> 1855                if(argConverters[nargs]) {
> 1864                    PROTECT(s = CPtrToRObj(cargs[nargs], CAR(pargs),
> which));
> 
> Program received signal SIGSEGV, Segmentation fault.
> 0x080ddc6a in RunGenCollect (size_needed=1515400) at memory.c:1133
> 1133                    SEXP next = NEXT_NODE(s);
> 
> This is obtained on Linux (Mandrake 8.2 w/enterprise kernel 2.4.8) running
> on dual P3-866 Xeon with 2GB RAM, using R-1.5.0 compiled from source.
> 
> Any help/hints/comments are greatly appreciated!
> 
> Regards,
> Andy
> 
> Andy I. Liaw, PhD
> Biometrics Research          Phone: (732) 594-0820
> Merck & Co., Inc.              Fax: (732) 594-1565
> P.O. Box 2000, RY70-38            Rahway, NJ 07065
> mailto:andy_liaw at merck.com
> 
> 
> 
> ------------------------------------------------------------------------------
> Notice: This e-mail message, together with any attachments, contains information of Merck & Co., Inc. (Whitehouse Station, New Jersey, USA) that may be confidential, proprietary copyrighted and/or legally privileged, and is intended solely for the use of the individual or entity named on this message. If you are not the intended recipient, and have received this message in error, please immediately return this by e-mail and then delete it.
> 
> ==============================================================================
> 
> -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
> r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
> Send "info", "help", or "[un]subscribe"
> (in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
> _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
> 

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._



More information about the R-help mailing list