1
0
mirror of https://github.com/apache/httpd.git synced 2026-10-23 22:49:01 +03:00

4665 Commits

Author SHA1 Message Date
Yann Ylavic
cd44f23dbb event: Avoid possible blocking in the listener thread when shutting down
connections. PR 60956.

start_lingering_close_nonblocking() now puts connections in defer_linger_chain
which is emptied by any worker thread (all atomically) after its usual work,
hence any possibly blocking flush and lingering close run outside the listener.

The listener may create a dedicated worker if it fills defer_linger_chain or
while it's not empty, calling push2worker with a NULL cs.

The state machine in process_socket() is slighly modified to be able to enter
with CONN_STATE_LINGER directly w/o clogging_input_filters to interfer.

New abort_socket_nonblocking() allows to reset connections when nonblocking is
required and we can't do much about the connection anymore, nor we want the
system to linger on its own after close().

Many thanks to Stefan Priebe for his heavy testing on many event's changes!



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1802875 13f79535-47bb-0310-9956-ffa450edef68
2017-07-24 23:19:06 +00:00
Yann Ylavic
21160f8864 core, mpm_event: Add ap_update_sb_handle() to avoid a small memory leak of
sizeof(ap_sb_handle_t) when re-entering event's process_socket().



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1802618 13f79535-47bb-0310-9956-ffa450edef68
2017-07-21 17:22:05 +00:00
Yann Ylavic
7ea6d8b113 mpm_event: ap_queue_info_try_get_idler() may atomically decrement and then
re-increment the number idlers if it went under or to zero.  We can avoid
this by switching to a compare-and-swap scheme.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1802535 13f79535-47bb-0310-9956-ffa450edef68
2017-07-20 23:34:47 +00:00
Yann Ylavic
72658bb425 ap_server_config_defines and ap_server_{pre,post}_read_config are arrays of
*const* strings (must not change after being inserted), make it explicit.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1802309 13f79535-47bb-0310-9956-ffa450edef68
2017-07-18 15:06:15 +00:00
Yann Ylavic
7f548a8cda Be explicit and safe (const) with the strings stored in ap_server_config_defines.
Follow up to r1713043.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1802305 13f79535-47bb-0310-9956-ffa450edef68
2017-07-18 14:41:43 +00:00
Evgeny Kotkov
233a657c92 mpm_winnt: Do not redefine the standard CONTAINING_RECORD() macro
in child.c.

This definition has been added in https://svn.apache.org/r88498 — perhaps,
because not every versions of SDK contained it at that time.

