[Rd] ok to segfault with POSIXlt zone=NULL zone=""?
spencer.graves at prodsyse.com
Tue Dec 6 18:51:10 CET 2016
I got a similar result from R-Studio 1.0.44 with
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
attached base packages:
 stats graphics grDevices utils
 datasets methods base
loaded via a namespace (and not attached):
> 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.
On 12/6/2016 11:27 AM, frederik at ofb.net wrote:
> Hi all,
> Here's a more minimal version of my earlier bug report (thanks, Joshua
> 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,
> On Tue, Dec 06, 2016 at 04:37:20AM -0800, frederik at 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’:
>> Warning message:
>> package ‘lubridate’ was built under R version 3.4.0
>> *** caught segfault ***
>> address (nil), cause 'unknown'
>> 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...
>> R-devel at r-project.org mailing list
> R-devel at r-project.org mailing list
More information about the R-devel