On 24 Mar 2010, at 12:33 AM, William A. Rowe Jr. wrote:
In the wild I see that pattern all the time, a configuration
directory
containing some equivalent of empty.conf, to work around this
limitation. Without this empty.conf file, you run the opposite risk -
someone removing the last config file from a directory, and the
server
suddenly stops working without warning.
Whoa. There is a warning. ./apachectl yells, ./apachectl -t yells,
even
bootup service logs yell (Starting httpd... [FAILED] or similar).
That
is not a description of 'without warning'.
"Without warning" means "ops just uninstalled app-foo-<version>.rpm,
gracefully restarted, and suddenly the server is refusing to start,
and ops had no warning this would happen".
Sure ops can start reverse engineering the error messages to try and
work around the problem, but a sudden refusal to start isn't the
expected behaviour after a website package is removed.
In our environment, there are no fat fingers - if the website isn't
packaged, it isn't allowed to be installed[1], and we have int servers
for people to break if necessary before a website is deployed for
real. A far harder problem for us to solve are the sites that work by
accident, and then break when the crutch they were leaning on is
removed, and this feature adds risk for us, not reduces it. (RPMs are
by their nature atomic, they give you zero configuration options, and
therefore - in theory - zero opportunities for someone to misconfigure
it[2]).
This is not to say that our environment is the only deployment
scenario out there, which is why I think this suggestion is the safest
compromise:
If you believe the feature is necessary, introduce a NEW unambiguous
feature
instead of overloading. E.g. "IncludeOptional /optional/include"
for allowing
the include to fail.
[1] We have a standing rule that if it cannot be uninstalled cleanly,
then it cannot be installed in the first place.
[2] RPMs are atomic in theory, but the capacity for a thankfully small
group of developers to turn a simple straightforward concept into a
quagmire of confusion is quite alarming.
Regards,
Graham
--