8000 ark kernel crash: ScopedInterruptHandler error when running in Positron · Issue #631 · tidyverse/duckplyr · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

ark kernel crash: ScopedInterruptHandler error when running in Positron #631

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
ywhcuhk opened this issue Mar 2, 2025 · 11 comments
Open

Comments

@ywhcuhk
Copy link
ywhcuhk commented Mar 2, 2025

I keep getting the following error message after reading parquet files. The code is as simple as just read a csv file with read_csv_duckdb()

Error: {"exception_type":"INTERNAL","exception_message":"ScopedInterruptHandler already active","stack_trace_pointers":""}
R 4.4.3 exited unexpectedly: exit code -1073740791
@krlmlr
Copy link
Member
krlmlr commented Mar 2, 2025

Thanks. Are you also seeing this when running a standalone R script that reads the CSV file? Can you share a reprex?

@ywhcuhk
Copy link
Author
ywhcuhk commented Mar 3, 2025

It's hard for me to come by a reprex because it's just reading a parquet or csv file. I note that if I use collect() at the end, then it won't crash.

@krlmlr
Copy l 8000 ink
Member
krlmlr commented Mar 3, 2025

Are you also seeing this when running a standalone R script that reads the Parquet or CSV file? Can you share the code that works and that doesn't?

What OS are you on?

@ywhcuhk
Copy link
Author
ywhcuhk commented Mar 3, 2025

I am not sure what do you mean "standalone" R script. The code below are run right after I load the duckplyr package.

The code below would cause crash.

data <- read_parquet_duckdb('file.parquet') %>%
  select(x, y, z) 

The error message is

Error: {"exception_type":"INTERNAL","exception_message":"ScopedInterruptHandler already active","stack_trace_pointers":""}
R 4.4.3 exited unexpectedly: exit code -1073740791

The code below works

data <- read_parquet_duckdb('file.parquet') %>%
  select(x, y, z)  %>%
  collect()

@vizowl
Copy link
vizowl commented Mar 3, 2025

I'm encountering the same issue, but it appears to only be with large csv files and only from within positron (2025.03.0 build 116)

It only happens when I use read_csv_duckdb - deprecated methods df_from_csv and duckplyr_df_from_csv are fine.

I am using R 4.4.3 on Mac OS 15.3.1 with duckdb 1.2.0.9001 and duckplyr 1.0.1 - I first encountered the issue working interactively in positron. When I run the same script interactively from Rstudio it is fine and it also works as expected

The code below reproduces the problem - it will download a 3GB file (New Zealand census data because that was what I was using at the time - I tried a few other files around 15MB and they were fine).

library(tidyverse)
library(duckplyr)

write.csv(mtcars, "mtcars.csv")

# works
cars <- duckplyr::read_csv_duckdb("mtcars.csv")

# download a big file ~ 3GB
if (!fs::file_exists("census.csv")) {
  options(timeout = 100000)
  download.file("https://api.data.stats.govt.nz/rest/data/STATSNZ,CEN23_MAO_133,1.0/all?dimensionAtObservation=AllDimensions&format=csvfilewithlabels", "census.csv")
}

# works
census_df <- duckplyr::read_csv_duckdb("census.csv") |> collect()

# works with lifecycle warning
census_duck_df_from_csv <- duckplyr::duckplyr_df_from_csv("census.csv")

# works with lifecycle warning
census_duck_from_csv <- duckplyr::df_from_csv("census.csv")

# crashes on positron, fine via Rscript and in RStudio
census_duck <- duckplyr::read_csv_duckdb("census.csv")

census_duck

@ywhcuhk
Copy link
Author
ywhcuhk commented Mar 4, 2025

@vizowl thank yo for sharing! Indeed, I am using Positron.

@krlmlr krlmlr changed the title Kernel Crash ScopedInterruptHandler error when running in Positron Mar 7, 2025
@krlmlr krlmlr changed the title ScopedInterruptHandler error when running in Positron ark kernel crash: ScopedInterruptHandler error when running in Positron Mar 7, 2025
@krlmlr
Copy link
Member
krlmlr commented Mar 7, 2025

