pins-r icon indicating copy to clipboard operation
pins-r copied to clipboard

Error: C stack usage xxx is too close to the limit, with certain input to pin_write metadata parameter

Open marioem opened this issue 10 months ago • 2 comments

The following code causes Error: C stack usage xxx is too close to the limit:

    mbm %>% pin_write(wfset_fits1, 
                      name = wfset_s1_name, 
                      description = glue::glue("{prod_name} meanlog prediction workflowsets {transf_msg} {this_rev}"),
                      metadata = list(dataset_name = DS1_df_name,
                                      dataset_version = DS1vers$version[nrow(DS1vers)],
                                      comment = fit_pin_comment,
                                      tuning_metric = opt_metric,
                                      tidymodels_version = packageVersion("tidymodels"),
                                      R_version = R.version['version.string'][[1]]),
                      versioned = T)

Guessing `type = 'rds'`Creating new version '20240412T095624Z-d6b98'Error: C stack usage  15909096 is too close to the limit

As a result no data is written to the pin, only the enclosing folder is created.

mbm is a board_folder board, located on local disk.

The problem is triggered by tidymodels_version = packageVersion("tidymodels"). I've narrowed down the issue to write_meta function (it may be in write_yaml or below).

Workaround consists in casting packageVersion result to character.

I'd suggest adding some input sanity checks before writing yaml, or casting to character user-provided input, as default.

BTW, incredibly useful package, using it all the time in my modeling workflows.

BRs,

Mariusz

marioem avatar Apr 12 '24 10:04 marioem