Re: [Rd] ok to segfault with POSIXlt zone=NULL zone=""?
I got a similar result from R-Studio 1.0.44 with > sessionInfo() R version 3.3.2 (2016-10-31) Platform: x86_64-apple-darwin13.4.0 (64-bit) Running under: OS X El Capitan 10.11.6 locale: [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 attached base packages: [1] stats graphics grDevices utils [5] datasets methods base loaded via a namespace (and not attached): [1] tools_3.3.2 > d <- as.POSIXlt(Sys.time()) > d$zone <- NULL > d$zone <- "" : "R Session Aborted. R encountered a fatal error. The session was terminated. Start New Session". I got essentially the same result with R 3.3.1. Then I installed 3.3.2 and got the above. Spencer Graves On 12/6/2016 11:27 AM, frede...@ofb.net wrote: Hi all, Here's a more minimal version of my earlier bug report (thanks, Joshua Ulrich): d=as.POSIXlt(Sys.time()); d$zone=NULL; d$zone=""; d I got some helpful, if glib, feedback from Joshua that the segfault may be caused by the changing of the order of the list elements in 'd' (representing the "internal structure" of the POSIXlt object). He seems to think that it's OK for R to segfault - I was wondering if someone else could lend a second opinion. My understanding is that we should try to avoid segfaulting as a way of handling errors, if only because they become much more difficult to debug when the R session is forced to quit. I don't know exactly which line is causing the bug, but looking at the code for do_formatPOSIXlt in "src/main/datetime.c", it seems that there would not be a huge performance penalty to add an extra sanity check to prevent this from occurring. Thank you, Frederick On Tue, Dec 06, 2016 at 04:37:20AM -0800, frede...@ofb.net wrote: Hi all, I ran into a segfault while playing with dates. $ R --no-init-file ... > library(lubridate); d=as.POSIXlt(floor_date(Sys.time(),"year")); d$zone=NULL; d$zone=""; d Attaching package: ‘lubridate’ The following object is masked from ‘package:base’: date Warning message: package ‘lubridate’ was built under R version 3.4.0 *** caught segfault *** address (nil), cause 'unknown' Traceback: 1: format.POSIXlt(x, usetz = TRUE) 2: format(x, usetz = TRUE) 3: print(format(x, usetz = TRUE), ...) 4: print.POSIXlt(x) 5: function (x, ...) UseMethod("print")(x) Possible actions: ... Hope I'm not doing something illegal... Thanks, Frederick __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
Re: [Rd] ok to segfault with POSIXlt zone=NULL zone=""?
I agree this is a bug; R should never segfault. I wouldn't call it a high priority one, since you can avoid the problem by not messing with R's internal structures. It's unlikely to get fixed unless someone posts it as a bug report to bugs.r-project.org (because low priority bugs reported only on mailing lists get forgotten). So please post a minimal example there, possibly accompanied with a patch. If you don't have an account, you can write to me privately and I'll set one up for you. (We no longer allow people to create their own accounts because of abuse by spammers.) Duncan Murdoch On 06/12/2016 12:27 PM, frede...@ofb.net wrote: Hi all, Here's a more minimal version of my earlier bug report (thanks, Joshua Ulrich): d=as.POSIXlt(Sys.time()); d$zone=NULL; d$zone=""; d I got some helpful, if glib, feedback from Joshua that the segfault may be caused by the changing of the order of the list elements in 'd' (representing the "internal structure" of the POSIXlt object). He seems to think that it's OK for R to segfault - I was wondering if someone else could lend a second opinion. My understanding is that we should try to avoid segfaulting as a way of handling errors, if only because they become much more difficult to debug when the R session is forced to quit. I don't know exactly which line is causing the bug, but looking at the code for do_formatPOSIXlt in "src/main/datetime.c", it seems that there would not be a huge performance penalty to add an extra sanity check to prevent this from occurring. Thank you, Frederick On Tue, Dec 06, 2016 at 04:37:20AM -0800, frede...@ofb.net wrote: Hi all, I ran into a segfault while playing with dates. $ R --no-init-file ... > library(lubridate); d=as.POSIXlt(floor_date(Sys.time(),"year")); d$zone=NULL; d$zone=""; d Attaching package: ‘lubridate’ The following object is masked from ‘package:base’: date Warning message: package ‘lubridate’ was built under R version 3.4.0 *** caught segfault *** address (nil), cause 'unknown' Traceback: 1: format.POSIXlt(x, usetz = TRUE) 2: format(x, usetz = TRUE) 3: print(format(x, usetz = TRUE), ...) 4: print.POSIXlt(x) 5: function (x, ...) UseMethod("print")(x) Possible actions: ... Hope I'm not doing something illegal... Thanks, Frederick __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
[Rd] ok to segfault with POSIXlt zone=NULL zone=""?
Hi all, Here's a more minimal version of my earlier bug report (thanks, Joshua Ulrich): d=as.POSIXlt(Sys.time()); d$zone=NULL; d$zone=""; d I got some helpful, if glib, feedback from Joshua that the segfault may be caused by the changing of the order of the list elements in 'd' (representing the "internal structure" of the POSIXlt object). He seems to think that it's OK for R to segfault - I was wondering if someone else could lend a second opinion. My understanding is that we should try to avoid segfaulting as a way of handling errors, if only because they become much more difficult to debug when the R session is forced to quit. I don't know exactly which line is causing the bug, but looking at the code for do_formatPOSIXlt in "src/main/datetime.c", it seems that there would not be a huge performance penalty to add an extra sanity check to prevent this from occurring. Thank you, Frederick On Tue, Dec 06, 2016 at 04:37:20AM -0800, frede...@ofb.net wrote: > Hi all, > > I ran into a segfault while playing with dates. > > $ R --no-init-file > ... > > library(lubridate); d=as.POSIXlt(floor_date(Sys.time(),"year")); > d$zone=NULL; d$zone=""; d > > Attaching package: ‘lubridate’ > > The following object is masked from ‘package:base’: > > date > > Warning message: > package ‘lubridate’ was built under R version 3.4.0 > > *** caught segfault *** > address (nil), cause 'unknown' > > Traceback: > 1: format.POSIXlt(x, usetz = TRUE) > 2: format(x, usetz = TRUE) > 3: print(format(x, usetz = TRUE), ...) > 4: print.POSIXlt(x) > 5: function (x, ...) UseMethod("print")(x) > > Possible actions: > ... > > Hope I'm not doing something illegal... > > Thanks, > > Frederick > > __ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel