[Rd] ok to segfault with POSIXlt zone=NULL zone=""?
Spencer Graves
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
> 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, frederik at 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, 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’:
>>
>> 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 at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
More information about the R-devel
mailing list