httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Boyle Owen" <>
Subject RE: [users@httpd] Updated apache modules load immediately?
Date Mon, 22 Dec 2003 13:45:52 GMT
> -----Original Message-----
> From: Josh Wyatt []
> We're running Apache 1.3.19 (from Oracle).  It's configured 
> to dynamically load modules.
> We updated the mod_ssl module, and apache immediately hung, 
> without being restarted or touched in any other way.
> Is this behavior documented anywhere?  It seems a little 
> risque' that apache would go bottoms up when a loadable module 
> is updated in the filesystem and apache is not restarted.

It is perhaps a bit surprising - I was certainly suprised when it
happened to me. However, it should not be unexepected if you think
through what happens with dynamically loaded modules; the httpd binary
you have in apache/bin is a base version. When it starts up, it loads
the required modules - this happens *every time* a new daemon is
spawned. So, although in "human-time" apache seemed to hang immediately,
in "machine-time", the daemons which were already live when you saved
the new module continued to function normally (they had the old module
in memory). Then, as they were reaped after reaching MaxRequests, any
new daemon which was spawned by the parent process tried to load the new
module. Since this had not been compiled against the existing httpd, all
the address pointers were wrong and each new daemon seg-faulted as it
came up.

The lesson is that dynamically loading modules must only be used with
the httpd binary that they were compiled against. Alternatively, if you
want to upgrade a module, you have to recompile apache too.

Personally, every time I upgrade anything in the apache distro, I create
a new installation directory for it. I use codenames to differentiate
the builds so I have server_roots like /home/apache/versions/airdrie,
/home/apache/versions/brechin and so on. This keeps all packages
hermetically sealed from each other and makes it easy to roll-back. I
select the version from a global /home/apache/bin/apachectl which has
the line:


where $VERSION is set on the command-line.

Owen Boyle
Disclaimer: Any disclaimer attached to this message may be ignored. 

> Thanks,
> Josh
> ---------------------------------------------------------------------
> The official User-To-User support forum of the Apache HTTP 
> Server Project.
> See <URL:> for more info.
> To unsubscribe, e-mail:
>    "   from the digest:
> For additional commands, e-mail:
Diese E-mail ist eine private und persönliche Kommunikation. Sie hat
keinen Bezug zur Börsen- bzw. Geschäftstätigkeit der SWX Gruppe. This
e-mail is of a private and personal nature. It is not related to the
exchange or business activities of the SWX Group. Le présent e-mail est
un message privé et personnel, sans rapport avec l'activité boursière du
Groupe SWX.

This message is for the named person's use only. It may contain
confidential, proprietary or legally privileged information. No
confidentiality or privilege is waived or lost by any mistransmission.
If you receive this message in error, please notify the sender urgently
and then immediately delete the message and any copies of it from your
system. Please also immediately destroy any hardcopies of the message.
You must not, directly or indirectly, use, disclose, distribute, print,
or copy any part of this message if you are not the intended recipient.
The sender's company reserves the right to monitor all e-mail
communications through their networks. Any views expressed in this
message are those of the individual sender, except where the message
states otherwise and the sender is authorised to state them to be the
views of the sender's company. 

The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:> for more info.
To unsubscribe, e-mail:
   "   from the digest:
For additional commands, e-mail:

View raw message