qs segfaults when using a data.frame with external pointer in attributes in renv-controlled session
Closed this issue · 1 comments
DavZim commented
When I write a dataset that contains externalptrs as an attribute (default for readr
) in a project using renv
, I get a segmentation fault.
#> - Project '~/repro' loaded. [renv 1.0.7]
library(qs)
library(readr)
df <- data.frame(x = 1:10)
write_csv(df, "testdata.csv")
qsave(df, "testdata.qs") # save works here
df2 <- read_csv("testdata.csv")
str(df2)
#> spc_tbl_ [10 × 1] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
#> $ x: num [1:10] 1 2 3 4 5 6 7 8 9 10
#> - attr(*, "spec")=
#> .. cols(
#> .. x = col_double()
#> .. )
#> - attr(*, "problems")=<externalptr>
qsave(df2, "testdata2.qs") # breaks the code
#> *** caught segfault ***
#> address 0x19, cause 'memory not mapped'
#>
#> Traceback:
#> 1: qsave(df2, "testdata2.qs")
The segfault does not show when I use df2 <- as.data.frame(df2)
, df2 <- tibble::as_tibble(df2)
, or attr(df2, "problems") <- NULL
, or when I run this outside of renv
, or when I use df2 <- read.csv("testdata.csv")
instead of readr::read_csv()
.
I am not sure if this belongs here or to renv
.
Let me know if you need any further information.
Session
sessioninfo::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────────────────────────────────────
#> setting value
#> version R version 4.3.1 (2023-06-16)
#> os Ubuntu 22.04.4 LTS
#> system x86_64, linux-gnu
#> ui RStudio
#> language (EN)
#> collate en_US.UTF-8
#> ctype en_US.UTF-8
#> tz Etc/UTC
#> date 2024-05-16
#> rstudio 2023.12.0+369.pro3 Ocean Storm (server)
#> pandoc 2.9.2.1 @ /usr/bin/pandoc
#>
#> ─ Packages ───────────────────────────────────────────────────────────────────────────────────────────────────
#> package * version date (UTC) lib source
#> cli 3.6.1 2023-03-23 [2] RSPM (R 4.3.0)
#> digest 0.6.35 2024-03-11 [1] RSPM (R 4.3.0)
#> ellipsis 0.3.2 2021-04-29 [2] RSPM (R 4.3.0)
#> fansi 1.0.4 2023-01-22 [2] RSPM (R 4.3.0)
#> fastmap 1.1.1 2023-02-24 [2] RSPM (R 4.3.0)
#> glue 1.6.2 2022-02-24 [2] RSPM (R 4.3.0)
#> hms 1.1.3 2023-03-21 [2] RSPM (R 4.3.0)
#> htmltools 0.5.6 2023-08-10 [2] RSPM (R 4.3.0)
#> httpuv 1.6.11 2023-05-11 [2] RSPM (R 4.3.0)
#> later 1.3.1 2023-05-02 [2] RSPM (R 4.3.0)
#> lifecycle 1.0.3 2022-10-07 [2] RSPM (R 4.3.0)
#> magrittr 2.0.3 2022-03-30 [2] RSPM (R 4.3.0)
#> mime 0.12 2021-09-28 [2] RSPM (R 4.3.0)
#> pillar 1.9.0 2023-03-22 [2] RSPM (R 4.3.0)
#> pkgconfig 2.0.3 2019-09-22 [2] RSPM (R 4.3.0)
#> promises 1.2.1 2023-08-10 [2] RSPM (R 4.3.0)
#> qs * 0.26.1 2024-03-09 [1] RSPM (R 4.3.0)
#> R6 2.5.1 2021-08-19 [2] RSPM (R 4.3.0)
#> RApiSerialize 0.1.3 2024-05-14 [1] RSPM (R 4.3.0)
#> Rcpp 1.0.12 2024-01-09 [1] RSPM (R 4.3.0)
#> RcppParallel 5.1.7 2023-02-27 [2] RSPM (R 4.3.0)
#> readr * 2.1.5 2024-01-10 [1] RSPM (R 4.3.0)
#> rlang 1.1.1 2023-04-28 [2] RSPM (R 4.3.0)
#> rsconnect 1.2.1 2024-01-31 [1] RSPM (R 4.3.0)
#> rstudioapi 0.15.0 2023-07-07 [2] RSPM (R 4.3.0)
#> sessioninfo 1.2.2 2021-12-06 [1] RSPM (R 4.3.0)
#> shiny 1.7.5 2023-08-12 [1] RSPM (R 4.3.0)
#> stringfish 0.16.0 2023-11-28 [1] RSPM (R 4.3.0)
#> tibble 3.2.1 2023-03-20 [2] RSPM (R 4.3.0)
#> tzdb 0.4.0 2023-05-12 [2] RSPM (R 4.3.0)
#> utf8 1.2.3 2023-01-31 [2] RSPM (R 4.3.0)
#> vctrs 0.6.3 2023-06-14 [2] RSPM (R 4.3.0)
#> xtable 1.8-4 2019-04-21 [2] RSPM (R 4.3.0)
DavZim commented
I just installed the newest version of qs (0.26.3) and it does not crash anymore. Will close this now!