You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
> library(SharedObject)
Error: package or namespace load failed for 'SharedObject':
.onLoad failed in loadNamespace() for 'SharedObject', details:
call: C_initialPkgData()
error: An error has occured in initializing shared memory object: An error has occured in allocating shared memory:
Operation not permitted
You must manually initial the package via <initialSharedObjectPackageData()>
This is on
> sessionInfo()$running
[1] "macOS Monterey 12.4"
I debugged this by running under lldb and setting a break point on any C++ exception
and the problem is that /tmp/boost_interprocess is owned by root
$ ls -al /tmp/boost_interprocess
total 0
drwxrwxrwx 2 root wheel 64 Jun 21 02:12 .
drwxrwxrwt 21 root wheel 672 Jun 21 14:27 ..
A work-around is to delete this directory; this requires admim / root access, which for me involved
$ su <admin account>
Password:
% sudo rm -rf /tmp/boost_interprocess
Maybe there is a way to customize the directory uses to create the shared memory file?
The current error message could be improved to report a more informative error
The advice You must manually initial the package via <initialSharedObjectPackageData()> is not feasible because the package cannot be loaded; one could wrap the initial command with tryCatch():
There is a typo occured instead of occurred in the error message, and the same phrase is repeated twice. error: An error has occured in initializing shared memory object: An error has occured in allocating shared memory: Operation not permitted
For what it's worth the same problem occurs in BiocParallel and motivated the change to cpp11 -- Bioconductor/BiocParallel#202
The text was updated successfully, but these errors were encountered:
When trying to load SharedObject I get
This is on
I debugged this by running under lldb and setting a break point on any C++ exception
Loading the package causes the exception
and the problem is that
/tmp/boost_interprocess
is owned by rootA work-around is to delete this directory; this requires admim / root access, which for me involved
You must manually initial the package via <initialSharedObjectPackageData()>
is not feasible because the package cannot be loaded; one could wrap the initial command withtryCatch()
:occured
instead ofoccurred
in the error message, and the same phrase is repeated twice.error: An error has occured in initializing shared memory object: An error has occured in allocating shared memory: Operation not permitted
For what it's worth the same problem occurs in BiocParallel and motivated the change to cpp11 -- Bioconductor/BiocParallel#202
The text was updated successfully, but these errors were encountered: