alexgutteridge / rsruby

Ruby - R bridge.
http://rubyforge.org/projects/rsruby/
GNU Lesser General Public License v2.1
332 stars 59 forks source link

Unpredictable "Segmentation Fault" when a variable is deleted and re-created several times (OS X) #2

Open ozataman opened 15 years ago

ozataman commented 15 years ago

I am using RSRuby to perform a complex linear fit and consequent forecasting. The ruby wrapper is responsible for cycling through a very high number of data sets, each time dynamically generating the formula, wiping out old variables and creating new ones.

At unpredictable intervals, I am encountering errors such as:

"segmentation fault" "bus error"

etc. I am not an expert in embedding C in Ruby, and therefore I am not quite sure what kind of traceback I can provide.

I would be happy to provide any info if someone directs me in the right direction.

Best, Oz

ozataman commented 15 years ago

Here is an example trace I just received while using predict():

* caught segfault *

address 0xc0f5f4f7, cause 'memory not mapped'

Traceback:

1: makepredictcall(variables[[i]], vars[[i + 1]])

2: model.frame.default(formula = main ~ lag.41 + lag.42 + lag.52 + bihfeatures, data = feature.matrix, drop.unused.levels = TRUE)

3: model.frame(formula = main ~ lag.41 + lag.42 + lag.52 + bihfeatures, data = feature.matrix, drop.unused.levels = TRUE)

4: eval(expr, envir, enclos)

5: eval(mf, parent.frame())

6: lm(main ~ lag.41 + lag.42 + lag.52 + bihfeatures, data = feature.matrix)

7: eval(expr, envir, enclos)

8: function (expr, envir = parent.frame(), enclos = if (is.list(envir) || is.pairlist(envir)) parent.frame() else baseenv()) .Internal(eval(expr, envir, enclos))(expression(model.41 = lm(main ~ lag.41 + lag.42 + lag.52 + bihfeatures, data = feature.matrix)))

aborting ...

Segmentation fault

dacox commented 10 years ago

Hey @ozataman, did you ever solve this/find an acceptable workaround? This project seems quite inactive but I figured it was worth a shot. We are currently having unpredictable segfaults exactly as you describe with rsruby. I have already tried recompiling R with R_SignalHandlers = 0.

Cheers