Hello William.
Thank you for commenting on this.
On 27.01.2019 21:13, William A Rowe Jr wrote:
On Fri, Jan 25, 2019 at 11:35 AM John Dunlap mailto:j...@lariat.co>> wrote:
I'm in the process of optimizing our web application for performance and
one thing
that I was really excited to try was mod_http2 because it allows the
browser to send
multiple requests through the same TCP connection with compressed headers.
However,
when I enabled it and restarted apache I was greeted with this:
[Fri Jan 25 12:30:57.813355 2019] [http2:warn] [pid 10186] AH10034: The mpm
module
(prefork.c) is not supported by mod_http2. The mpm determines how things
are processed
in your server. HTTP/2 has more demands in this regard and the currently
selected mpm
will just not do. This is an advisory warning. Your server will continue to
work, but
the HTTP/2 protocol will be inactive.
To this question, the answer should be blatantly obvious; http2 doesn't
simply support multiple requests (connection: keepalive solved that)
but supports parallel requests. This clearly isn't compatible with any
single-threaded/single-worker per connection strategy.
A hybrid mod_prefork could be coded to dispatch all worker requests
across to distinct worker processes for a single connection, but I
don't anticipate anyone interested in doing such development.
The last time I tried to use either mpm_worker or mpm_event my application
was plagued
by seemingly random segfaults. Are there any plans to support other MPM's?
If not, the
benefits of HTTP2 appear to be permanently out of reach for our mod_perl
applications
and that, honestly, might force us into seriously reevaluating our
technology stack. :(
Your compatibility with the worker MPM is likely much stronger than
with the event MPM; however... all request workers can behave in a
"free threaded" manner under mod_http2, eliminating the relative
simplicity of the worker MPM. Working out each and any of these
specific segfaults occurs is the only way to improve the situation.
For the general mod_perl activity to increase, the Apache Perl Project
needs active volunteers and contributions. Consider this entire thread
an open invitation to participate.
Invitation accepted, but
how can people who are not C programmers really contribute ?
I believe that there is a much wider user base for mod_perl, than may be evident from
activity on the user list or on Bugzilla.
To quote Philippe Chiasson in
http://www.apache.org/foundation/records/minutes/2018/board_minutes_2018_11_21.txt :
"It's not that the project is dead, in my opinion, more like dormant. It works,
it's being used by a large number of users, and is extremely stable."
Exactly. And therefore, there is very little noise about it.
mod_perl may be suffering from its general "it just works" aspect, and therefor be less
attractive to developers (of mod_perl itself).
So let's imagine that there are currently worldwide a few hundreds/thousands users of
mod_perl (by which I mean application developers who use mod_perl daily to
develop/maintain important (to them) web-based applications), but of which only a tiny
percentage is fluent in C (in which mod_perl is written). And among these people, there
are quite a few which have a vested interest in the future of mod_perl (that's certainly
my case, and my company's case), but who themselves don't feel qualified to be able to
contribute to the code (also my case).
What could these mod_perl users do, to trigger renewed interest if the further development
of mod_perl, by people qualified to do so ?
Say for example that, collectively, we would be very interested in someone picking up and
resolving these problems that exist in running mod_perl with Apache MPM's other than prefork.
What would be the best way for us collectively to to try get the ball moving in that
direction, and more than anything, avoid having mod_perl maybe being moved sooner or later
to the Apache Attic, for lack of /perceived/ interest ?
Genuinely curious and interested
André Warnier (soliplaya at apache.org)
(don't let the Tomcat committer label fool you; I'm a perl and mod_perl guy)