Сильный сбой при вызове httr :: oauth_service_token () - двойное освобождение или повреждение (fasttop) - PullRequest
3 голосов
/ 08 марта 2019

Я авторизирую Google Analytics API с помощью httr на удаленном сервере под управлением Linux.Код работал безупречно до сих пор, и он все еще работает на наших локальных машинах.К сожалению, поскольку это авторизация 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 Server происходит сбой с предупреждением, в котором говорится, что "R обнаружил фатальную ошибку. Сеанс был прерван",Ошибка не выводится на консоль.

Я запустил тот же код при запуске 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.Средство linux под названием valgrind может быть использовано для более глубокого изучения этих проблем, и я получил вывод от запуска кода с valgrind в качестве отладчика, но опять-таки он выглядит для меня в основном бессмысленно, но я отредактирую его, если кто-то подумаетэто может быть полезно.

1 Ответ

1 голос
/ 01 апреля 2019

Это ошибка на некоторых машинах Linux, я подозреваю, в библиотеках openSSL или curl, предоставляемых системой. Я использую Arch и просто вернул все мои пакеты за месяц, исправил эту ошибку.

...