Thanks. This is what I see:

  • The code runs and shows a progress indicator
  • The code completes and displays the resulting data frame
  • Immediately after that, an error in the R session is reported, with an option to display logs

Logs pasted below. Can you confirm?

2025-03-07 08:43:23.439 [info] ** Begin kernel log for session R 4.4.2 (r-22896956) at 3/7/2025, 8:43:23 AM **
2025-03-07 08:43:23.439 [info] Streaming kernel log file: /var/folders/dj/yhk9rkx97wn_ykqtnmk18xvc0000gn/T/kernel-aRu8pl/kernel.log
[R] Error: {"exception_type":"INTERNAL","exception_message":"ScopedInterruptHandler already active","stack_trace_pointers":"5955394880;5955337684;5954829036;5954867688;5954864980;4396543512;4395993476;4395981324;4395989804;4395983992;4395992604;4395984756;4395975400;4396299684;4396203756;4396201452;4396212652;4396208804;4396202120;4396227176;4396201908;4396223052;4396201908;4396212652;4396208804;4396202120;4396227176;4396201908;4396223052;4396201908;4396212652;4396208804;4396202120;4373879548;4396661712;4396201908;4396212652;4396208804;4396296816;4396203756;4396201452;4396212652;4396208804;4396202120;4396169548;4396168368;5954711468;4395920756;5954711208;5954711020;5954688888;5954869272;5954867968;5954865308;4395548692;4395667216;4396299684;4396203756;4396201452;4396212652;4396208804;4396202120;4373877988;4396191276;4373886212;4395918956;4373872948;4373872480;4373984460;4370776056;4370791568;4370789344;4370535436;4370237248;4369438744;4396191276;4369380024;4395918956;4369478296;4371242060;
[R] 
[R] 
[R] 
[R] In spans:
[R]    0: ark::r_task::R task
[R]            with thread="ark-variables" interrupt=true
[R]              at crates/ark/src/r_task.rs:108
[R]    1: ark::variables::r_variables::update
[R]              at crates/ark/src/variables/r_variables.rs:360
[R] 
[R] R thread backtrace:
[R]    0: std::backtrace::Backtrace::create
[R]    1: harp::exec::try_eval
[R]    2: harp::exec::RFunction::call
[R]    3: harp::table::df_dim
[R]    4: ark::variables::variable::WorkspaceVariableDisplayValue::try_from
[R]    5: ark::variables::variable::PositronVariable::from
[R]    6: ark::variables::variable::PositronVariable::new
[R]    7: ark::variables::r_variables::RVariables::update::{{closure}}
[R]    8: core::ops::function::FnOnce::call_once{{vtable.shim}}
[R]    9: harp::exec::try_catch::callback
[R]   10: R_withCallingErrorHandler
[R]              at /Volumes/Builds/R4/R-4.4.2/src/main/errors.c:2579:16
[R]   11: harp::exec::top_level_exec::callback
[R]   12: R_ToplevelExec
[R]              at /Volumes/Builds/R4/R-4.4.2/src/main/context.c:804:2
[R]   13: tracing::span::Span::in_scope
[R]   14: ark::interface::RMain::handle_task
[R]   15: ark::interface::RMain::handle_task_interrupt
[R]   16: ark::interface::RMain::read_console
[R]   17: harp::exec::try_catch::callback
[R]   18: R_withCallingErrorHandler
[R]              at /Volumes/Builds/R4/R-4.4.2/src/main/errors.c:2579:16
[R]   19: harp::exec::top_level_exec::callback
[R]   20: R_ToplevelExec
[R]              at /Volumes/Builds/R4/R-4.4.2/src/main/context.c:804:2
[R]   21: harp::exec::r_sandbox
[R]   22: _r_read_console
[R]   23: Rf_ReplIteration
[R]              at /Volumes/Builds/R4/R-4.4.2/src/main/main.c:210:10
[R]   24: R_ReplConsole
[R]              at /Volumes/Builds/R4/R-4.4.2/src/main/main.c:314:11
[R]   25: run_Rmainloop
[R]              at /Volumes/Builds/R4/R-4.4.2/src/main/main.c:1216:5
[R]   26: ark::interface::RMain::start
[R]   27: ark::start::start_kernel
[R]   28: ark::main
[R]   29: std::sys::backtrace::__rust_begin_short_backtrace
[R]   30: std::rt::lang_start::{{closure}}
[R]   31: std::rt::lang_start_internal
[R]   32: _main
[R] 
[R]    0: std::backtrace::Backtrace::create
[R]    1: harp::exec::try_eval
[R]    2: harp::exec::RFunction::call
[R]    3: harp::table::df_dim
[R]    4: ark::variables::variable::WorkspaceVariableDisplayValue::try_from
[R]    5: ark::variables::variable::PositronVariable::from
[R]    6: ark::variables::variable::PositronVariable::new
[R]    7: ark::variables::r_variables::RVariables::update::{{closure}}
[R]    8: core::ops::function::FnOnce::call_once{{vtable.shim}}
[R]    9: harp::exec::try_catch::callback
[R]   10: R_withCallingErrorHandler
[R]              at /Volumes/Builds/R4/R-4.4.2/src/main/errors.c:2579:16
[R]   11: harp::exec::top_level_exec::callback
[R]   12: R_ToplevelExec
[R]              at /Volumes/Builds/R4/R-4.4.2/src/main/context.c:804:2
[R]   13: tracing::span::Span::in_scope
[R]   14: ark::interface::RMain::handle_task
[R]   15: ark::interface::RMain::handle_task_interrupt
[R]   16: ark::interface::RMain::read_console
[R]   17: harp::exec::try_catch::callback
[R]   18: R_withCallingErrorHandler
[R]              at /Volumes/Builds/R4/R-4.4.2/src/main/errors.c:2579:16
[R]   19: harp::exec::top_level_exec::callback
[R]   20: R_ToplevelExec
[R]              at /Volumes/Builds/R4/R-4.4.2/src/main/context.c:804:2
[R]   21: harp::exec::r_sandbox
[R]   22: _r_read_console
[R]   23: Rf_ReplIteration
[R]              at /Volumes/Builds/R4/R-4.4.2/src/main/main.c:210:10
[R]   24: R_ReplConsole
[R]              at /Volumes/Builds/R4/R-4.4.2/src/main/main.c:314:11
[R]   25: run_Rmainloop
[R]              at /Volumes/Builds/R4/R-4.4.2/src/main/main.c:1216:5
[R]   26: ark::interface::RMain::start
[R]   27: ark::start::start_kernel
[R]   28: ark::main
[R]   29: std::sys::backtrace::__rust_begin_short_backtrace
[R]   30: std::rt::lang_start::{{closure}}
[R]   31: std::rt::lang_start_internal
[R]   32: _main
[R] 
[R] 
[R] Backtrace:
[R]    0: std::backtrace::Backtrace::create
[R]    1: ark::main::{{closure}}::{{closure}}
[R]    2: ark::main::{{closure}}
[R]    3: std::panicking::rust_panic_with_hook
[R]    4: std::panicking::begin_panic_handler::{{closure}}
[R]    5: std::sys::backtrace::__rust_end_short_backtrace
[R]    6: _rust_begin_unwind
[R]    7: core::panicking::panic_fmt
[R]    8: core::result::unwrap_failed
[R]    9: harp::table::df_dim
[R]   10: ark::variables::variable::WorkspaceVariableDisplayValue::try_from
[R]   11: ark::variables::variable::PositronVariable::from
[R]   12: ark::variables::variable::PositronVariable::new
[R]   13: ark::variables::r_variables::RVariables::update::{{closure}}
[R]   14: core::ops::function::FnOnce::call_once{{vtable.shim}}
[R]   15: harp::exec::try_catch::callback
[R]   16: R_withCallingErrorHandler
[R]              at /Volumes/Builds/R4/R-4.4.2/src/main/errors.c:2579:16
[R]   17: harp::exec::top_level_exec::callback
[R]   18: R_ToplevelExec
[R]              at /Volumes/Builds/R4/R-4.4.2/src/main/context.c:804:2
[R]   19: tracing::span::Span::in_scope
[R]   20: ark::interface::RMain::handle_task
[R]   21: ark::interface::RMain::handle_task_interrupt
[R]   22: ark::interface::RMain::read_console
[R]   23: harp::exec::try_catch::callback
[R]   24: R_withCallingErrorHandler
[R]              at /Volumes/Builds/R4/R-4.4.2/src/main/errors.c:2579:16
[R]   25: harp::exec::top_level_exec::callback
[R]   26: R_ToplevelExec
[R]              at /Volumes/Builds/R4/R-4.4.2/src/main/context.c:804:2
[R]   27: harp::exec::r_sandbox
[R]   28: _r_read_console
[R]   29: Rf_ReplIteration
[R]              at /Volumes/Builds/R4/R-4.4.2/src/main/main.c:210:10
[R]   30: R_ReplConsole
[R]              at /Volumes/Builds/R4/R-4.4.2/src/main/main.c:314:11
[R]   31: run_Rmainloop
[R]              at /Volumes/Builds/R4/R-4.4.2/src/main/main.c:1216:5
[R]   32: ark::interface::RMain::start
[R]   33: ark::start::start_kernel
[R]   34: ark::main
[R]   35: std::sys::backtrace::__rust_begin_short_backtrace
[R]   36: std::rt::lang_start::{{closure}}
[R]   37: std::rt::lang_start_internal
[R]   38: _main
[R] 
[R]     at crates/ark/src/main.rs:337
[R] 
[R] 
** Begin kernel log for session R 4.4.2 (r-b2b759dc) at 3/7/2025, 8:47:41 AM **
Streaming kernel log file: /var/folders/dj/yhk9rkx97wn_ykqtnmk18xvc0000gn/T/kernel-ZQ6Sa6/kernel.log

@DavisVaughan @lionel-: Can I run the ark kernel in "standalone" mode (outside Positron) with a given R script? Other ideas for troubleshooting this?

@krlmlr
Copy link
Member
krlmlr commented Mar 7, 2025

Shorter test script:

test <- duckplyr::duckdb_tibble(a = 1:10, .prudence = c(cells = 3))

I see the variable preview in Positron panicking when ALTREP materialization throws an error.

Working on a fix. Does read_csv_duckdb(prudence = "lavish") work for you?

@krlmlr
Copy link
Member
krlmlr commented Mar 7, 2025

With duckdb/duckdb-r#1066, the error is now nicer. I believe the rest needs to be handled in ark/harp/Positron:

[R] Error: Materialization would result in more than 3 rows. Use collect() or as_tibble() to materialize.
[R] 
[R] 
[R] 
[R] In spans:
[R]    0: ark::r_task::R task
[R]            with thread="ark-variables" interrupt=true
[R]              at crates/ark/src/r_task.rs:108
[R]    1: ark::variables::r_variables::update
[R]              at crates/ark/src/variables/r_variables.rs:360
[R] 
[R] R thread backtrace:
[R]    0: std::backtrace::Backtrace::create
[R]    1: harp::exec::try_eval
[R]    2: harp::exec::RFunction::call
[R]    3: harp::table::df_dim
[R]    4: ark::variables::variable::WorkspaceVariableDisplayValue::try_from
[R]    5: ark::variables::variable::PositronVariable::from
[R]    6: ark::variables::variable::PositronVariable::new
[R]    7: ark::variables::r_variables::RVariables::update::{{closure}}
[R]    8: core::ops::function::FnOnce::call_once{{vtable.shim}}
[R]    9: harp::exec::try_catch::callback
[R]   10: R_withCallingErrorHandler
[R]              at /Volumes/Builds/R4/R-4.4.2/src/main/errors.c:2579:16
[R]   11: harp::exec::top_level_exec::callback
[R]   12: R_ToplevelExec
[R]              at /Volumes/Builds/R4/R-4.4.2/src/main/context.c:804:2
[R]   13: tracing::span::Span::in_scope
[R]   14: ark::interface::RMain::handle_task
[R]   15: ark::interface::RMain::handle_task_interrupt
[R]   16: ark::interface::RMain::read_console
[R]   17: harp::exec::try_catch::callback
[R]   18: R_withCallingErrorHandler
[R]              at /Volumes/Builds/R4/R-4.4.2/src/main/errors.c:2579:16
[R]   19: harp::exec::top_level_exec::callback
[R]   20: R_ToplevelExec
[R]              at /Volumes/Builds/R4/R-4.4.2/src/main/context.c:804:2
[R]   21: harp::exec::r_sandbox
[R]   22: _r_read_console
[R]   23: Rf_ReplIteration
[R]              at /Volumes/Builds/R4/R-4.4.2/src/main/main.c:210:10
[R]   24: R_ReplConsole
[R]              at /Volumes/Builds/R4/R-4.4.2/src/main/main.c:314:11
[R]   25: run_Rmainloop
[R]              at /Volumes/Builds/R4/R-4.4.2/src/main/main.c:1216:5
[R]   26: ark::interface::RMain::start
[R]   27: ark::start::start_kernel
[R]   28: ark::main
[R]   29: std::sys::backtrace::__rust_begin_short_backtrace
[R]   30: std::rt::lang_start::{{closure}}
[R]   31: std::rt::lang_start_internal
[R]   32: _main
[R] 
[R]    0: std::backtrace::Backtrace::create
[R]    1: harp::exec::try_eval
[R]    2: harp::exec::RFunction::call
[R]    3: harp::table::df_dim
[R]    4: ark::variables::variable::WorkspaceVariableDisplayValue::try_from
[R]    5: ark::variables::variable::PositronVariable::from
[R]    6: ark::variables::variable::PositronVariable::new
[R]    7: ark::variables::r_variables::RVariables::update::{{closure}}
[R]    8: core::ops::function::FnOnce::call_once{{vtable.shim}}
[R]    9: harp::exec::try_catch::callback
[R]   10: R_withCallingErrorHandler
[R]              at /Volumes/Builds/R4/R-4.4.2/src/main/errors.c:2579:16
[R]   11: harp::exec::top_level_exec::callback
[R]   12: R_ToplevelExec
[R]              at /Volumes/Builds/R4/R-4.4.2/src/main/context.c:804:2
[R]   13: tracing::span::Span::in_scope
[R]   14: ark::interface::RMain::handle_task
[R]   15: ark::interface::RMain::handle_task_interrupt
[R]   16: ark::interface::RMain::read_console
[R]   17: harp::exec::try_catch::callback
[R]   18: R_withCallingErrorHandler
[R]              at /Volumes/Builds/R4/R-4.4.2/src/main/errors.c:2579:16
[R]   19: harp::exec::top_level_exec::callback
[R]   20: R_ToplevelExec
[R]              at /Volumes/Builds/R4/R-4.4.2/src/main/context.c:804:2
[R]   21: harp::exec::r_sandbox
[R]   22: _r_read_console
[R]   23: Rf_ReplIteration
[R]              at /Volumes/Builds/R4/R-4.4.2/src/main/main.c:210:10
[R]   24: R_ReplConsole
[R]              at /Volumes/Builds/R4/R-4.4.2/src/main/main.c:314:11
[R]   25: run_Rmainloop
[R]              at /Volumes/Builds/R4/R-4.4.2/src/main/main.c:1216:5
[R]   26: ark::interface::RMain::start
[R]   27: ark::start::start_kernel
[R]   28: ark::main
[R]   29: std::sys::backtrace::__rust_begin_short_backtrace
[R]   30: std::rt::lang_start::{{closure}}
[R]   31: std::rt::lang_start_internal
[R]   32: _main
[R] 
[R] 
[R] Backtrace:
[R]    0: std::backtrace::Backtrace::create
[R]    1: ark::main::{{closure}}::{{closure}}
[R]    2: ark::main::{{closure}}
[R]    3: std::panicking::rust_panic_with_hook
[R]    4: std::panicking::begin_panic_handler::{{closure}}
[R]    5: std::sys::backtrace::__rust_end_short_backtrace
[R]    6: _rust_begin_unwind
[R]    7: core::panicking::panic_fmt
[R]    8: core::result::unwrap_failed
[R]    9: harp::table::df_dim
[R]   10: ark::variables::variable::WorkspaceVariableDisplayValue::try_from
[R]   11: ark::variables::variable::PositronVariable::from
[R]   12: ark::variables::variable::PositronVariable::new
[R]   13: ark::variables::r_variables::RVariables::update::{{closure}}
[R]   14: core::ops::function::FnOnce::call_once{{vtable.shim}}
[R]   15: harp::exec::try_catch::callback
[R]   16: R_withCallingErrorHandler
[R]              at /Volumes/Builds/R4/R-4.4.2/src/main/errors.c:2579:16
[R]   17: harp::exec::top_level_exec::callback
[R]   18: R_ToplevelExec
[R]              at /Volumes/Builds/R4/R-4.4.2/src/main/context.c:804:2
[R]   19: tracing::span::Span::in_scope
[R]   20: ark::interface::RMain::handle_task
[R]   21: ark::interface::RMain::handle_task_interrupt
[R]   22: ark::interface::RMain::read_console
[R]   23: harp::exec::try_catch::callback
[R]   24: R_withCallingErrorHandler
[R]              at /Volumes/Builds/R4/R-4.4.2/src/main/errors.c:2579:16
[R]   25: harp::exec::top_level_exec::callback
[R]   26: R_ToplevelExec
[R]              at /Volumes/Builds/R4/R-4.4.2/src/main/context.c:804:2
[R]   27: harp::exec::r_sandbox
[R]   28: _r_read_console
[R]   29: Rf_ReplIteration
[R]              at /Volumes/Builds/R4/R-4.4.2/src/main/main.c:210:10
[R]   30: R_ReplConsole
[R]              at /Volumes/Builds/R4/R-4.4.2/src/main/main.c:314:11
[R]   31: run_Rmainloop
[R]              at /Volumes/Builds/R4/R-4.4.2/src/main/main.c:1216:5
[R]   32: ark::interface::RMain::start
[R]   33: ark::start::start_kernel
[R]   34: ark::main
[R]   35: std::sys::backtrace::__rust_begin_short_backtrace
[R]   36: std::rt::lang_start::{{closure}}
[R]   37: std::rt::lang_start_internal
[R]   38: _main
[R] 
[R]     at crates/ark/src/main.rs:337
[R] 
[R] 
** Begin kernel log for session R 4.4.2 (r-cdf3fb91) at 3/7/2025, 8:16:28 PM **
Streaming kernel log file: /var/folders/dj/yhk9rkx97wn_ykqtnmk18xvc0000gn/T/kernel-b1TL3k/kernel.log

@krlmlr
Copy link
Member
krlmlr commented Mar 8, 2025

We can't do much here, this reproduces in a much simpler setting. Keeping the issue open for reference.

@krlmlr
Copy link
Member
krlmlr commented Apr 16, 2025

This works much better in the most recent Positron release with dev duckplyr. The dev version of Positron should also disable the table icon, which also may lead to a crash.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants
0