On Tue, Nov 10, 2009 at 12:53 AM, Jeff Trawick <trawick@gmail.com> wrote:
> On Mon, Nov 9, 2009 at 5:16 PM, Danny Sadinoff <danny.sadinoff@gmail.com> wrote:
> >...
> > 1) symlinks & you.
> > It seems that mod_fcgid identifies fcgid programs by inode and device,
> > not by filename.  So two fcgid programs invoked by the webserver
> > along different paths will be counted as the same if the two paths are
> > hardlinks or softlinks to each other.
> Mostly yes.
> The path to the file doesn't matter; it is the file itself that matters.
> There are different requirements for how programs are distinguished.
> One possibility is changing from stat() to lstat() (i.e., distinguish
> symlinks but not hard links).  Another possibility is looking only at
> the basename.  This was discussed in this thread:
> What are you trying to accomplish which is hindered by the current
> implementation?

My goal is a fairly simple one-application per vhost setup.  But, I'm seeing application pools shared amongst virtual hosts with distinct ServerName declarations, all of whom refer to the same file path (and inode) for the fcgi executable.  From what you're telling me, this is buggy behavior.  I'll try to boil my config down further and come up with a good testcase.

Whether my config is wrong or the implementation is buggy, I would think that the  mere existance of the dev thread trying to nail down the semantics ought to be argument enough for
documenting the file-path-vs-inode behavior.

> >
> > 2) Virtual hosts
> > The above item holds true even across virtual hosts.   So while
> > it's possible to adjust the FcgidInitialEnv items on a per-vhost
> > basis, this is a recipe for disaster if two vhosts point at the same
> > fcgi executable, because the resulting processes with potentially
> > different Environments will be inserted into the same pool.  Once that
> > occurs, we may expect that a server spawned with config defined in
> > vhost A will be parcelled out to vhost B.
> Where does this occur?  Entries in the process table are distinguished
> by virtual host.  (I think the implementation of this check is broken,
> in that it requires that ServerName is set in the virtual hosts.  Are
> you using a simple test config that doesn't have ServerName set?)

My case is not yet simple.  I'll get back to you.

> > The Apache httpd 2.3 docs do not address the symlink issue at all, and
> > the virtual host issue only indirectly.
> > http://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html
> FWIW, this isn't part of "Apache httpd 2.3".  mod_fcgid is released
> separately from the web server and only by coincidence has the same
> version number (2.3.x) as development levels of the web server.

Well, that's another doc bug, since the page I link to has a big
header that says:
"Apache HTTP Server Version 2.3"