You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@arrow.apache.org by "Nicola Crane (Jira)" <ji...@apache.org> on 2021/11/02 10:44:00 UTC
[jira] [Updated] (ARROW-14519) [R] left_join segfault
[ https://issues.apache.org/jira/browse/ARROW-14519?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Nicola Crane updated ARROW-14519:
---------------------------------
Description:
{code:r}
library(arrow)
library(dplyr)
basic_tbl <- arrow_table(
tibble::tibble(
x = 1:3,
y = c("a", "b", "c")
)
)
basic_tbl2 <- arrow_table(
tibble::tibble(
x = 1:3,
z = c(T, F, T)
)
)
list_tbl <- arrow_table(
tibble::tibble(
z = list(c("first", "list", "col", "row"), c("second row ", "here")),
x = 1:2
)
)
# works
left_join(basic_tbl, basic_tbl2) %>%
collect()
# segfaults
left_join(basic_tbl, list_tbl) %>%
collect()
{code}
was:
This code results in a segfault:
{code:r}
library(arrow)
library(dplyr)
jedi <- data.frame(name = c("C-3PO", "Luke Skywalker", "Obi-Wan Kenobi"), jedi = c(FALSE, TRUE, TRUE))
jedi_arrow <- arrow_table(jedi)
left_join(jedi_arrow, starwars) %>% collect()
{code}
{code:r}
*** caught segfault ***
address 0x0, cause 'memory not mapped'
Traceback:
1: (function (n) { if (existsInFrame(n, envenv)) envenv[[n]] else { e <- mkenv() envenv[[n]] <- e key <- env[[n]] ekey <- if (is.list(key)) key$eagerKey else key data <- lazyLoadDBfetch(ekey, datafile, compressed, envhook) parent.env(e) <- if (!is.null(data$enclos)) data$enclos else emptyenv() list2env(data$bindings, e) if (!is.null(data$attributes)) attributes(e) <- data$attributes if (!is.null(data$isS4) && data$isS4) .Internal(setS4Object(e, TRUE, TRUE)) if (is.list(key)) { expr <- quote(lazyLoadDBfetch(KEY, datafile, compressed, envhook)) .Internal(makeLazy(names(key$lazyKeys), key$lazyKeys, expr, parent.env(environment()), e)) } if (!is.null(data$locked) && data$locked) .Internal(lockEnvironment(e, FALSE)) e }})("env::104")
2: ExecPlan_run(self, node, sorting, select_k)
3: plan$Run(final_node)
4: do_exec_plan(x)
5: collect.arrow_dplyr_query(.)
6: collect(.)
7: left_join(jedi_arrow, starwars) %>% collect()
{code}
> [R] left_join segfault
> ----------------------
>
> Key: ARROW-14519
> URL: https://issues.apache.org/jira/browse/ARROW-14519
> Project: Apache Arrow
> Issue Type: Bug
> Components: R
> Reporter: Nicola Crane
> Priority: Major
>
>
> {code:r}
> library(arrow)
> library(dplyr)
> basic_tbl <- arrow_table(
> tibble::tibble(
> x = 1:3,
> y = c("a", "b", "c")
> )
> )
> basic_tbl2 <- arrow_table(
> tibble::tibble(
> x = 1:3,
> z = c(T, F, T)
> )
> )
> list_tbl <- arrow_table(
> tibble::tibble(
> z = list(c("first", "list", "col", "row"), c("second row ", "here")),
> x = 1:2
> )
> )
> # works
> left_join(basic_tbl, basic_tbl2) %>%
> collect()
> # segfaults
> left_join(basic_tbl, list_tbl) %>%
> collect()
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)