httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Luca Toscano <toscano.l...@gmail.com>
Subject Re: Questions about mod_event's documentation
Date Mon, 01 Feb 2016 12:11:49 GMT
Hi Stefan,

thanks for the answers! Commenting inline:

2016-02-01 10:54 GMT+01:00 Stefan Eissing <stefan.eissing@greenbytes.de>:
>
>
> > - mod_ssl and mod_deflate are examples of filters that needs to act on
> the whole response so a worker gets stuck flushing data to slow clients
> rather than giving up the socket earlier to the listener and doing a
> different work.
>
> Hmm, not sure I understand your point. Every part in the process of
> generating the bytes sent out on the socket is involved here. The crucial
> difference between the worker and the event mpm is:
> - worker keeps the response state on the stack
> - event keeps the response state in the heap
> which means that calls to response processing
> - on worker, need to return when all is done
> - on event, may return whenever a READ/WRITE event or TIMEOUT/KEEPALIVE is
> needed.
>
> In that way, writing a response with event is "stutter stepping" it. Write
> until EWOULDBLOCK, return, queued, event, write until EWOULDBLOCK,...
>
> (my understanding)
>

Really sorry for my poor explanation, but I am still in early phases when
you bang your head against httpd's code until you get something out of it :)

More context from the doc:

"A similar restriction is currently present for requests involving an
output filter that needs to read and/or modify the whole response body,
like for example mod_ssl, mod_deflate, or mod_include. If the connection to
the client blocks while the filter is processing the data, and the amount
of data produced by the filter is too big to be buffered in memory, the
thread used for the request is not freed while httpd waits until the
pending data is sent to the client."

After a chat in #httpd-dev I realised that this use case is not the
standard one for processing a https connection with event, but only a
corner case. For some reason this lead me to think that event was handling
HTTPS connections like worker in all the use cases (some sysadmin friends
thought the same too). It might be necessary only to add this note and
everything would be clearer in my opinion.

My goal is to reduce the time to understand mod-event (and to appreciate
all its greatness) for the "standard guy" like me. I now realise that the
docs are containing all the info that I needed but for some reason I wasn't
getting the correct picture out of it (some processing errors in my brain
might also be part of the problem but I can't easily fix it :)

Thanks! Looking forward to have other feedbacks!

Luca

Mime
View raw message