Skip to content

Model operations fail to handle external process death gracefully #543

Closed
@myshkin

Description

@myshkin

Summary:

Under certain circumstances, we encounter a crash at initialization of brm().

Description:

In R/model.R, the compile and check_syntax functions use processx::run() to launch external processes, and then check the status component of the return value against 0 to detect certain failures. Unfortunately, this component gets set to NA if the external process is killed, per [https://processx.r-lib.org/reference/run.html](the processx docs), and so the check can generate the error below.

Reproducible Steps:

Unfortunately, we have not yet figured out what is causing the external processes to die, and are seeing this in only about 10 percent of runs.

Current Output:

When the crash occurs, we see

Error in if (run_log$status != 0) { :
  missing value where TRUE/FALSE needed
Calls: brm ... eval -> .fun -> <Anonymous> -> initialize -> <Anonymous>

Expected Output:

I assume the module should check for NA and report accordingly.

Current Version:

Observed in v2.26.1, but the if statement in question remains in the v2.27.0 code.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions