CRAN Solaris:捕获到的段错误***地址导致“无效权限”

时间:2019-12-10 21:49:17

标签: r r-package

在我的软件包{bigstatsr}中,在Solaris上进行测试时,我收到有关CRAN检查的错误消息(请参见https://www.r-project.org/nosvn/R.check/r-patched-solaris-x86/bigstatsr-00check.html)。

我设法使用INSERT ... ON CONFLICT重现了此问题。 默认情况下,由于umask设置为rhub::check_on_solaris(),因此创建的文件具有权限644

然后,我尝试将umask更改为22,它可以工作,并且我的文件权限为0(请参阅https://builder.r-hub.io/status/bigstatsr_1.0.0.tar.gz-a15ab823b9e44e6ca790ee9a143ebadb#L5816)。

666上对该文件具有权限时,如何获得文件权限错误?

1 个答案:

答案 0 :(得分:0)

一种可能性是您试图分配大量内存。尝试时,我在Fedora上遇到类似的错误,但在Windows上却没有(我没有尝试过Solaris)

int * my_array = (int*) std::calloc(x * y, sizeof(int))

x * y * sizeof(int) + k> = 2 32 ,其中k表示特定于编译器的内存开销,用于存储my_array的属性。

在Windows上,

if (!my_array) std::length_error("Object too large");

由于错误而正常失败;在Fedora上,我似乎在未触发此错误的情况下遇到了“无效权限” seg错误。