h2_bucket_beam.c

Checkout Tools
  • last updated 3 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
* modules/http2: reverting r1859724, as no good.

  1. … 22 more files in changeset.
*) mod_http2: internal code cleanups and simplifications. Common output code for

h2 and h2c protocols, using nested mutex locks for simplified calls. [Stefan Eissing]

  1. … 23 more files in changeset.
mod_http2: bringing some signed/unsigned casting goodness, aligning with github mod-h2 again

  1. … 11 more files in changeset.
On the trunk:

* silencing gcc uninitialized warning

* refrainning from apr_table_addn() use since pool debug assumptions are in conflict

* adding more assertions

* copy-porting changes to base64 encoding code from mod_md

  1. … 6 more files in changeset.
On the trunk:

mod_http2: adding regular memory cleanup when transferring large response bodies. This

reduces memory footprint and avoids memory exhaustion when transferring large files

on 32-bit architectures. Fixes PR 62325.

  1. … 2 more files in changeset.
On the trunk:

mod_http2: always wake up any conditional waits when streams are aborted. Fixes race conditions where timeouts would trigger instead.

On the trunk:

mod_http2: removed obsolete stream detach code, no longer generating events

in beam shutdown on pool destroy.

  1. … 4 more files in changeset.
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.

  1. … 51 more files in changeset.
correct copyright/license headers

  1. … 23 more files in changeset.
*) mod_http2: avoid unnecessary data retrieval for a trace log. Allow certain

information retrievals on null bucket beams where it makes sense. [Stefan Eissing]

  1. … 3 more files in changeset.
On the trunk:

mod_http2: v0.10.12, removed optimization for mutex handling in bucket beams that could lead to assertion failure in edge cases.

  1. … 6 more files in changeset.
mod_http2: signalling produce IO before waiting on beam buffer to drain.

  1. … 1 more file in changeset.
mod_http2: version bump, partial fix for stream response getting stuck, see https://github.com/icing/mod_h2/issues/143
  1. … 4 more files in changeset.
On the trunk:

mod_http2: fixed possible deadlock that could occur when connections were

terminated early with ongoing streams. Fixed possible hanger with timeout

on race when connection considers itself idle.

  1. … 5 more files in changeset.
On the turnk:

mod_http2: fixed two deadlocks introduced by removing nested mplx locking earlier.

  1. … 4 more files in changeset.
On the trunk:

mod_http2: move stuff from master connection to worker threads, increase spare slave connections, create output beams in worker when needed.

  1. … 9 more files in changeset.
On the trunk:

mod_http2: input buffering and dynamic flow windows for increased throughput.

  1. … 12 more files in changeset.
On the trunk:

mod_http2: ripped out H2SessionExtraFiles directive, removed super special sender pool handling in bucket beams.

  1. … 9 more files in changeset.
On the trunk:

*) mod_http2: stream timeouts now change to vhost values once the request

is parsed and processing starts. Initial values are taken from base

server or SNI host as before.

  1. … 8 more files in changeset.
On the trunk:

mod_http2: separate mutex instances for each bucket beam, resulting in

less lock contention. input beams only created when necessary.

  1. … 9 more files in changeset.
On the trunk:

mod_http2: signal eos on request input earlier, avoid unnecessary chunked, empty bodies, removing atomics from beam produce/consumed callback handling.

  1. … 4 more files in changeset.
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]

  1. … 7 more files in changeset.
On the trunk:

mod_http2: facilitate slave connection reuse by comforting ap_check_pipeline.

  1. … 3 more files in changeset.
On the trunk:

mod_http2: rework of stream states and cleanup handling.

  1. … 15 more files in changeset.
On the trunk:

mod_http2: fixing h2_bucket_beam to avoid duplicate calls to cleanup functions.

[Yann, Ylavic, Stefan Eissing]

On the trunk:

M modules/http2/h2_bucket_beam.c

- renaming: former red/green is now send/recv, better to read

M modules/http2/h2_from_h1.c

- produce a response also when body it totally absent (PR 60599)

M modules/http2/h2_session.c

- more work on cleaner connection shutdown

  1. … 2 more files in changeset.
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]

  1. … 16 more files in changeset.
On the trunk:

*) mod_http2: streaming of request output now reacts timely to data

from other streams becoming available. Same for new incoming requests.

  1. … 11 more files in changeset.
On the trunk:

mod_http2: removing debug logs leftover in previous commit

* modules/http2/h2_bucket_beam.c

removed log warnings from debug session

On the trunk:

Cleanup mod_http2 beamer registry on server reload. Fixes PR60510.

* modules/http2/h2_bucket_beam.c

register cleanup function on installation that NULLs the beamer

registry on pool cleanup.

Patch by: Pavel Mateja <pavel@verotel.cz

me

  1. … 1 more file in changeset.