Marco Giuliano
2018-Aug-31 06:53 UTC
[Rd] Segfault when performing match on POSIXlt object
Hi All, I found a possible unexpected behavior when performing match/%in% on POSIXlt objects, e.g. : d <- as.POSIXlt('2018-01-01') # match(<anything>,<POSIXlt>) --> segfault match(0,d) # consequently also this fails : 0 %in% d REPORTED ERROR ON LINUX: *** caught segfault *** address 0x16dc2, cause 'memory not mapped' Verified on 3.5.0 on linux, 3.5.1 on Windows. I think this could be a bug, since even if that match operation makes no sense, the R session is not supposed to crash with segmentation fault, but rather throw an exception. Thanks in advance [[alternative HTML version deleted]]
Martin Maechler
2018-Aug-31 14:00 UTC
[Rd] Segfault when performing match on POSIXlt object
>>>>> Marco Giuliano >>>>> on Fri, 31 Aug 2018 08:53:02 +0200 writes:> Hi All, I found a possible unexpected behavior when > performing match/%in% on POSIXlt objects, e.g. : > d <- as.POSIXlt('2018-01-01') > # match(<anything>,<POSIXlt>) --> segfault match(0,d) > # consequently also this fails : 0 %in% d > REPORTED ERROR ON LINUX: *** caught segfault *** address > 0x16dc2, cause 'memory not mapped' > Verified on 3.5.0 on linux, 3.5.1 on Windows. Confirmed (Linux, I think all version >= 3.4.0, but not in R 3.3.3 (or earlier, presumably). Note the segfault happens inspite of the match_transform() utility which explicitly checks for "POSIXlt" and the code comment which says that "POSIXlt" should have been transformed to character, but seems to fail in recent versions of R. > I think this could be a bug, since even if that match > operation makes no sense, the R session is not supposed to > crash with segmentation fault, but rather throw an > exception. Definitely. It is a bug. > Thanks in advance Thank you for reporting! Martin Maechler, ETH Zurich
Martin Maechler
2018-Aug-31 14:04 UTC
[Rd] Segfault when performing match on POSIXlt object
>>>>> Martin Maechler on Fri, 31 Aug 2018 16:00:07 +0200 writes:>>>>> Marco Giuliano on Fri, 31 Aug 2018 08:53:02 +0200 writes:>> Hi All, I found a possible unexpected behavior when >> performing match/%in% on POSIXlt objects, e.g. : >> d <- as.POSIXlt('2018-01-01') >> # match(<anything>,<POSIXlt>) --> segfault match(0,d) >> # consequently also this fails : > 0 %in% d >> REPORTED ERROR ON LINUX: *** caught segfault *** address >> 0x16dc2, cause 'memory not mapped' >> Verified on 3.5.0 on linux, 3.5.1 on Windows. > Confirmed (Linux, I think all version >= 3.4.0, but not in > R 3.3.3 (or earlier, presumably). ooops that was an offset error: Bug in all versions >= 3.3.3, but not in 3.2.5 (or earlier, presumably)