IDL CALL_EXTERNAL error: Failed to map segment from shared object: Operation not permitted...
Topic:
Problem descriptionSome IDL users on Linux may encounter a error when accessing a
remotely located shared library file with IDL
CALL_EXTERNAL call, for example:
...
% CALL_EXTERNAL: Error loading sharable executable.
Symbol: mysymbol_c, File = mylib.so
mylib.so: failed to map segment from shared object: Operation not permitted
% Execution halted at: ...
This error may be caused by one of the following issues:
- "noexec" mounting of the /tmp partition
- Some sort of "noexec" mounting permissions issue with the network mounted drive that contains the shared library
- Restrictive SELinux security policy settings afftecting access to remote shared libraries
Discussion:
Possible solutions
For the first two items above, check the file system mounting configuration settings for /tmp and for the remote network mounted drive that contains the shared library file in question. If either or both of these partitions are mounted with noexec permissions, this may prevent the remote shared library file from being properly loaded by the program. Configuring one or both of these partition to have "exec" permissions for users may resolve this problem.
For the third item above, a restrictive SELinux security policy configuration may be preventing remotely located shared library files from being loaded by locally running processes. Reconfiguring your SELinux policy to allow access of remote shared libraries may resolve this problem.
Another approach to solving this problem would be to move or copy the sharable library file to a local directory, whose path must subsequently be included in the library file search path.
For information on how to configure SELinux security policies, how to configure remotely mounted file systems, and to understand possible ramifications of such changes, please check your operating system documentation or contact your system/network adminstrator for assistance.
Keywords: % call_external: error loading sharable executable fstab selinux exec noexec linux /tmp remote network drive
Solution:
[Edit this field in the IDL-based Tech Tip Editor, v62]