调用 httr::oauth_service_token() 时硬崩溃 - 双重释放或损坏(fasttop)

Hard crash when calling httr::oauth_service_token() - double free or corruption (fasttop)

我在远程服务器 运行 linux 上使用 httr 授权 google 分析 API。到目前为止,该代码一直运行完美,而且它仍然可以在我们的本地机器上运行。不幸的是,由于这是一个 API 授权,因此不容易复制。

endpoints <- httr::oauth_endpoints('google')
secrets <- jsonlite::fromJSON(PATH_TO_JSON_FILE)
scope <- 'https://www.googleapis.com/auth/analytics'
token <- httr::oauth_service_token(endpoints, secrets, scope)

当 运行 在 Rstudio 服务器上时,这会崩溃并显示 "R encountered a fatal error. The session was terminated" 的警报。没有错误打印到控制台。

我 运行 相同的代码,而 运行 R 通过终端(在远程服务器上),这次有一个 double free or corruption (fasttop) 错误,其中有很多文本,我会打印一些。

token <- httr::oauth_service_token(endpoint = endpoints,secrets = secrets,scope = scope)

*** Error in `/usr/lib/R/bin/exec/R': double free or corruption (fasttop): 0x0000000002e5df20 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x777e5)[0x7fb846b637e5]
/lib/x86_64-linux-gnu/libc.so.6(+0x8037a)[0x7fb846b6c37a]
/lib/x86_64-linux-gnu/libc.so.6(cfree+0x4c)[0x7fb846b7053c]
/usr/local/lib/R/site-library/openssl/libs/openssl.so(R_base64_encode+0x117)[0x7fb842943557]
/usr/lib/R/lib/libR.so(+0xd2c9c)[0x7fb8471a5c9c]
/usr/lib/R/lib/libR.so(Rf_eval+0x7bd)[0x7fb8471e320d]
/usr/lib/R/lib/libR.so(+0x112cae)[0x7fb8471e5cae]

.... MANY LINES OF THIS AND THEN A NEW SECTION ...

======= Memory map: ========
00400000-00401000 r-xp 00000000 fd:01 523429                             /usr/lib/R/bin/exec/R
00600000-00601000 r--p 00000000 fd:01 523429                             /usr/lib/R/bin/exec/R
00601000-00602000 rw-p 00001000 fd:01 523429                             /usr/lib/R/bin/exec/R
0121f000-0343e000 rw-p 00000000 00:00 0                                  [heap]
7fb83c000000-7fb83c021000 rw-p 00000000 00:00 0 
7fb83c021000-7fb840000000 ---p 00000000 00:00 0 
7fb8421dd000-7fb84247e000 r-xp 00000000 fd:01 7364                       /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
7fb84247e000-7fb84267d000 ---p 002a1000 fd:01 7364                       /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 

.... MANY LINES OF THIS ALSO AND IT ENDS WITH ....

7ffcf87a9000-7ffcf880a000 rw-p 00000000 00:00 0                          [stack]
7ffcf884f000-7ffcf8852000 r--p 00000000 00:00 0                          [vvar]
7ffcf8852000-7ffcf8854000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]
Aborted (core dumped)

如果显示整个错误会有所帮助,我可以这样做。我研究了双重释放或损坏,它似乎是来自基本 C 代码的内存损坏错误。一个名为 valgrind 的 linux 工具可用于更深入地研究这些问题,我从 运行 代码中输出了使用 valgrind 作为调试器的代码,但对我来说它看起来主要是胡言乱语,但我'如果有人认为它可能有用,我会编辑它。

这是某些 linux 机器上的错误,我怀疑是在系统提供的 openSSL 或 curl 库中。我正在使用 Arch,只需将我的所有软件包恢复一个月即可修复此错误。