httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jim Jagielski <...@jaguNET.com>
Subject Re: httpd 2.4.2 - mod_proxy id name not unique
Date Wed, 12 Sep 2012 12:55:19 GMT
So on each system that shares a file system, use a different
value for DefaultRuntimeDir.

For example, if the shared mount point is /var/shared/logs
then have /var/shared/logs/system1, /var/shared/logs/system2, etc...

On Sep 12, 2012, at 8:40 AM, Zisis Lianas <Zisis.Lianas@consol.de> wrote:

> That's right, but on shared filesystems, "DefaultRuntimeDir"
> (logs/) and the non-unique shm-filenames state a problem.
> 
> So what do you think about a shm-file-target-directory directive?
> 
> 
> ----- Original Message -----
> From: "Jim Jagielski" <jim@jaguNET.com>
> To: dev@httpd.apache.org
> Sent: Wednesday, September 12, 2012 2:28:07 PM
> Subject: Re: httpd 2.4.2 - mod_proxy id name not unique
> 
> Yes, that's the reason why the location of the file can be
> user selectable. There's no need to adjust the name when you
> can adjust the location/path.
> 
> On Sep 12, 2012, at 7:00 AM, Zisis Lianas <Zisis.Lianas@consol.de> wrote:
> 
>> Currently the default location of the slotmem file
>> is the "DefaultRuntimeDir", since on slotmem creation
>> only the "conf->id" is defined as filename:
>> modules/proxy/mod_proxy_balancer.c, 762:
>> rv = storage->create(&new, conf->id,
>>                    ALIGNED_PROXY_BALANCER_SHARED_SIZE,
>>                    conf->max_balancers, AP_SLOTMEM_TYPE_PREGRAB, pconf);
>> 
>> modules/slotmem/mod_slotmem_shm.c, 275:
>> fname = slotmem_filename(pool, name);
>> 
>> modules/slotmem/mod_slotmem_shm.c, 137:
>> const char *filenm = apr_pstrcat(pool, DEFAULT_SLOTMEM_PREFIX,
>>                                slotmemname, DEFAULT_SLOTMEM_SUFFIX, NULL);
>> 
>> 
>> There is no possibility to customize the shm-filename
>> resp. the shm-target-directory. Thats a big issue when
>> working with shared filesystems.
>> 
>> So my idea was to define some shm-target-directory and
>> slotmemname-prefix in httpd.conf. So e.g. when shm-target-directory
>> is /shared-fs/logs/shm/ and slotmemname-prefix is `hostname`
>> (exported as shell variable), the final shm file would be
>> /shared-fs/logs/shm/slotmem-shm-myhostname-sbf751527.shm.
>> 
>> 
>> 
>> ----- Original Message -----
>> From: "Jim Jagielski" <jim@jaguNET.com>
>> To: dev@httpd.apache.org
>> Sent: Tuesday, September 11, 2012 6:16:08 PM
>> Subject: Re: httpd 2.4.2 - mod_proxy id name not unique
>> 
>> I have to admit, I never really considered that case, but can't
>> you simply change the default location of the slotmem on one?
>> 
>> On Sep 11, 2012, at 10:01 AM, Zisis Lianas <Zisis.Lianas@consol.de> wrote:
>> 
>>> Hi Jim,
>>> 
>>> what do you think about the suggested directives of
>>> "ProxyConfigIdPrefix" and "BalancerSlotmemDir"?
>>> (any other way to solve this problem is also welcome)
>>> 
>>> 
>>> Today I just ran into the same problem with httpd-2.4.3.
>>> The apache config/logs directory is shared (NFS) on two
>>> servers - when trying to restart both apache instances
>>> at same time, the last one throws an error:
>>> [proxy_balancer:debug] mod_proxy_balancer.c(760): AH01178: Doing balancers create:
544,1 (6)
>>> [slotmem_shm:debug] mod_slotmem_shm.c(300): AH02300: create /apache/logs/slotmem-shm-sbf751527.shm:
544/6
>>> [proxy_balancer:emerg] (17)File exists: AH01179: balancer slotmem_create failed
>>> 
>>> When I restart this instance when the first one is up,
>>> the restart is successful.
>>> 
>>> 
>>> regards,
>>> Zisis
>>> 
>>> ----- Original Message -----
>>> From: "Jim Jagielski" <jim@jaguNET.com>
>>> To: dev@httpd.apache.org
>>> Sent: Tuesday, May 1, 2012 8:43:46 PM
>>> Subject: Re: httpd 2.4.2 - mod_proxy id name not unique
>>> 
>>> Let me look into that... iirc, it was due to us wanting to
>>> be able to persist data between restarts and using the time
>>> as part of the id prevented that. But I could be mis-remembering.
>>> 
>>> On Apr 30, 2012, at 7:50 AM, Zisis Lianas wrote:
>>> 
>>>> hi,
>>>> 
>>>> when mod_proxy currently is generating his "id", the name
>>>> of this id is not very unique. So if you have a shared config/
>>>> logs dir for more instances, the slotmem-shm files generated in
>>>> DefaultRuntimeDir are the same. Bit unlucky if working with shared
>>>> file systems.
>>>> 
>>>> In httpd-2.4.2/modules/proxy/mod_proxy.c line 1146 I can see
>>>> the following code:
>>>> #if 0
>>>> id = ap_proxy_hashfunc(apr_psprintf(p, "%pp-%" APR_TIME_T_FMT, ps, apr_time_now()),
PROXY_HASHFUNC_DEFAULT);
>>>> #else
>>>> id = ap_proxy_hashfunc(apr_psprintf(p, "%pp", ps), PROXY_HASHFUNC_DEFAULT);
>>>> #endif
>>>> 
>>>> Primarily checked in with
>>>> http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/proxy/mod_proxy.c?r1=1065749&r2=1065748&pathrev=1065749
>>>> 
>>>> 
>>>> If activating the first ap_proxy_hashfunc call, the generated names
>>>> seem to be unique. Is there any reason this code is not used? Maybe
>>>> we can set the "timed" version as default?
>>>> 
>>>> 
>>>> 
>>>> best regards,
>>>> Zisis
>>>> 
>>> 
>> 
> 


Mime
View raw message