Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

H2 enable note #7548

Closed
wants to merge 841 commits into from
Closed

H2 enable note #7548

wants to merge 841 commits into from

Conversation

sudheerv
Copy link
Contributor

No description provided.

sudheerv and others added 30 commits July 8, 2020 09:25
* Customize Max IOBuffer Size.

Allow callers explicitly configure and pass in the max buffer sizes
when asking for unknown sized memory chunks depending on the usecase
instead of relying on a common/global default config.

- Remove proxy.config.io.max_buffer_size
- Add docs for the new configs

(cherry picked from commit 6239297)
Ownership of the ca_list is transferred when SSL_CTX_set_client_CA_list
is called. This change delays that transfer to after the elements are
hashed.

(cherry picked from commit be23454)
Co-authored-by: Vijayanand Subramanian <vsubramanian@synamedia.com>
(cherry picked from commit 588c49c)
HdrHeap object length cannot be 0 by design otherwise there is something
wrong, i.e. possible memory corruption, in such cases iterating over
HdrHeap objects would lead to infinite loop, i.e. during unmarshaling.

(cherry picked from commit 986d355)
This attempts to fix null pointer access introduced in 3ffd8ac

(cherry picked from commit cd7d9ff)
* Improve client_vc tracking

* Refine Http/2 error code

Co-authored-by: Susan Hinrichs <shinrich@verizonmedia.com>
(cherry picked from commit 90f1493)
Fixed problems with initialization of cache volumes when at least
one volume is being forced to a specific "exclusive" span.

Problem description:
====================
Disks are cleared in the following configuration where volume sizes are
specified using percentages and also one of the volumes is forced to a
specific span (disk):

storage.config:
  /dev/disk1
  /dev/disk2 volume=3 # <- exclusive span forced to a specific volume

volume.config:
  volume=1 scheme=http size=50%
  volume=2 scheme=http size=50%
  volume=3 scheme=http size=512 # <- volume forced to an exclusive span

During the first start ATS identifies the clears disks and does the following:
1. creates and spreads new volume 1 and 2 blocks across disk1 and disk2
2. deletes all volume 1 and 2 blocks from disk2 to make space for volume 3
3. creates new volume 3 that takes over the whole disk2.

In step (1) volumes are caclulated larger and spread to disk2 only to be
deleted in step (2) to make space for the forced volume 3.

During the initial start the global volume list cp_list would end up
containing "zombie" CacheVol instances which corespond to the volume 1
and 2 blocks deleted from disk2 to make space for the volume 3 and the
mapping of domains to volumes (hosting.config) could end up mapping
to any of the deleted volume blocks.

This problem disappears after restart since cp_list will be initialized
from the disks and cp_list will contain only valid CacheVol instances.

The fix:
========
This fix prevents this from happening by making sure all volumes meant
to have "exclusive" disks are created first to make sure span free
spaces are updated correctly and by excluding the size of
the "exclusive" disks from the total cache size used for volume size
calculations when sizes are specified in percentages (volume.config).

(cherry picked from commit 17ee97a)
Also fix duplicate decrement of current client connection metric

(cherry picked from commit 4137029)
* Extendible ASAN Fix v2

+ Asserting that construction and init are happing as expected.
Every class that inherits from an extendible will need to:
1. allocate with ext::create<T>()
2. override operator delete to call free(ptr)

* Extendible create with arg forwarding

(cherry picked from commit b5692b1)
apache#7005)

* The default PREFIX is ${workspaceFolder}/target
* Added ATS_VSCODE_CONFIGURE environment var for overriding configuration options
* Added debugging for traffic_server and traffic_manager

(cherry picked from commit 939471a)
Fixed a problem with cache volume configurations where all volumes are
forced to a span (disk) in storage.config and percentage size is used
in volume.config.

Since "forced" volumes are now excluded from "total cache space" used
for volume size percentage calculations when all spans (disks) are
"forced" to volumes the "total cache space" becomes 0 and then volume
sizes calculated as percentage become 0. This patch fixes the issue and
also handles the case when a single volume is forced to multiple spans.

(cherry picked from commit 26ddf1e)
Signed-off-by: Randy DuCharme <radio.ad5gb@gmail.com>
(cherry picked from commit d945b42)
ezelkow1 and others added 20 commits February 10, 2021 20:52
The DNS local ip setting currently does not work. It gets overwritten with a default ANY address when we, by default, go to choose a random port. This removes the shadowing of the local variable that already has the local address either set via parameter or set to ANY if a parameter is not set.

Also adding records docs to make this a real parameter that people can know about

(cherry picked from commit 5feefeb)
 Change comment handling for long lines

There is a 300char max buffer size on lines url sig. If there is a comment longer than this then it will show up in the next fgets. If that happens to contain an `=` then it may end up being parsed as a rule otherwise it is thrown away but has an error printed.
This changes the comment handling so that if there is no `\n` seen at the end of the string in the buffer then it is assumed it is a long comment line and urlsig will continue eating the buffer until it hits a `\n`

(cherry picked from commit 08fe521)
apache#7415)

None of our current AuTests use Proxy Verifier for TLS connections, but
if they do they'll need this fix to correctly copy down and reference
the needed certs in the Proxy Verifier invocations.

(cherry picked from commit e7dc287)
The latest version of microserver applies SO_REUSEADDR on the socket it
binds to. This will hopefully address the flaky behavior we've seen with
the tls tests.

Co-authored-by: bneradt <bneradt@verizonmedia.com>
(cherry picked from commit e657d3a)
The new MicroServer 1.0.6 release has the following:

1. Fixes a bug in response body generation to POST requests.
2. Implements the handling of non-existent parts of keys in
   transactions.

(cherry picked from commit bcbf099)
The new 1.0.6 microserver generates a body such that the content length
for it is 71 instead of 30 for one of the tests. Updating the gold file
to match this expectation.

(cherry picked from commit 0e9d179)
We will want to use Proxy Verifier v2.0.0 for it's delayed transaction
and HTTP/2 to server capabilities. This updates the AuTest extensions to
properly handle the new version.

(cherry picked from commit 8dc2cbe)

 Conflicts:
	ci/jenkins/bin/autest.sh

NOTE: I had to copy over all of ci/jenkins/bin from master into this PR,
because it got maddening with all the merge conflicts. The CI jenkins
scripts were never meant to be backported, and somehow we started
including the Jenkins scripts changes into regular PRs.
Proxy Verifier 2.1.0 adds server-side delay functionality.

(cherry picked from commit 27880de)
@sudheerv sudheerv added this to the 10.0.0 milestone Feb 22, 2021
@sudheerv sudheerv requested a review from zwoop February 22, 2021 22:26
@sudheerv sudheerv self-assigned this Feb 22, 2021
@sudheerv sudheerv added this to In progress in 9.0.x Branch and Release via automation Feb 22, 2021
@sudheerv sudheerv closed this Feb 22, 2021
9.0.x Branch and Release automation moved this from In progress to Cherry Pick Feb 22, 2021
@zwoop zwoop removed this from the 10.0.0 milestone Feb 23, 2021
@zwoop zwoop removed this from Cherry Pick in 9.0.x Branch and Release Feb 23, 2021
@zwoop zwoop removed the rel-9.0.0 label Feb 23, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet