Have you read the following from Django Comments, what do you think of
it ?
Graham Dumpleton August 17, 2006 at 11:59 p.m.
You really need to provide an explanation of why the worker MPM cannot
be used and the prefork MPM must be used. The reason is that this
doesn't make a lot of sense. On a Win32 system, how Apache works is not
much different to a worker MPM on a UNIX system with the exception that
there is only one Apache child process, whereas on UNIX there can be
multiple Apache child processes. In other words, both on Win32 and when
worker MPM on UNIX is used there can be multiple concurrent requests
being handled in separate threads within the same Apache child process.
Thus, if the problem is related to multithreading, if it doesn't work
with the worker MPM, it probably shouldn't work on Win32 systems
either.
The only thing I can think of is that this advice is based on the use
of a version of mod_python prior to version 3.2.8. These older versions
had a number of issues in relation to multithreaded MPMs which could
cause problems. But then, this would have affected both Win32 and UNIX
worker MPM.
So, please explain. Also, if it is believed that not being able to use
worker MPM is related to mod_python, as opposed to Django, you really
should communicate with the mod_python folks about it. Keeping up to
date with what the mod_python folks are up to would also be a good idea
with mod_python 3.3 getting near to be finished. This is because it
will have a completely new module importer and there is always a small
risk that it may not play well with Django. You may therefore want to
ensure you do some testing with the development version in advance of
mod_python 3.3 actually being released.
This seems to be in response to some question. What is the context,
though? What was the original question and where was this posted? Was
there a particular point you wanted to know about?
Malcolm
The context of this comment is
http://www.djangoproject.com/documentation/modpython/#c2029
What I would like to know is if something has been done or will be to
ensure that Django works along with mod_python 3.3.
As far as I understand this will allow us to run any taste of Apache in
any case (this worker prefork MPM blahblah which is gibberish to me).
Uhm... I would not say that it 'cannot' be used. It can (after some long
time ago threading issues with db connections were resolved). I see the
chooice between prefork and worker to not be related to Django at all.
In any case, we were using mod_python 3.1.3-3. I'm happy to hear it's
been fixed in 3.2.8. Unfortunately, even Debian unstable is still at
3.2.7, so I think a warning about this is necessary.
The fixes to mod_python I spoke of are actually also in 3.2.7. Version
3.2.7 of mod_python existed for such a short time and was immediately
replaced with 3.2.8 due to a potential security issue with a new
feature
in 3.2.7 so we tend to just ignore it and always suggest people use
3.2.8
at least. Since then mod_python 3.2.10 has been released anyway.
Graham