But since then, the macro has been available starting from Windows 2000
(https://msdn.microsoft.com/en-us/library/windows/hardware/ff542043),
and any available version of Windows SDK now should also contain it.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801753 13f79535-47bb-0310-9956-ffa450edef68
2017-07-12 16:49:14 +00:00
Evgeny Kotkov
60a36aec3e mpm_winnt: Remove an obsolete comment in child.c explaining why the
declarations of the structures and functions to access the completion
contexts reside in a header file.

This no longer holds, as all the necessary functions and structures are
located in the single .c file (child.c).


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801749 13f79535-47bb-0310-9956-ffa450edef68
2017-07-12 16:16:17 +00:00
Evgeny Kotkov
0186082cc0 mpm_winnt: Tweak the names of the variables in child.c which are used to
represent a queue of the completion contexts.

Starting from r1801655, the "queue" isn't really a queue, as all the
access happens with a LIFO order. So, instead of that, call it a "pool
of completion contexts", adjust names of all relevant variables and
tweak the comments.

This patch changes
  - qlock to ctxpool_lock,
  - qhead to ctxpool_head, and
  - qwait_event to ctxpool_wait_event.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801748 13f79535-47bb-0310-9956-ffa450edef68
2017-07-12 16:12:21 +00:00
Evgeny Kotkov
0c496a080b mpm_winnt: Tweak the listener shutdown code to use a separate event
instead of the global variable (shutdown_in_progress).

This change has two purposes.  First of all, it makes the listener threads
which are blocked waiting for a completion context exit immediately during
shutdown.  Previously, such threads would only check for exit every second.
The second reason for this change is to put the child_main() function in
charge of controlling the listeners life cycle.  Previously, such relation
was circumvented by the fact that the listeners were also waiting for the
global child exit_event.  With the new separate listener_shutdown_event,
only the child_main() function is responsible for shutting down the
listeners, and I think that this makes the code a bit clearer.

All the original behavior, including the special APLOG_DEBUG diagnostic
message when we fail to acquire a free completion context in 1 second,
is kept unchanged.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801747 13f79535-47bb-0310-9956-ffa450edef68
2017-07-12 16:02:39 +00:00
Evgeny Kotkov
081a04cfba mpm_winnt: Following up on r1801655, add a comment that explains the
reason to choose the LIFO processing order for completion contexts.

It would be better to keep this important information in the code, instead
of just having it in the log message.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801710 13f79535-47bb-0310-9956-ffa450edef68
2017-07-12 09:47:36 +00:00
Evgeny Kotkov
d840509590 mpm_winnt: Advertise support for preshutdown notifications in the service,
and perform shutdown in respond to SERVICE_CONTROL_PRESHUTDOWN.

The pure shutdown notification leaves a small amount of time for the service
to finish (and the allowed amount of time has been shrinking with every new
version of Windows), and handling only it increases the chance of the process
being killed by SCM, instead of gracefully shutting down.  Handling the
preshutdown control code extends this period, and increases the chances of
finishing everything properly when the machine is rebooted or shut down.

(See https://msdn.microsoft.com/en-us/library/windows/desktop/ms683241)

Please note that although the preshutdown notifications are available only
starting from Windows Vista, the code is compatible with the previous versions
of Windows, since the SCM ignores unknown SERVICE_ACCEPT codes, and will
still send an ordinary SERVICE_CONTROL_SHUTDOWN under old Windows
versions.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801659 13f79535-47bb-0310-9956-ffa450edef68
2017-07-11 21:39:35 +00:00
Evgeny Kotkov
5c5a7310ab mpm_winnt: Remove unused values of the io_state_e enum.
Submitted By: Ivan Zhakov <ivan {at} visualsvn.com>


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801657 13f79535-47bb-0310-9956-ffa450edef68
2017-07-11 21:13:26 +00:00
Evgeny Kotkov
62328bde5a mpm_winnt: Remove a duplicated comment in the child_main() function.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801656 13f79535-47bb-0310-9956-ffa450edef68
2017-07-11 21:09:29 +00:00
Evgeny Kotkov
c13159d083 mpm_winnt: Use a LIFO stack instead of a FIFO queue to hold unused
completion contexts, as that may significantly reduce the memory usage.

This simple change can have a noticeable impact on the amount of memory
consumed by the child process in various cases.  Every completion context
in the queue has an associated allocator, and every allocator has it's
ap_max_mem_free memory limit which is not given back to the operating
system.  Once the queue grows, it cannot shrink back, and every allocator
in each of the queued completion contexts keeps up to its max_free amount
of memory.  The queue can only grow when a server has to serve multiple
concurrent connections at once.

With that in mind, consider a case with a server that doesn't encounter many
concurrent connections most of the time, but has occasional spikes when
it has to serve multiple concurrent connections.  During such spikes, the
size of the completion context queue grows.

The actual difference between using LIFO and FIFO orders shows up after
such spikes, when the server is back to light load and doesn't see a lot
of concurrency.  With FIFO order, every completion context in the queue
will be used in a round-robin manner, thus using *every* available allocator
one by one and ultimately claiming up to (N * ap_max_mem_free memory) from
the OS.  With LIFO order, only the completion contexts that are close to
the top of the stack will be used and reused for subsequent connections.
Hence, only a small part of the allocators will be used, and this can
prevent all other allocators from unnecessarily acquiring memory from
the OS (and keeping it), and this reduces the overall memory footprint.

Please note that this change doesn't affect the worst case behavior, as
it's still (N * ap_max_mem_free memory), but tends to behave better in
practice, for the reasons described above.

Another thing worth considering is the new behavior when the OS decides
to swap out pages of the child process, for example, in a close-to-OOM
condition.  Handling every new connection after the swap requires the OS
to load the memory pages for the allocator from the completion context that
is used for this connection.  With FIFO order, the completion contexts are
used one by one, and this would cause page loads for every new connection.
With LIFO order, there will be almost no swapping, since the same completion
context is going to be reused for subsequent new connections.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801655 13f79535-47bb-0310-9956-ffa450edef68
2017-07-11 21:07:45 +00:00
Evgeny Kotkov
f4f5dbc08c mpm_winnt: Drop the APLOG_DEBUG diagnostic saying how many thread
are blocked on the I/O completion port during the shutdown.

Prior to r1801635, the shutdown code required to know the amount of blocked
threads, as it has been dispatching the same amount of completion packets.
But this no longer holds, and the only reason why we maintain the
corresponding g_blocked_threads variable is because of this debug
diagnostic message.

Drop it in order to reduce complexity of the quite critical code in the
winnt_get_connection() function and to reduce the amount of global
variables.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801640 13f79535-47bb-0310-9956-ffa450edef68
2017-07-11 17:45:55 +00:00
Evgeny Kotkov
73b0441e08 mpm_winnt: Remove an unnecessary Sleep() in the winnt_accept() function.
This sleep occured in a situation when:

 - We don't have a free completion context in the queue
 - We can't add one, as doing so would exceed the max_num_completion_contexts
   limit (all worker threads are busy)
 - We have exceeded a 1 second timeout while waiting for it

In this case, the Sleep() call is unnecessary, as there is no intermittent
failure that can be waited out, but rather than that, it's an ordinary
situation with all workers being busy.  Presumably, calling Sleep() here
can be even considered harmful, as it affects the fairness between the
listeners that are blocked waiting for the completion context.

So, instead of calling Sleep() just check for the possible shutdown and
immediately retry acquiring a completion context.  If all worker threads
are still busy, the retry will block in the same WaitForSingleObject() call,
which is fine.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801639 13f79535-47bb-0310-9956-ffa450edef68
2017-07-11 17:16:49 +00:00
Evgeny Kotkov
92dc445380 mpm_winnt: Simplify the shutdown code that was waiting for multiple worker
thread handles in batches.

Starting from r1801636, there is no difference between ending the wait with
one or multiple remaining threads.  This is because we terminate the process
if at least one thread is still active when we hit a timeout.

Therefore, instead of making an effort to evenly distribute and batch the
handles with WaitForMultipleObjects(), we could just start from one end,
and wait for one thread handle at a time.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801637 13f79535-47bb-0310-9956-ffa450edef68
2017-07-11 16:51:09 +00:00
Evgeny Kotkov
5c1f5c7b28 mpm_winnt: Avoid using TerminateThread() in case the shutdown routine
hits a timeout while waiting for the worker threads to exit.

Using TerminateThread() can have dangerous consequences such as deadlocks —
say, if the the thread is terminated while holding a lock or a heap lock
in the middle of HeapAlloc(), as these locks would not be released.
Or it can corrupt the application state and cause a crash.

(See https://msdn.microsoft.com/en-us/library/windows/desktop/ms686717)

Rework the code to call TerminateProcess() in the described circumstances
and leave the cleanup to the operating system.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801636 13f79535-47bb-0310-9956-ffa450edef68
2017-07-11 16:46:47 +00:00
Evgeny Kotkov
180026b4f4 mpm_winnt: Make the shutdown faster by avoiding unnecessary Sleep()'s
when shutting down the worker threads.

Previously, the shutdown code was posting an amount of I/O completion
packets equal to the amount of the threads blocked on the I/O completion
port.  Then it would Sleep() until all these threads "acknowledge" the
completion packets by decrementing the global amount of blocked threads.

A better way would be to send the number of IOCP_SHUTDOWN completion
packets equal to the total amount of threads and immediately proceed to
the next step.  There is no need to block until the threads actually receive
the completion, as the shutdown process includes a separate step that waits
until the threads exit, and the new approach avoids an unnecessary delay.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801635 13f79535-47bb-0310-9956-ffa450edef68
2017-07-11 16:41:51 +00:00
Evgeny Kotkov
751964ab98 mpm_winnt: Following up on r1801144, use the new accept_filter_e enum
values in a couple of missed places in winnt_accept().


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801456 13f79535-47bb-0310-9956-ffa450edef68
2017-07-10 12:22:31 +00:00
Evgeny Kotkov
4b499ac1b4 mpm_winnt: Fix typo in the logged message in winnt_get_connection().
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801148 13f79535-47bb-0310-9956-ffa450edef68
2017-07-07 11:15:31 +00:00
Evgeny Kotkov
c3c585fa8e mpm_winnt: Refactor the mpm_get_completion_context() function so that it
would return a proper apr_status_t instead of yielding the result via the
*timeout out variable.

This makes the calling side easier to follow by avoiding an additional
layer of if's.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801147 13f79535-47bb-0310-9956-ffa450edef68
2017-07-07 11:14:25 +00:00
Evgeny Kotkov
948681b853 mpm_winnt: Remove an unnecessary retry after receiving a non-timeout failure
from the mpm_get_completion_context() function.

Currently, the only possible reasons why mpm_get_completion_context() could
fail are real errors such as being unable to WaitForSingleObject(), allocate
memory or create an event.  Retrying under such circumstances doesn't make
sense, and could be as well considered harmful.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801146 13f79535-47bb-0310-9956-ffa450edef68
2017-07-07 11:08:26 +00:00
Evgeny Kotkov
4af3fde28d mpm_winnt: Factor out a helper function to parse the type of an accept
filter and use an appropriate enum for it.

This makes the code in winnt_accept() a bit easier to follow.  As a minor
side effect, it also fixes a small bug where the "unrecognized AcceptFilter
'%s'" log entry would always contain "none" instead of the actually
unrecognized kind of the accept filter.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801144 13f79535-47bb-0310-9956-ffa450edef68
2017-07-07 11:00:07 +00:00
Evgeny Kotkov
6da8236354 mpm_winnt: Don't forget to close the I/O completion port as part of the
cleanup in the child process.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801143 13f79535-47bb-0310-9956-ffa450edef68
2017-07-07 10:51:23 +00:00
William A. Rowe Jr
8622fe6336 Restore single-char field names inadvertantly disallowed in 2.4.25.
PR: 61220
Submitted by: ylavic



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1800173 13f79535-47bb-0310-9956-ffa450edef68
2017-06-28 14:15:28 +00:00
William A. Rowe Jr
025ed739ed Revert 1800111 for a cleaner logic flow proposed by Yann
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1800171 13f79535-47bb-0310-9956-ffa450edef68
2017-06-28 14:06:24 +00:00
William A. Rowe Jr
31e7ac07d5 Appears to resolve the issue to permit single-char fieldnames; PR61220
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1800111 13f79535-47bb-0310-9956-ffa450edef68
2017-06-28 02:33:29 +00:00
William A. Rowe Jr
f3fe438dbb Revert misguided commit r1799731.
Discussion on-list, but any occurance of a platform-specific behavior in this
code path will alter the behavior of the core code and introduce the very
fingerprintable behavior this patch pretended to obscuficate.

Returning 404 for /CON for example may lead to a module such as mod_speling
revealing the existance of a real file named similar to /.conf, which makes
this an unwise behavior.

Further discussion of returning 404 for all CHR files encountered in the
filepath (not URI path), which currently return 403 on all platforms,
belongs on the dev list.





git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1799965 13f79535-47bb-0310-9956-ffa450edef68
2017-06-26 17:45:23 +00:00
Gregg Lewis Smith
6d6232479d style: where did the tabs come from?
no code changes


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1799732 13f79535-47bb-0310-9956-ffa450edef68
2017-06-24 05:55:22 +00:00
Gregg Lewis Smith
de0ff1a55f Send a 404 response like other OSs do instead of 403 on Windows when
a path segment or file requested uses a reserved word so Windows
cannot be fingerprinted. PR55887


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1799731 13f79535-47bb-0310-9956-ffa450edef68
2017-06-24 05:49:45 +00:00
Jacob Champion
964cb61f26 util.c: revert r1799375 during veto discussion
https://lists.apache.org/thread.html/c0320136ae7e4cbbae03cb2636dfb9b693b2d7a6ffb4c9a645beadb9@%3Cdev.httpd.apache.org%3E

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1799472 13f79535-47bb-0310-9956-ffa450edef68
2017-06-21 15:54:53 +00:00
Jim Jagielski
eb03bf18ef Make case insensitive
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1799425 13f79535-47bb-0310-9956-ffa450edef68
2017-06-21 10:54:44 +00:00
Jacob Champion
e0852fd12e util.c: add a strict Base64 decoding function
ap_pbase64decode_strict() adds to the functionality of
ap_pbase64decode() in two ways:

- the length of the decoded buffer is returned, allowing embedded NULLs
  to be retained by the caller
- the input string is strictly checked for Base64 validity, including
  correct zero-padding at the end of the string

(This was originally added to the httpdunit feature/backport branch in
r1796208, then reverted in r1799376, since it's currently intended for
trunk only.)

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1799380 13f79535-47bb-0310-9956-ffa450edef68
2017-06-20 23:55:20 +00:00
Jacob Champion
2a99e0920b util.c: ensure all TEST_CHAR loops stop at the null terminator
In the aftermath of CVE-2017-7668, decouple the business logic ("is NULL
a T_HTTP_CTRL") from the postcondition ("must not go past the end of the
string"). The NULL-byte classification in the TEST_CHAR table may change
in the future.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1799375 13f79535-47bb-0310-9956-ffa450edef68
2017-06-20 23:08:19 +00:00
Yann Ylavic
96406317e4 Quiet spurious gcc warning in ap_parse_form_data ("'escaped_char[0]' may be
used uninitialized in this function").



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1798785 13f79535-47bb-0310-9956-ffa450edef68
2017-06-14 22:29:17 +00:00
Eric Covener
f5071e48bf allow quoted paths in <IfFile>
The boilerplate code for config sections conflicts with TAKE1
because of the trailing stuff to terminate the opening tag.

Change from TAKE1 to RAW_ARGS and call ap_getword_conf()
directly.




git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1797844 13f79535-47bb-0310-9956-ffa450edef68
2017-06-07 00:52:10 +00:00
Eric Covener
a185f0392f PR61124: ap_parse_form_data() EBCDIC fix
URL-decoding doesn't work on EBCDIC.

Submitted By: Hank Ibell <hwibell gmail.com>




git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1796446 13f79535-47bb-0310-9956-ffa450edef68
2017-05-27 20:13:49 +00:00
Eric Covener
41b123254c short-circuit on NULL
Submitted By: jchampion
CVEID: CVE-2017-7668


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1796350 13f79535-47bb-0310-9956-ffa450edef68
2017-05-26 21:40:11 +00:00
Eric Covener
92ab67cbad core: deprecate and replace ap_get_basic_auth_pw
*) core: Deprecate ap_get_basic_auth_pw() and add 
    ap_get_basic_auth_components(). 

Submitted By: Emmanuel Dreyfus <manu netbsd.org>, Jacob Champion, Eric Covener
CVEID: CVE-2017-3167


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1796348 13f79535-47bb-0310-9956-ffa450edef68
2017-05-26 21:29:59 +00:00
Luca Toscano
fafe95b905 Evaluate nested If/ElseIf/Else config sections
It has been reported multiple times that nested
If/ElseIf/Else sections are not evaluated but
silently ignored.

This patch adds a simple recursion to the ap_if_walk
logic in order to allow arbitrary nested configs.
The overhead seems negligible compared to the actual
version of the ap_if_walk, but more expert feedback
is surely needed since this code gets called for every
HTTP request.

Tests are going to be added to t/apache/if_sections.t



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1792589 13f79535-47bb-0310-9956-ffa450edef68
2017-04-25 09:06:26 +00:00
Nick Kew
38e269322b Introduce request taint-checking concept.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1792169 13f79535-47bb-0310-9956-ffa450edef68
2017-04-21 08:44:06 +00:00
Jacob Champion
58b127de3f PR61009: be as helpful as possible during -V operation
A configtest isn't useful if you're just trying to get compile settings.
Move the settings dump up to just after ap_read_config(), which has
already done the minimum necessary to figure out which MPM is in use.

Even if ap_read_config() failed, still print as many compile settings as
we can. The user will see the error log entry on stderr.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1791975 13f79535-47bb-0310-9956-ffa450edef68
2017-04-19 20:38:26 +00:00
William A. Rowe Jr
ff0f1b909a If the lingering close does not leave the socket in a disconnected state,
do not recycle the socket.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1790978 13f79535-47bb-0310-9956-ffa450edef68
2017-04-11 14:09:00 +00:00
Stefan Eissing
354e89a57e On the trunk:
mpm_winnt: always invoke ap_lingering_close() at connection end.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1790973 13f79535-47bb-0310-9956-ffa450edef68
2017-04-11 13:41:44 +00:00
Yann Ylavic
e68575506b core: Disallow multiple Listen on the same IP:port when listener buckets
are configured (ListenCoresBucketsRatio > 0), consistently with the single
bucket case (default), thus fixing the leak of the corresponding socket
descriptors on graceful restart.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1789220 13f79535-47bb-0310-9956-ffa450edef68
2017-03-28 21:05:41 +00:00
Yann Ylavic
98ce943cf6 Revert r1789061: it didn't any leak since duplicated listeners were already
created on pconf, hence cleaned up on restart. More investigations needed...



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1789069 13f79535-47bb-0310-9956-ffa450edef68
2017-03-28 09:04:01 +00:00
Yann Ylavic
a1941d1347 core: Fix leak of duplicated listeners (socket descriptors) on restart
when ListenCoresBucketsRatio is configured (positive).

[Reverted by r1789069]


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1789061 13f79535-47bb-0310-9956-ffa450edef68
2017-03-28 07:39:47 +00:00
Stefan Eissing
ad79dc4101 On the trunk:
core: avoid socket timeout settings etc. on slave connections.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1787606 13f79535-47bb-0310-9956-ffa450edef68
2017-03-19 10:33:43 +00:00
Eric Covener
dcaae91ade print r->uri during failure
in a subrequest, r->the_request will be the one from r->main,
and it's not what we're checking above.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1787229 13f79535-47bb-0310-9956-ffa450edef68
2017-03-16 18:41:59 +00:00