“/usr/lib/rstudio/bin/rsession”中的 R lme4 错误:malloc():内存损坏:
R lme4 Error in '/usr/lib/rstudio/bin/rsession' : malloc(): memory corruption:
每当我从 lme4
包中 运行 lmer
或 glmer
时,我都会收到以下错误:
Error in '/usr/lib/rstudio/bin/rsession' : malloc(): memory
corruption:
我更新了所有 R 包,但仍然出现相同的错误。
sessionInfo()
R version 3.3.2 (2016-10-31)
Platform: i686-pc-linux-gnu (32-bit)
Running under: Ubuntu 16.04.2 LTS
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=en_US.UTF-8
[4] LC_COLLATE=en_US.UTF-8 LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C LC_ADDRESS=C
[10] LC_TELEPHONE=C LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] lme4_1.1-13 Matrix_1.2-8
loaded via a namespace (and not attached):
[1] minqa_1.2.4 MASS_7.3-45 tools_3.3.2 Rcpp_0.12.9 splines_3.3.2
[6] nlme_3.1-131 grid_3.3.2 nloptr_1.0.4 lattice_0.20-34
已编辑
library(lme4)
fm1 <- lmer(Reaction ~ Days + (Days | Subject), sleepstudy)
抛出以下错误:
Error in '/usr/lib/rstudio/bin/rsession' : malloc(): memory
corruption:
可能是 Ubuntu 更新的问题。我遇到了同样的问题,但在对 Ubuntu 基地进行最新更新后,问题得到了解决。
有报告称最新的 Matrix 软件包 1.2-8 在 32 位 OS 上存在问题(来自 Terry Therneau 和 Brian Ripley 的个人通信)。修复 可能正在路上 可能需要一段时间(个人通信,M. Maechler),所以我会尝试将 Matrix 降级到版本 1.2-7,例如devtools::install_version("Matrix","1.2-7")
(需要安装编译工具)
查看 Matrix 的 NEWS file,我怀疑这与以下内容有关:
- C-API: SuiteSparse_long is now defined as int64_t on all platforms, and we now include (C99) ‘inttypes.h’
在我(Matrix
的维护者)诊断并解决问题的时间内:
Matrix 1.2-8 已更新其 API,但 RcppEigen
复制了 Matrix 的部分 C API(headers 等)...现在没有不再兼容...仅在 32 位上。
与此同时,RcppEigen
已更新(还有 Matrix)。
请安装这两个的最新版本,所有此类 lme4
问题应该都会消失。
每当我从 lme4
包中 运行 lmer
或 glmer
时,我都会收到以下错误:
Error in '/usr/lib/rstudio/bin/rsession' : malloc(): memory corruption:
我更新了所有 R 包,但仍然出现相同的错误。
sessionInfo()
R version 3.3.2 (2016-10-31)
Platform: i686-pc-linux-gnu (32-bit)
Running under: Ubuntu 16.04.2 LTS
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=en_US.UTF-8
[4] LC_COLLATE=en_US.UTF-8 LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C LC_ADDRESS=C
[10] LC_TELEPHONE=C LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] lme4_1.1-13 Matrix_1.2-8
loaded via a namespace (and not attached):
[1] minqa_1.2.4 MASS_7.3-45 tools_3.3.2 Rcpp_0.12.9 splines_3.3.2
[6] nlme_3.1-131 grid_3.3.2 nloptr_1.0.4 lattice_0.20-34
已编辑
library(lme4)
fm1 <- lmer(Reaction ~ Days + (Days | Subject), sleepstudy)
抛出以下错误:
Error in '/usr/lib/rstudio/bin/rsession' : malloc(): memory corruption:
可能是 Ubuntu 更新的问题。我遇到了同样的问题,但在对 Ubuntu 基地进行最新更新后,问题得到了解决。
有报告称最新的 Matrix 软件包 1.2-8 在 32 位 OS 上存在问题(来自 Terry Therneau 和 Brian Ripley 的个人通信)。修复 可能正在路上 可能需要一段时间(个人通信,M. Maechler),所以我会尝试将 Matrix 降级到版本 1.2-7,例如devtools::install_version("Matrix","1.2-7")
(需要安装编译工具)
查看 Matrix 的 NEWS file,我怀疑这与以下内容有关:
- C-API: SuiteSparse_long is now defined as int64_t on all platforms, and we now include (C99) ‘inttypes.h’
在我(Matrix
的维护者)诊断并解决问题的时间内:
Matrix 1.2-8 已更新其 API,但 RcppEigen
复制了 Matrix 的部分 C API(headers 等)...现在没有不再兼容...仅在 32 位上。
与此同时,RcppEigen
已更新(还有 Matrix)。
请安装这两个的最新版本,所有此类 lme4
问题应该都会消失。