/tmp is not a special volume on my system, and has plenty of room for a 2MB 
file:
sh-3.2# df -h
Filesystem                          Size   Used  Avail Capacity  iused    ifree 
%iused  Mounted on
/dev/disk0s2                       184Gi  170Gi   14Gi    93% 44604554  3741719 
  92%   /
devfs                              329Ki  329Ki    0Bi   100%     1138        0 
 100%   /dev
map -hosts                           0Bi    0Bi    0Bi   100%        0        0 
 100%   /net
map auto_home                        0Bi    0Bi    0Bi   100%        0        0 
 100%   /home
map -fstab                           0Bi    0Bi    0Bi   100%        0        0 
 100%   /Network/Servers
/dev/disk0s5                       442Gi  353Gi   89Gi    80% 92513182 23266901 
  80%   /Volumes/Shared
localhost:/18XTcmWVPTgvjvav7dUs5F  184Gi  184Gi    0Bi   100%        0        0 
 100%   /Volumes/MobileBackups


> On Dec 27, 2015, at 4:18 PM, Jim Jagielski <j...@jagunet.com> wrote:
> 
> Are you *sure* that /tmp really has enough space?
> 
>> On Dec 27, 2015, at 8:47 AM, Sorin Manolache <sor...@gmail.com> wrote:
>> 
>> On 2015-12-25 19:36, Tapple Gao wrote:
>>> Hi. I’m trying to get mod_tile working on the builtin apache in Mac OS X El 
>>> Capitan. I am running into a problem with apr_shm_create failing to 
>>> allocate memory during ap_hook_post_config:
>>> [Fri Dec 25 12:09:17.898197 2015] [tile:error] [pid 22431] Successfully 
>>> create shared memory segment size 888 on file /tmp/httpd_shm.22431
>>> [Fri Dec 25 12:09:17.898285 2015] [tile:error] [pid 22431] (12)Cannot 
>>> allocate memory: Failed to create shared memory segment size 2401448 on 
>>> file /tmp/httpd_shm_delay.22431
>>> 
>>> Is there something I need to configure to get this shared memory working, 
>>> or increase the limit? This module is most often run on Ubuntu linux, where 
>>> it’s been running for years to power openstreetmap.org
>>> 
>>> 
>>>    /*
>>>     * Create a unique filename using our pid. This information is
>>>     * stashed in the global variable so the children inherit it.
>>>     * TODO get the location from the environment $TMPDIR or somesuch.
>>>     */
>>>    shmfilename = apr_psprintf(pconf, "/tmp/httpd_shm.%ld", (long 
>>> int)getpid());
>>>    shmfilename_delaypool = apr_psprintf(pconf, "/tmp/httpd_shm_delay.%ld", 
>>> (long int)getpid());
>> 
>> 
>> I think that the location of the shmfile must be on a filesystem of a 
>> special type, namely tmpfs, which maps in memory and not on disk. Execute 
>> "mount" and check if you have such filesystems mounted. For example on my 
>> Linux machine:
>> 
>> $ mount
>> /dev/sda6 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
>> tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=398160k)
>> /dev/sda9 on /tmp type ext4 (rw,relatime,data=ordered)
>> 
>> As you see, / and /tmp are of disk partitions while /run/shm has a 
>> filesystem of type tmpfs.
>> 
>> I suggest to change the code and use a different location from /tmp/... On 
>> Linux the shared memory is often created in /run/shm/*. I have no experience 
>> with Mac OS X.
>> 
>> The cleanest way would be to implement what's written in the commentary of 
>> the code above, namely the possibility to specify the path by an evrionment 
>> variable or from a configuration directive.
>> 
>> Sorin
>> 
> 

Reply via email to