sneumann / Rdisop

This is the git repository matching the Bioconductor package Rdisop: Decomposition of Isotopic Patterns
4 stars 7 forks source link

Random crashes with getMolecule if run enough times #9

Open stanstrup opened 6 years ago

stanstrup commented 6 years ago

If I invoke getMolecule enough times it crashes R. Not at the same number of runs but randomly...

library(Rdisop)
for(i in 1:10000){
        print(i)
        temp <- getMolecule("CH4")
}
sneumann commented 6 years ago

Hi, I can't confirm that under Linux. Which OS ? sessionInfo() ? Can you run "R -d gdb" for a stacktrace of the crash ?

stanstrup commented 6 years ago

This was on windows 10. I traced this to an exception code C0000005. Apparently has to do with memory.

I have now tried it on 3 different systems. Windows 7, Windows server 2008 and windows 10.

So it seems windows 10 related. Two different windows 10 machines crash. None of the others. Version of R doesn't seem to matter.

andrewjmc commented 5 years ago

I am having the same problem. Intriguing!

sneumann commented 5 years ago

Hi @andrewjmc , the memory issue could be the Disop C++ code, or the the R-C++ wrappers. So which version of Rdisop is that ? In April @David-J-R changed stuff from RcppClassic to Rcpp, which could've magically fixed things as side-effect. Yours, Steffen

dschief001 commented 4 years ago

Under Win10, I've got the same issue. in a forloop doing a lot of things an sourcing two sub scripts containing functions only the Rdisop function call produces a Fatal Error, causing a total Rstudio crash. I was able to trace the issue back to the Rdisop calls: getMass(getMolecule("H2")) which were saved to a variable, now I hardcoded these values and it doesn't throw the error so far... (I used the momentary RStudio version "Version 1.2.5025", to check it wasn't caused by the preview version I used.) Rdisop version 1.44.0

Thanks

sneumann commented 4 years ago

Hi @dschief001 , I just tried Jan's example again and can't reproduce under Linux. Your Rdisop is after Rdisop-1.43.2 which has the new C++ code by David Rasp. And while Jan saw the issue only on older WIndows versions, yours is a current Win10. Currently I am of little help here. Yours, Steffen

dschief001 commented 4 years ago
library(Rdisop)

input <- c()
for (i in seq_len(10000)) {
  input[i] <- addMolecules(formula1 = "C12H21NO10P",formula2 = "CH2")$formula
}

crashes R on both my Win10 machines, my Rdisop versions both are 1.44.0

Hi @sneumann!

Thanks anyways for considering, I solved the issue by cardcoding the values used, but today had a similar issue, as shown above, which still seems to be present. Yours, Jakob

sneumann commented 4 years ago

This will require someone who can do (memory) debugging on windows. The issue does not surface here on Linux, I am afraid. Yours, Steffen