1
0
mirror of https://github.com/apache/httpd.git synced 2025-09-13 22:01:52 +03:00

71 Commits

Author SHA1 Message Date
Eric Covener
b646741ff0 bail after too many failed reads
Submitted By: icing



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1916771 13f79535-47bb-0310-9956-ffa450edef68
2024-04-03 11:55:16 +00:00
Stefan Eissing
84430d7f0b * mod_http2: fixed a bug in handling of stream timeouts.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1912385 13f79535-47bb-0310-9956-ffa450edef68
2023-09-18 07:55:16 +00:00
Stefan Eissing
ccf4365117 *) mod_http2: fixed a bug that could lead to a crash in main connection
output handling. This occured only when the last request on a HTTP/2
     connection had been processed and the session decided to shut down.
     This could lead to an attempt to send a final GOAWAY while the previous
     write was still in progress. See PR 66646.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1910386 13f79535-47bb-0310-9956-ffa450edef68
2023-06-13 14:36:43 +00:00
Stefan Eissing
61ebb22bf9 Sync with v2.0.10 from github:
* Extensive testing in production done by Alessandro Bianchi (@alexskynet)
   on the v2.0.x versions for stability. Many thanks!
 * refactored stream response handling to reflect the different phases
   (response/data/trailers) more clearly and help resolving cpu busy loops.
 * Adding more negative tests for handling of errored responses to cover
   edge cases.
 * mod_http2: fixed handling of response where neiter an EOS nor an ERROR was
   received as a cause to reset the stream.
 * mod_proxy_http2: generating error buckets for fault response bodies, to
   signal failure to fron when response header were already sent.

v2.0.9
--------------------------------------------------------------------------------
 * Fixed a bug where errors during reponse body handling did not lead to
   a proper RST_STREAM. Instead processing went into an infinite loop.
   Extended test cases to catch this condition.

v2.0.8
--------------------------------------------------------------------------------
 * Delaying input setup of a stream just before processing starts. This allows
   any EOS indicator arriving from the client before that to take effect.
   Without knowing that a stream has no input, internal processing has to
   simulate chunked encoding. This is not wrong, but somewhat more expensive
   and mod_security has been reported to be allergic to seeing 'chunked'
   on some requests. See <https://bz.apache.org/bugzilla/show_bug.cgi?id=66282>.
 * mod_proxy_http2: fixed #235 by no longer forwarding 'Host:' header when
   request ':authority' is known. Improved test case that did not catch that
   the previous 'fix' was incorrect.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1904522 13f79535-47bb-0310-9956-ffa450edef68
2022-10-11 14:54:08 +00:00
Stefan Eissing
cc77f54228 *) mod_http2: synchronization with github sources.
Building in trunk and against 2.4.x is now supported
     via AP_HAS_RESPONSE_BUCKETS defines.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1904305 13f79535-47bb-0310-9956-ffa450edef68
2022-09-27 13:21:21 +00:00
Stefan Eissing
3f9a045f96 *) mod_http2: fixed trailer handling. Empty response bodies
prevented trailers from being sent to a client. See
     <https://github.com/icing/mod_h2/issues/233> for how
     this affected gRPC use.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1902409 13f79535-47bb-0310-9956-ffa450edef68
2022-07-02 09:39:22 +00:00
Stefan Eissing
887ffec712 *) mod_http2: use new ap_sb_get_child_thread() to get child_num
and create unique h2 session identifiers in logging that stay
     unique among re-activations of the master connection.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1900030 13f79535-47bb-0310-9956-ffa450edef68
2022-04-19 10:17:05 +00:00
Stefan Eissing
5d3b2f1f0c *) mod_http2: use the new REQUEST buckets to forward request
on secondary connections. Use the now generic
     ap_process_connection() in h2 workers to process those.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899802 13f79535-47bb-0310-9956-ffa450edef68
2022-04-13 08:38:12 +00:00
Stefan Eissing
8ce99f9ef1 *) mod_http2: use the new RESPONSE buckets introduced in r1899648.
This replaces the internal H2_HEADERS bucket, removing its
     source file and also obsoletes any interim response parsing
     needs.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899649 13f79535-47bb-0310-9956-ffa450edef68
2022-04-07 10:55:09 +00:00
Stefan Eissing
6a355db082 *) mod_http2:
- Fixed an issue since 1.15.24 that "Server" headers in proxied requests
       were overwritten instead of preserved. [PR by @daum3ns]
     - Added directove 'H2StreamTimeout' to configure a separate value for HTTP/2
       streams, overriding server's 'Timeout' configuration. [rpluem]
     - HTTP/2 connections now use pollsets to monitor the status of the
       ongoing streams and their main connection when host OS allows this.
     - Removed work-arounds for older versions of libnghttp2 and checking
       during configure that at least version 1.15.0 is present.
     - The HTTP/2 connection state handler, based on an experiment and draft
       at the IETF http working group (abandoned for some time), has been removed.
     - H2SerializeHeaders no longer has an effect. A warning is logged when it is
       set to "on". The switch enabled the internal writing of requests to be parsed
       by the internal HTTP/1.1 protocol handler and was introduced to avoid
       potential incompatibilities during the introduction of HTTP/2.
     - Removed the abort/redo of tasks when mood swings lower the active limit.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1894163 13f79535-47bb-0310-9956-ffa450edef68
2021-10-12 13:34:01 +00:00
Stefan Eissing
309e083893 mod_htt2, synch with changes from github module version:
- logio: improvements to reporting of sent bytes for http2 responses
  - directive H2OutputBuffering, controls if any output should be sent immediately.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1886792 13f79535-47bb-0310-9956-ffa450edef68
2021-02-22 14:11:09 +00:00
Mike Rumph
85760859ca Fix spelling errors found by codespell. [skip ci]
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1873985 13f79535-47bb-0310-9956-ffa450edef68
2020-02-13 18:15:57 +00:00
Stefan Eissing
91189ca77a mod_http2: update log tags, log field len errors at INFO level (via mkaufmann)
mod_proxy_http2: udpate log tags



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1863221 13f79535-47bb-0310-9956-ffa450edef68
2019-07-17 13:54:47 +00:00
Stefan Eissing
5b32f27b77 * modules/http2: reverting r1859724, as no good.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1860257 13f79535-47bb-0310-9956-ffa450edef68
2019-05-28 12:42:17 +00:00
Stefan Eissing
d5767ac605 *) mod_http2: internal code cleanups and simplifications. Common output code for
h2 and h2c protocols, using nested mutex locks for simplified calls. [Stefan Eissing]



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1859724 13f79535-47bb-0310-9956-ffa450edef68
2019-05-22 13:41:36 +00:00
Stefan Eissing
03e3ef23a8 On the trunk:
mod_http2: accurate reporting of h2 data input/output per request via mod_logio. Fixes
     an issue where output sizes where counted n-times on reused slave connections. See
     gituhub issue: https://github.com/icing/mod_h2/issues/158


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1828687 13f79535-47bb-0310-9956-ffa450edef68
2018-04-09 09:39:08 +00:00
Stefan Eissing
14cb0179e4 On the trunk:
mod_http2: removed obsolete stream detach code, no longer generating events
     in beam shutdown on pool destroy. 


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1822624 13f79535-47bb-0310-9956-ffa450edef68
2018-01-30 10:09:36 +00:00
Stefan Eissing
eb0fb1c922 On the trunk:
mod_http2: removing comments that documented that greenbytes has untransferable copyright to the sources. The rights, of course, remain unaffected, but maybe some people can sleep better.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1821371 13f79535-47bb-0310-9956-ffa450edef68
2018-01-17 14:41:30 +00:00
Stefan Eissing
0541926064 On the trunk:
mod_http2: Fix for possible CPU busy loop introduced in v1.10.3 where a stream may keep
     the session in continuous check for state changes that never happen. 



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1797745 13f79535-47bb-0310-9956-ffa450edef68
2017-06-06 07:58:57 +00:00
Stefan Eissing
0dc4a16fa3 On the trunk:
mod_http2: better performance, eliminated need for nested locks and thread privates.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1789395 13f79535-47bb-0310-9956-ffa450edef68
2017-03-29 17:36:35 +00:00
Stefan Eissing
ea16c6ebfe On the trunk:
mod_http2: input buffering and dynamic flow windows for increased throughput.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1788981 13f79535-47bb-0310-9956-ffa450edef68
2017-03-27 16:31:38 +00:00
Stefan Eissing
4df8e313bf On the trunk:
mod_http2: documentation and formatting



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1787051 13f79535-47bb-0310-9956-ffa450edef68
2017-03-15 14:19:51 +00:00
Stefan Eissing
5b6d27b08f On the trunk:
mod_http2: separate mutex instances for each bucket beam, resulting in 
     less lock contention. input beams only created when necessary.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1784571 13f79535-47bb-0310-9956-ffa450edef68
2017-02-27 14:30:50 +00:00
Stefan Eissing
97d4f59f55 On the trunk:
*) mod_http2: not counting file buckets again stream max buffer limits. 
     Effectively transfering static files in one step from slave to master 
     connection. [Stefan Eissing]



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1782975 13f79535-47bb-0310-9956-ffa450edef68
2017-02-14 15:26:59 +00:00
Stefan Eissing
7c8a148333 On the trunk:
mod_http2: aplogno tags, more unified log formatting



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1782958 13f79535-47bb-0310-9956-ffa450edef68
2017-02-14 12:54:22 +00:00
Stefan Eissing
ba655809af On the trunk:
mod_http2: rework of stream states and cleanup handling.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1782875 13f79535-47bb-0310-9956-ffa450edef68
2017-02-13 21:00:30 +00:00
Stefan Eissing
b633809d19 On the trunk:
*) mod_http2: rework of stream resource cleanup to avoid a crash in a close
     of a lingering connection. Prohibit special file bucket beaming for
     shared buckets. Files sent in stream output now use the stream pool
     as read buffer, reducing memory footprint of connections.
     [Yann Ylavic, Stefan Eissing]



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1779738 13f79535-47bb-0310-9956-ffa450edef68
2017-01-21 15:07:42 +00:00
Stefan Eissing
d300afee34 mod_http2: H2PushResource directive for early pushing
mod_proxy_http2: Link header uris are reverse mapped


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1769550 13f79535-47bb-0310-9956-ffa450edef68
2016-11-13 21:30:40 +00:00
Stefan Eissing
a7719a1eed mod_http2: AP_DEBUG_ASSERT changed to ap_assert
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1766691 13f79535-47bb-0310-9956-ffa450edef68
2016-10-26 15:14:11 +00:00
Stefan Eissing
8be49a74d6 mod_http2: fixed potential crash in beam memory handling introduced in 1.7.x changes
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1766308 13f79535-47bb-0310-9956-ffa450edef68
2016-10-23 18:16:42 +00:00
Stefan Eissing
0da36a75f8 mod_http2: reverting int->apr_uint32_t changes of v1.7.x
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1764005 13f79535-47bb-0310-9956-ffa450edef68
2016-10-09 20:22:40 +00:00
Stefan Eissing
2d12cf2d7a various fixes, mod_cgid interop, response/trailer forwarding rewritten, stability
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1763158 13f79535-47bb-0310-9956-ffa450edef68
2016-10-03 11:47:45 +00:00
Stefan Eissing
9b087848c1 more apr_uint32_t usage where appropriate, signed/unsigned warning detox, stream reset clears buffers immediately
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1761548 13f79535-47bb-0310-9956-ffa450edef68
2016-09-20 10:12:22 +00:00
Stefan Eissing
08df710604 mod_http2: more const goodiness and checks on h2 request creation, less NULL checking while processing
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1759547 13f79535-47bb-0310-9956-ffa450edef68
2016-09-07 06:44:16 +00:00
Stefan Eissing
2e6fa9fedc mod_http2: fix for stream buffer handling during shutdown
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1757985 13f79535-47bb-0310-9956-ffa450edef68
2016-08-27 10:39:24 +00:00
Stefan Eissing
4d2d1017d7 mod_http2: latest h2/state debug draft, fixes in 100-continue response generation
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1757534 13f79535-47bb-0310-9956-ffa450edef68
2016-08-24 14:44:53 +00:00
Rainer Jung
d79b514c4b Fix spelling in comments and text files.
No functional change.
PR 59990


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1756038 13f79535-47bb-0310-9956-ffa450edef68
2016-08-11 19:50:02 +00:00
Stefan Eissing
8b0d436788 mod_http2: support for intermediate responses
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1755323 13f79535-47bb-0310-9956-ffa450edef68
2016-08-05 13:48:16 +00:00
Stefan Eissing
d6cd77eb95 mod_http2: complete implemenmtation of draft-http2-debug-state
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1754534 13f79535-47bb-0310-9956-ffa450edef68
2016-07-29 15:12:38 +00:00
Christophe Jaillet
afe05a61a2 Fix some obvious doxygen warning
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1746183 13f79535-47bb-0310-9956-ffa450edef68
2016-05-30 19:56:14 +00:00
Stefan Eissing
0be1302714 mod_http2: improved resume/response/window update handling on master connection
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1744712 13f79535-47bb-0310-9956-ffa450edef68
2016-05-20 11:18:37 +00:00
Stefan Eissing
b9eb3fa8b3 mod_http2: checking configured Limit* values against header fields
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1744283 13f79535-47bb-0310-9956-ffa450edef68
2016-05-17 14:33:15 +00:00
Stefan Eissing
9a514360b0 mod_http2: fix for partial file buckets in master connection output, flushing of output revisited, uplift of some 2.4.x compat changes on slave filters
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1742260 13f79535-47bb-0310-9956-ffa450edef68
2016-05-04 12:32:05 +00:00
Stefan Eissing
55f94ec98c mod_http2: rewrote TLS buffering on master connection
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1742005 13f79535-47bb-0310-9956-ffa450edef68
2016-05-02 16:39:42 +00:00
Stefan Eissing
afd1183937 mod_http2: elimination of h2_io intermediate stream instances
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1740155 13f79535-47bb-0310-9956-ffa450edef68
2016-04-20 15:17:38 +00:00
Stefan Eissing
52cdae53be mod_http2: new bucket beams for tranporting buckets across threads without buffer copy. Code cleanup
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1739303 13f79535-47bb-0310-9956-ffa450edef68
2016-04-15 13:50:46 +00:00
Stefan Eissing
2d48b40a1d reduced h2_request initialization/copy after review by CJ
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1738563 13f79535-47bb-0310-9956-ffa450edef68
2016-04-11 10:17:28 +00:00
Stefan Eissing
42cc4efc74 mod_http2: new vars, keepalive increase, no slave reuse when con->keepalive not set properly
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1737125 13f79535-47bb-0310-9956-ffa450edef68
2016-03-30 15:35:58 +00:00
Stefan Eissing
aca4e6d365 mod_http2: fix for wrong handling of prefetched response bodies
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1737021 13f79535-47bb-0310-9956-ffa450edef68
2016-03-29 16:54:25 +00:00
Stefan Eissing
a082ae1643 mod_http2: some code cleanup of stream request body handling, potential avoid a buffer copy
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1734428 13f79535-47bb-0310-9956-ffa450edef68
2016-03-10 15:51:14 +00:00