https://issues.apache.org/bugzilla/show_bug.cgi?id=55449
Bug ID: 55449
Summary: AH01185: worker slotmem_create failed --> slotmem file
name/ID not unique
Product: Apache httpd-2
Version: 2.4.6
Hardware: PC
OS: Linux
Status: NEW
Severity: major
Priority: P2
Component: mod_proxy_balancer
Assignee: [email protected]
Reporter: [email protected]
Hello everybody,
currently I'm facing a problem by using multiple apache instances on one single
server with the creation of the shared memory file trhough mod_proxy_balancer,
since version 2.4.4.
In your environment we are running multiple web servers (reverse proxy) on one
machine by different users, which will be reloaded or restartet by the need of
each project. During this restarts since 2.4.4 we had a increase of the
following failure
[Wed Jul 10 15:43:59.221748 2013] [proxy_balancer:emerg] [pid 25160:tid
140641178298112] (17)File exists: AH01185: worker slotmem_create failed
[Wed Jul 10 15:43:59.221858 2013] [:emerg] [pid 25160:tid 140641178298112]
AH00020: Configuration Failed, exiting
After checking the code of mod_proxy, mod_proxy_balancer and soltmem_create i
recognized the follwing code. In version 2.4.4 there was a function included
for the first time, which checks if the requested shared memory file is
actually created and try's to reuse it (see mod_slotmem_shm.c, line 316ff). But
i think there won't be a check if the user rights are the same, because if
multiple users get the same "ID" for the filename of the shared memory file the
won't be able to create the file or use it if it still exists, because a NEW
filename/hash ID won't be created inside the method! (See also
mod_proxy_balancer.c, line 774ff for creation of the file ID)
[mod_proxy_balancer.c, Line 793: rv = storage->create(&new, conf->id,
ALIGNED_PROXY_BALANCER_SHARED_SIZE, conf->max_balancers, type, pconf);
--> created file ID will only be handed over once, and not checked if ID
already exists by a different user]
Configuration items the hash of the file ID is based on:
(See line mod_proxy_balancer.c, 766ff)
server_scheme: same for all instances
server_hostname: same for all instances
port: differs
server_admin: same for all instances
So currently from my point of unterstanding, there should be a check if the
current file exists under the current user, if the shared memory file is
created and used by another user, a new ID should be created, because this file
can't be used by the current process of apache!?
OS: Suse Linux 11 Sp2 / 64 Bit
Apache: 2.4.4/6, OpenSSL 1.0.1e, PCRE 8.33, OpenLDAP 2.4.35
Best regards,
André
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]