r-lib / revdepcheck

R package reverse dependency checking
https://revdepcheck.r-lib.org
Other
101 stars 32 forks source link

Windows: invalid multibyte string #260

Open jeroen opened 4 years ago

jeroen commented 4 years ago

This keeps happening on Windows in various packages:

> revdepcheck::revdep_check("V8", num_workers=3)
-- CHECK ------------------------------------------------------------ 37 packages --

√ colormap 0.1.4                         -- E: 0     | W: 0     | N: 0    

 Error in substring(sql, 0, pos$start[i] - 1) : 
  invalid multibyte string, element 1
In addition: Warning messages:
1: In grep("^[^\\s]+:$", lines, perl = TRUE, value = TRUE) :
  input string 5 is invalid UTF-8
2: In grep("^[^\\s]+:$", lines, perl = TRUE, value = TRUE) :
  input string 6 is invalid UTF-8
3: In grep("^[^\\s]+:$", lines, perl = TRUE, value = TRUE) :
  input string 33 is invalid UTF-8
4: In grep("^[^\\s]+:$", lines, perl = TRUE, value = TRUE) :
  input string 38 is invalid UTF-8

Traceback:

> traceback()
12: substring(sql, 0, pos$start[i] - 1)
11: paste0(substring(sql, 0, pos$start[i] - 1), safe_values[i], substring(sql, 
        pos$end[i] + 1, nchar(sql)))
10: sqlInterpolate(db, q, package = package, version = version %|0|% 
        "", maintainer = maintainer %|0|% "", status = status, which = which, 
        duration = duration, starttime = as.character(starttime), 
        result = result, summary = summary %|0|% "")
9: sqlInterpolate(db, q, package = package, version = version %|0|% 
       "", maintainer = maintainer %|0|% "", status = status, which = which, 
       duration = duration, starttime = as.character(starttime), 
       result = result, summary = summary %|0|% "")
8: dbExecute(db, sqlInterpolate(db, q, package = package, version = version %|0|% 
       "", maintainer = maintainer %|0|% "", status = status, which = which, 
       duration = duration, starttime = as.character(starttime), 
       result = result, summary = summary %|0|% ""))
7: db_insert(state$options$pkgdir, worker$package, version = chkres$version, 
       maintainer = maintainer, status = status, which = my_task$args[[2]], 
       duration = duration, starttime = as.character(starttime), 
       result = unclass(toJSON(chkres)), summary = unclass(toJSON(summary)))
6: check_done(state, worker)
5: handle_event(state, i)
4: handle_events(state, events)
3: run_event_loop(state)
2: revdep_run(pkg, quiet = quiet, timeout = timeout, num_workers = num_workers, 
       env = env)
1: revdepcheck::revdep_check("V8", num_workers = 3)
> 
sfirke commented 3 years ago

Can confirm, I run revdepcheck on Windows and see this throughout the process:

In addition: Warning messages:
1: In grep("^[^\\s]+:$", lines, perl = TRUE, value = TRUE) :
  input string 10 is invalid UTF-8
2: In grep("^[^\\s]+:$", lines, perl = TRUE, value = TRUE) :
  input string 15 is invalid UTF-8
3: In grep("^[^\\s]+:$", lines, perl = TRUE, value = TRUE) :
  input string 33 is invalid UTF-8
4: In grep("^[^\\s]+:$", lines, perl = TRUE, value = TRUE) :
  input string 34 is invalid UTF-8
5: In grep("^[^\\s]+:$", lines, perl = TRUE, value = TRUE) :
  input string 35 is invalid UTF-8

Using today's dev version, 2020-12-27.