1

Flymake started giving this warning today:

Error in process sentinel not enough arguments for format string

The mode line shows Flymake:Wait [0 0]. I narrowed down the code throwing the error to a few lines:

context("German Statlog credit dataset")
library("PosteriorBootstrap")

test_that("German Statlog data outcomes are in {1, 2}", {
  raw_dataset <- as.matrix(utils::read.table(get_german_credit_file()))
  expect_true(all(raw_dataset[, ncol(raw_dataset)] %in% c(1, 2)))
})

Following this thread, I enabled debugging with M-x toggle-debug-on-error, which shows the stack trace:

Debugger entered--Lisp error: (error "Not enough arguments for format string")
  format-message(" Error in cat(\"@@warning: @@\", e) : \n  argument 2 (type 'list') cannot be handled by 'cat'\nCalls: esslint ... tryCatch -> tryCatchList -> tryCatchOne -> <Anonymous> -> cat\nIn addition: Warning message:\nIn file(con, \"r\") :\n  cannot open file 'context(\"German Statlog credit dataset\")\nlibrary(\"PosteriorBootstrap\")\n\ntest_that(\"German Statlog data outcomes are in {1, 2}\", {\n  raw_dataset <- as.matrix(utils::read.table(get_german_credit_file()))\n  expect_true(all(raw_dataset[, ncol(raw_dataset)] %in% c(1, 2)))\n})\n\n': File name too long\nExecution halted\n")
  apply(format-message " Error in cat(\"@@warning: @@\", e) : \n  argument 2 (type 'list') cannot be handled by 'cat'\nCalls: esslint ... tryCatch -> tryCatchList -> tryCatchOne -> <Anonymous> -> cat\nIn addition: Warning message:\nIn file(con, \"r\") :\n  cannot open file 'context(\"German Statlog credit dataset\")\nlibrary(\"PosteriorBootstrap\")\n\ntest_that(\"German Statlog data outcomes are in {1, 2}\", {\n  raw_dataset <- as.matrix(utils::read.table(get_german_credit_file()))\n  expect_true(all(raw_dataset[, ncol(raw_dataset)] %in% c(1, 2)))\n})\n\n': File name too long\nExecution halted\n" nil)
  flymake--log-1(:warning ess-r-flymake " Error in cat(\"@@warning: @@\", e) : \n  argument 2 (type 'list') cannot be handled by 'cat'\nCalls: esslint ... tryCatch -> tryCatchList -> tryCatchOne -> <Anonymous> -> cat\nIn addition: Warning message:\nIn file(con, \"r\") :\n  cannot open file 'context(\"German Statlog credit dataset\")\nlibrary(\"PosteriorBootstrap\")\n\ntest_that(\"German Statlog data outcomes are in {1, 2}\", {\n  raw_dataset <- as.matrix(utils::read.table(get_german_credit_file()))\n  expect_true(all(raw_dataset[, ncol(raw_dataset)] %in% c(1, 2)))\n})\n\n': File name too long\nExecution halted\n")
  ess-r--flymake-check-errors()
  ess-r--flymake-parse-output(#<buffer  *ess-r-flymake*> #<buffer test_sample_data.R> #f(compiled-function (&rest args) #<bytecode 0x40791b4d>))
  #f(compiled-function (proc event) #<bytecode 0x40791b61>)(#<process ess-r-flymake> "exited abnormally with code 1\n")
miguelmorin
  • 1,751
  • 11
  • 33

1 Answers1

0

The error seems related to this issue, which recommends creating ~/.R/lintr_cache/ to solve the weirdness:

mkdir -p ~/.R/lintr_cache

I believe the issue arose after I deleted the ~/.R directory. Creating that directory solved the problem, removing it brought it back.

miguelmorin
  • 1,751
  • 11
  • 33