【问题标题】:R library gmailr's function 'gmail_auth' stopped workingR 库 gmailr 的函数“gmail_auth”停止工作
【发布时间】:2017-08-30 08:27:37
【问题描述】:

我有一个无头 Debian 9 服务器,每晚都在运行 R BATCH 脚本。基本上,它从 Gmail 帐户中获取附加数据以生成夜间报告。很长一段时间以来,这一直完美无缺。但大约一周前,它停止了。我不能肯定地说,但它可能与 Debian 9 版的重大更新相吻合......

脚本要做的第一件事就是对 gmail 帐户进行身份验证。像这样:

library(gmailr)
gmail_auth(secret_file = 'lib/secret.json')

但它毫不犹豫地停了下来,给了我:

Error in httpuv::startServer(use$host, use$port, list(call = listen)) : 
  Failed to create server
Calls: gmail_auth ... init_oauth2.0 -> oauth_authorize -> oauth_listener -> <Anonymous>
Execution halted

从外观上看,错误来自httpuv。所以我重新安装了:

devtools::install_github(c("shiny", "httpuv"), "rstudio")

但没有爱。

更神秘的是,我的本地 Linux 机器可以运行 gmail_auth 调用而不会出错。这是“Linux Mint 17.3 Rosa”。

可能相关:

Shiny runExample Error - Fail to create server

本地盒:

sessionInfo()
R version 3.4.1 (2017-06-30)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 14.04.5 LTS

Matrix products: default
BLAS: /usr/lib/libblas/libblas.so.3.0
LAPACK: /usr/lib/lapack/liblapack.so.3.0

locale:
 [1] LC_CTYPE=en_US.UTF-8          LC_NUMERIC=C                 
 [3] LC_TIME=en_US.UTF-8           LC_COLLATE=en_US.UTF-8       
 [5] LC_MONETARY=sv_SE.UTF-8       LC_MESSAGES=en_US.UTF-8      
 [7] LC_PAPER=sv_SE.UTF-8          LC_NAME=sv_SE.UTF-8          
 [9] LC_ADDRESS=sv_SE.UTF-8        LC_TELEPHONE=sv_SE.UTF-8     
[11] LC_MEASUREMENT=sv_SE.UTF-8    LC_IDENTIFICATION=sv_SE.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] gmailr_0.7.1        extrafont_0.17      ReporteRs_0.8.8    
[4] ReporteRsjars_0.0.2 DBI_0.7             rjson_0.2.15       

loaded via a namespace (and not attached):
 [1] zip_1.0.0         Rcpp_0.12.12      compiler_3.4.1    plyr_1.8.4       
 [5] bindr_0.1         R.methodsS3_1.7.1 R.utils_2.5.0     base64enc_0.1-3  
 [9] tools_3.4.1       digest_0.6.12     uuid_0.1-2        tibble_1.3.4     
[13] gtable_0.2.0      pkgconfig_2.0.1   png_0.1-7         rlang_0.1.2      
[17] shiny_1.0.5       bindrcpp_0.2      Rttf2pt1_1.3.4    rJava_0.9-8      
[21] httr_1.3.1        officer_0.1.5     dplyr_0.7.2       xml2_1.1.1       
[25] knitr_1.17        gdtools_0.1.5     grid_3.4.1        glue_1.1.1       
[29] R6_2.2.2          rvg_0.1.4         extrafontdb_1.0   ggplot2_2.2.1    
[33] purrr_0.2.3       magrittr_1.5      scales_0.5.0      htmltools_0.3.6  
[37] assertthat_0.2.0  xtable_1.8-2      mime_0.5          colorspace_1.3-2 
[41] httpuv_1.3.5      lazyeval_0.2.0    munsell_0.4.3     R.oo_1.21.0      

DEBIAN 服务器:

sessionInfo()
R version 3.3.3 (2017-03-06)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Debian GNU/Linux 9 (stretch)

locale:
 [1] LC_CTYPE=en_US.UTF-8          LC_NUMERIC=C                 
 [3] LC_TIME=en_US.UTF-8           LC_COLLATE=en_US.UTF-8       
 [5] LC_MONETARY=sv_SE.UTF-8       LC_MESSAGES=en_US.UTF-8      
 [7] LC_PAPER=sv_SE.UTF-8          LC_NAME=sv_SE.UTF-8          
 [9] LC_ADDRESS=sv_SE.UTF-8        LC_TELEPHONE=sv_SE.UTF-8     
[11] LC_MEASUREMENT=sv_SE.UTF-8    LC_IDENTIFICATION=sv_SE.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] gmailr_0.7.1        extrafont_0.17      ReporteRs_0.8.8    
[4] ReporteRsjars_0.0.2 DBI_0.7             RMariaDB_0.11-6    
[7] rjson_0.2.15       

loaded via a namespace (and not attached):
 [1] zip_1.0.0         Rcpp_0.12.12      plyr_1.8.4        bindr_0.1        
 [5] R.methodsS3_1.7.1 R.utils_2.5.0     base64enc_0.1-3   tools_3.3.3      
 [9] digest_0.6.12     uuid_0.1-2        tibble_1.3.4      gtable_0.2.0     
[13] pkgconfig_2.0.1   png_0.1-7         rlang_0.1.2       shiny_1.0.5.9000 
[17] bindrcpp_0.2      Rttf2pt1_1.3.4    rJava_0.9-8       httr_1.3.1       
[21] officer_0.1.5     dplyr_0.7.2       xml2_1.1.1        knitr_1.17       
[25] gdtools_0.1.5     grid_3.3.3        glue_1.1.1        R6_2.2.2         
[29] rvg_0.1.4         extrafontdb_1.0   ggplot2_2.2.1     purrr_0.2.3      
[33] magrittr_1.5      scales_0.5.0      htmltools_0.3.6   assertthat_0.2.0 
[37] xtable_1.8-2      mime_0.5          colorspace_1.3-2  httpuv_1.3.5     
[41] lazyeval_0.2.0    munsell_0.4.3     R.oo_1.21.0

【问题讨论】:

    标签: r debian gmail-api


    【解决方案1】:

    好的,一天的工作终于解决了。我觉得……

    R 阻塞了1410 端口。据我所知,httpuv 需要这个端口。但是,在杀死 R 进程后,出现了一个新错误。 httpuv 服务器似乎已启动,但需要从 Web 浏览器重新运行 gmailr 身份验证,从而生成新的 .httr-auth

    我猜 R 在我的无头 Debian 服务器上冻结在 waiting for authentication in browser... 状态,有效地阻塞了端口 1410。在我的笔记本电脑(Mint 机器)上完成身份验证过程并将.httr-auth 移动到无头服务器后,一切似乎都正常。

    我不知道发生这种情况的确切原因。但是,如果从现在开始一切正常,我将接受无知!手指交叉。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-08
      • 1970-01-01
      • 1970-01-01
      • 2012-04-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多