Can’t create shared memory: system shmget (Macintosh)

From BOINC Wiki
Revision as of 21:35, 16 August 2017 by Jord (talk | contribs) (removing broken link to original faq)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

BOINC science applications use shared memory to communicate with the core client, and a certain amount is reserved for each current task, whether running or waiting. The default configuration of a multi-CPU Mac (regardless of how much RAM is installed) is sometimes inadequate to support several projects at once.

If you get this error message, which is usually followed by a "Couldn't start or resume: -144" error in the current computation, it may help to set your BOINC general preference "Leave applications in memory while suspended?" to no; however, the problem will probably just become less frequent rather than being solved, and moreover some projects' applications, those that save checkpoints infrequently (or erratically), may not take well to this setting.

A better solution is available if you don't mind reconfiguring your system's kernel a little. The method, accompanied by a more detailed description of the issue, is outlined in Configuring Shared Memory on Mac OS X from Spy Hill Research (hosts of the BOINC [email protected] project). It involves creating a text file /etc/sysctl.conf that contains the following commands:

kern.sysv.shmmax=16777216
kern.sysv.shmmin=1
kern.sysv.shmmni=128
kern.sysv.shmseg=32
kern.sysv.shmall=4096
and rebooting the computer. This will quadruple the default allocation of shared memory.


Note that the problem may manifest with slightly different error messages: "Can't create shared memory: system shmat" followed by "Couldn't start or resume: -146".


Original writer Original FAQ Date
Odysseus 276 16-09-2007