[datatable-help] data.table crashes R session

Christoph Jäckel christoph.jaeckel at wi.tum.de
Tue Jan 3 09:29:29 CET 2012


Sure, just let me know when the fix is ready. I have a 64bit Linux machine
at home and a 64bit Windows 7 machine at work with RTools, so I can check
it on both machines.

On Tue, Jan 3, 2012 at 1:01 AM, Matthew Dowle <mdowle at mdowle.plus.com>wrote:

>
> Yes, it's likely the same issue. Making progress on it now can
> reproduce, thanks to Chris. There is another crash bug already fixed in
> 1.7.8 but that's probably not the one you're seeing (looking at your
> minimal code, thanks). If you wanted to practice upgrading to 1.7.8 by
> installing RTools on Windows and building the package it would be really
> useful to have you confirm the fix works (when ready), as well as Chris
> (Linux), before releasing to CRAN.  Unfortunately R-Forge's nightly
> binary build isn't very reliable, but RTools makes it very easy to
> compile packages from source on Windows.
>
> Matthew
>
>
> On Mon, 2012-01-02 at 15:41 +0100, Christoph Jäckel wrote:
> > Hi Chris,
> >
> >
> > thanks for your reply. I was not aware that you were able to give
> > Matthew code that breaks. So hopefully it's the same issue and Matthew
> > can figure something out. Unfortunately, I'm struggling enough with R
> > already and I'm completely useless when it comes to C...I guess I
> > should put that on my todo-list for 2012 ;-)
> >
> > On Mon, Jan 2, 2012 at 3:31 PM, Chris Neff <caneff at gmail.com> wrote:
> >         I worked with Matthew a lot and we found that the code I
> >         managed to
> >         give him would not crash on 32-bit, but would on 64-bit (on
> >         both 2.12
> >         and 2.14).  It looks like you are running 64-bit as well, so
> >         you may
> >         very well be seeing the same issue I am.  I'll let him respond
> >         with
> >         more though :)
> >
> >         On 2 January 2012 03:40, Christoph Jäckel
> >         <christoph.jaeckel at wi.tum.de> wrote:
> >         > Note: I posted this on Nabble before, but it keeps telling
> >         me that it has
> >         > not been accepted by the mailing list. So this might be a
> >         duplicate.
> >         >
> >         > Hi together,
> >         >
> >         > I recently encountered severe problems with R (see my post
> >         on stackoverflow
> >         >
> >         here:
> http://stackoverflow.com/questions/8616862/r-terminates-with-error-message-this-application-has-requested-the-runtime-to-t
> ).
> >         > Spending the whole day digging further into the problem, I
> >         was able to
> >         > produce rather minimal code that crashes my RStudio session.
> >         I confirmed
> >         > this on two different machines (see details at the end).  If
> >         I run this code
> >         > in my Linux Terminal, I get the following error:
> >         >
> >         >  *** caught segfault ***
> >         > address (nil), cause 'unknown'
> >         >
> >         > Traceback:
> >         >  1: as.data.frame.Date(x[[i]], optional = TRUE)
> >         >  2: as.data.frame(x[[i]], optional = TRUE)
> >         >  3: data.frame(ID = rep(1:100, each = n/100), intTime =
> >         rep(1:(n/100),
> >         > times = 100), FYE = lDate1 + 1:n)
> >         >
> >         > So it looks like a similar problem  to caneff's
> >         >
> >         problem:
> http://r.789695.n4.nabble.com/Random-segfaults-td4195472i20.html
> >         >
> >         > So my two questions are:
> >         > 1. Can you confirm this? (Sometimes, I have to run the code
> >         a couple of
> >         > times to get R to crash)
> >         > 2. What is the cause? (Interestingly, I need to add the line
> >         DT[, reportDate
> >         > := NA] to get the code breaking, although this line seems
> >         completely
> >         > irrelevant for the further computations. For me, R closes
> >         when the last line
> >         > is run.)
> >         >
> >         > Rather minimal code:
> >         >
> >         > get_diff_month <- function(actualDate, baseDate) {
> >         >
> >         >   #Because data.table also has a month function
> >         >   return(month(actualDate) - month(baseDate) +
> >         12*(year(actualDate) -
> >         > year(baseDate)))
> >         > }
> >         > library(data.table)
> >         >
> >         > n <- 100000
> >         > lDate1 <- as.Date("1jan1900", "%d%b%Y")#dmy("1Jan1900")
> >         > lDate2 <- as.Date("1jan1901", "%d%b%Y")#dmy("1Jan1901")
> >         > df <- data.frame(ID = rep(1:100, each=n/100),
> >         >                  intTime = rep(1:(n/100), times=100),
> >         >                  FYE=lDate1 + 1:n)
> >         > DT <- as.data.table(df)
> >         > DT[rbinom(n, size=1, prob=0.05)==1, FYE:=NA]
> >         > DT[, reportDate := NA] #Bad line: comment it out and nothing
> >         breaks!
> >         > DT[, intFYE      := get_diff_month(FYE, as.Date("1jan1900",
> >         "%d%b%Y"))]
> >         > intDT <- DT[ , list(FYE, intTime, ID)]
> >         > newDates <- intDT[, intTime] - 1
> >         > intDT[, intTime := newDates]
> >         > #Set keys
> >         > key(DT)    <- c("ID", "intTime")
> >         > key(intDT) <- c("ID", "intTime")
> >         > DT <- merge(DT, intDT, all.x=TRUE)
> >         > DT[, intFYE_Next := get_diff_month(FYE.y,
> >         as.Date("1jan1900", "%d%b%Y"))]
> >         >
> >         > sessionInfo() 1:
> >         >
> >         > R version 2.13.2 (2011-09-30)
> >         > Platform: x86_64-pc-linux-gnu (64-bit)
> >         >
> >         > locale:
> >         >  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C
> >         > LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8
> >         LC_MONETARY=C
> >         >
> >         >  [6] LC_MESSAGES=en_US.UTF-8    LC_PAPER=en_US.UTF-8
> >         LC_NAME=C
> >         >          LC_ADDRESS=C               LC_TELEPHONE=C
> >         > [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
> >         >
> >         > attached base packages:
> >         > [1] stats     graphics  grDevices utils     datasets
> >          methods   base
> >         >
> >         > other attached packages:
> >         > [1] data.table_1.7.7
> >         >
> >         > loaded via a namespace (and not attached):
> >         > [1] tools_2.13.2
> >         >
> >         > sessionInfo() 2:
> >         >
> >         >
> >         > R version 2.14.0 (2011-10-31)
> >         > Platform: x86_64-pc-mingw32/x64 (64-bit)
> >         >
> >         > locale:
> >         > [1] C
> >         >
> >         > attached base packages:
> >         > [1] stats     graphics  grDevices utils     datasets
> >          methods   base
> >         >
> >         > other attached packages:
> >         > [1] data.table_1.7.7
> >         >
> >         > loaded via a namespace (and not attached):
> >         > [1] tools_2.14.0
> >         >
> >         > Thanks Christoph
> >         >
> >         > --
> >         >
> >
> --------------------------------------------------------------------------------------------------------------------------------------------------------------------
> >         >
> >         > Christoph Jäckel (Dipl.-Kfm.)
> >         >
> >         >
> >
> --------------------------------------------------------------------------------------------------------------------------------------------------------------------
> >         >
> >         > Research Assistant
> >         >
> >         > Chair for Financial Management and Capital Markets |
> >         Lehrstuhl für
> >         > Finanzmanagement und Kapitalmärkte
> >         >
> >         > TUM School of Management | Technische Universität München
> >         >
> >         > Arcisstr. 21 | D-80333 München | Germany
> >         >
> >         > Mailto: christoph.jaeckel at wi.tum.de | Web: www.fm.wi.tum.de
> >         >
> >         > Phone: +49 89 289 25487 | Fax: +49 89 289 25488
> >         >
> >         >
> >         >
> >         > Head of Chair:
> >         >
> >         > Univ.-Prof. Dr. Christoph Kaserer
> >         >
> >         >
> >
> ----------------------------------------------------------------------------------------------------------------------------------------------------------------------
> >         >
> >         > E-Mail Disclaimer
> >         >
> >         > Der Inhalt dieser E-Mail ist vertraulich und ausschliesslich
> >         > fuer den bezeichneten Adressaten bestimmt. Wenn Sie nicht
> >         > der vorgesehene Adressat dieser E-Mail oder dessen Vertreter
> >         > sein sollten, so beachten Sie bitte, dass jede Form der
> >         > Kenntnisnahme, Veroeffentlichung, Vervielfaeltigung oder
> >         > Weitergabe des Inhalts dieser E-Mail unzulaessig ist. Wir
> >         > bitten Sie, sich in diesem Fall mit dem Absender der E-Mail
> >         > in Verbindung zu setzen.
> >         >
> >         > The information contained in this email is confidential. It
> >         is
> >         > intended solely for the addressee. Access to this email by
> >         > anyone else is unauthorized if you are not the intended
> >         > recipient, any form of disclosure, reproduction,
> >         distribution
> >         > or any action taken or refrained from in reliance on it, is
> >         > prohibited and may be unlawful. Please notify the sender
> >         > immediately.
> >         >
> >
> ----------------------------------------------------------------------------------------------------------------------------------------------------------------------
> >         >
> >
> >         > _______________________________________________
> >         > datatable-help mailing list
> >         > datatable-help at lists.r-forge.r-project.org
> >         >
> >
> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help
> >
> >
> >
> >
> > --
> >
> --------------------------------------------------------------------------------------------------------------------------------------------------------------------
> >
> > Christoph Jäckel (Dipl.-Kfm.)
> >
> >
> --------------------------------------------------------------------------------------------------------------------------------------------------------------------
> >
> > Research Assistant
> >
> > Chair for Financial Management and Capital Markets | Lehrstuhl für
> > Finanzmanagement und Kapitalmärkte
> >
> > TUM School of Management | Technische Universität München
> >
> > Arcisstr. 21 | D-80333 München | Germany
> >
> > Mailto: christoph.jaeckel at wi.tum.de | Web: www.fm.wi.tum.de
> >
> > Phone: +49 89 289 25487 | Fax: +49 89 289 25488
> >
> >
> >
> > Head of Chair:
> >
> > Univ.-Prof. Dr. Christoph Kaserer
> >
> >
> ----------------------------------------------------------------------------------------------------------------------------------------------------------------------
> >
> > E-Mail Disclaimer
> >
> > Der Inhalt dieser E-Mail ist vertraulich und ausschliesslich
> > fuer den bezeichneten Adressaten bestimmt. Wenn Sie nicht
> > der vorgesehene Adressat dieser E-Mail oder dessen Vertreter
> > sein sollten, so beachten Sie bitte, dass jede Form der
> > Kenntnisnahme, Veroeffentlichung, Vervielfaeltigung oder
> > Weitergabe des Inhalts dieser E-Mail unzulaessig ist. Wir
> > bitten Sie, sich in diesem Fall mit dem Absender der E-Mail
> > in Verbindung zu setzen.
> >
> > The information contained in this email is confidential. It is
> > intended solely for the addressee. Access to this email by
> > anyone else is unauthorized if you are not the intended
> > recipient, any form of disclosure, reproduction, distribution
> > or any action taken or refrained from in reliance on it, is
> > prohibited and may be unlawful. Please notify the sender
> > immediately.
> >
> ----------------------------------------------------------------------------------------------------------------------------------------------------------------------
> >
> > _______________________________________________
> > datatable-help mailing list
> > datatable-help at lists.r-forge.r-project.org
> >
> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/datatable-help/attachments/20120103/f3cce1fd/attachment-0001.htm>


More information about the datatable-help mailing list