Почему вызов dyn.load в цикле for приводит к сбою моего сеанса R?

R (3.3.2, Windows 7) падает примерно после 1000 итераций dyn.load() используется в для цикла. Этого не происходит в Ubuntu. Такое поведение наблюдается для dll файлы, созданные из Rcpp а также TMB код, но я не думаю, что это связано ни с одним из этих пакетов. Сообщение о сбое:

Problem Event Name: APPCRASH
Application Name:   rsession.exe
Application Version:    1.0.136.0
Application Timestamp:  583f5668
Fault Module Name:  testRcppRepeatDynLoad.dll

Ниже приведен минимальный воспроизводимый пример на моем компьютере:

Сначала создайте Rcpp пакет называется testRcppRepeatDynLoad (в Rstudio создайте пакет в новом каталоге, выберите "создать пакет с помощью Rcpp".). Сборка пакета с CTRL-SHIFT-B создает dll файл в src папка, которую мы будем загружать используя dyn.load,

Этот код завершает сеанс R после 1050 итераций:

while (i < 2000) {
    i = i + 1
    print(i)
    dyn.load('src/testRcppRepeatDynLoad.dll')
    dyn.unload('src/testRcppRepeatDynLoad.dll')

}

То же самое происходит для dll файл создан TMB::compile,

0 ответов

Другие вопросы по тегам