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

Ignore chmod events on UI config watcher. #2254

Merged
merged 4 commits into from
May 21, 2020

Conversation

rubenvp8510
Copy link
Contributor

Signed-off-by: Ruben ruben.vargas@aluxoft.com

Which problem is this PR solving?

Short description of the changes

  • The config file watcher now reacts to CHMOD and other events, and should only react when CREATE or WRITE events occurs. This prevents a lot of log noisy. Specially on kubernetes/openshift environments.

Signed-off-by: Ruben Vargas <ruben.vp8510@gmail.com>
@rubenvp8510 rubenvp8510 requested a review from a team as a code owner May 20, 2020 02:31
@rubenvp8510 rubenvp8510 requested a review from vprithvi May 20, 2020 02:31
@yurishkuro
Copy link
Member

What could be causing so frequent reloads in the original ticket?

@@ -149,16 +149,17 @@ func (sH *StaticAssetsHandler) watch() {
}
continue
}
if event.Op&fsnotify.Write == fsnotify.Write || event.Op&fsnotify.Create == fsnotify.Create {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. reduce nesting by inverting the condition and calling continue, as above
  2. should this be checking event.Name to match the actual config file, rather than reacting to all changes in the directory?
  3. another option to reduce logging is to compare the file context before and after, and only log on changed content. This is the approach taken for reloading sampling strategies file

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. Ok, sounds reasonable.

  2. I agree , but at the same time I'm not sure why in https://github.com/jaegertracing/jaeger/pull/2254/files#diff-5893b37f4eb854b962cce2c3be922456R180 we watch directory changes too, that line gave me the impression that we want to react to directory changes , but not sure why and I might be misunderstanding something here.

  3. Compare file content, we can do that, or we can compute the md5sum or something like that. but Do we really need that? The only scenario which I observed the excessive logging is due CHMOD events, of course can be other scenarios and a comparison could prevent future issues with like this one.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 - I remember something about renaming in k8s, etc. which required watching the directory. And when watching the directory, there could be many other changes happening, although it's still strange that the user experience logs every 0.5s. By checking that the event is actually for the file name we want we can eliminate all other events in the dir.

3 - we can try with just adding the name check, although doing a full comparison on (string)content is trivial, just a couple of lines right in this function.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did all except the content comparison, I don't think we need it at this point but if you think is good I can add it, as you said is a trivial thing to do.

@@ -149,16 +149,17 @@ func (sH *StaticAssetsHandler) watch() {
}
Copy link
Member

@yurishkuro yurishkuro May 20, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

L140: could we please refactor this nested go func() into a top function? There are 5 levels of indentation/nesting here.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done, I separated the go func() into another function. That removes some indentation levels.

@rubenvp8510
Copy link
Contributor Author

What could be causing so frequent reloads in the original ticket?

As showing here: jaegertracing/jaeger-operator#934 (comment), for some reason that still not clear to me, when the UI configuration is on a kubernetes/openshift ConfigMap, there are periodic CHMOD events triggered. Not sure if this is due to something internal on kubernetes, but in any case I think we should not reload the UI for those kind of events.

Signed-off-by: Ruben Vargas <ruben.vp8510@gmail.com>
if event.Op&fsnotify.Remove == fsnotify.Remove {
// this might be related to a file inside the dir, so, just log a warn if this is about the file we care about
// otherwise, just ignore the event
if event.Name == sH.options.UIConfigPath {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this is correct comparison. Based on the documentation of event.Name, it is the name of the file without the path, whereas UIConfigPath may contain the path.

You probably want filepath.Base(UIConfigPath)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also, this check could be done first, before checking for event.Op.

Copy link
Contributor Author

@rubenvp8510 rubenvp8510 May 21, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The documentation says relative path: https://godoc.org/github.com/fsnotify/fsnotify#Event

Anyway, for comparison proposes I get the base of both.

Signed-off-by: Ruben Vargas <ruben.vp8510@gmail.com>
@codecov
Copy link

codecov bot commented May 21, 2020

Codecov Report

Merging #2254 into master will decrease coverage by 0.01%.
The diff coverage is 52.38%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #2254      +/-   ##
==========================================
- Coverage   96.15%   96.13%   -0.02%     
==========================================
  Files         219      219              
  Lines       10652    10658       +6     
==========================================
+ Hits        10242    10246       +4     
- Misses        354      355       +1     
- Partials       56       57       +1     
Impacted Files Coverage Δ
cmd/query/app/static_handler.go 84.16% <52.38%> (-2.68%) ⬇️
cmd/query/app/server.go 94.59% <0.00%> (+2.70%) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update e46f873...0dad263. Read the comment docs.

Comment on lines 134 to 136
if filepath.Base(event.Name) != filepath.Base(sH.options.UIConfigPath) || event.Op&fsnotify.Chmod == fsnotify.Chmod {
continue
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no need to combine unrelated checks

Suggested change
if filepath.Base(event.Name) != filepath.Base(sH.options.UIConfigPath) || event.Op&fsnotify.Chmod == fsnotify.Chmod {
continue
}
if filepath.Base(event.Name) != filepath.Base(sH.options.UIConfigPath) {
continue
}
if event.Op&fsnotify.Chmod == fsnotify.Chmod {
continue
}

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, I just want to have a more compact code. but sure I'll separe it.

Copy link
Member

@yurishkuro yurishkuro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

one little nit, otherwise lgtm

Signed-off-by: Ruben Vargas <ruben.vp8510@gmail.com>
@rubenvp8510 rubenvp8510 changed the title Filter only to create and write events on watching UI config Ignore chmod events on UI config watcher. May 21, 2020
@yurishkuro yurishkuro merged commit 118951e into jaegertracing:master May 21, 2020
yurishkuro pushed a commit that referenced this pull request Aug 7, 2023
Bumps the all group in /docker-compose/monitor with 4 updates:
[deprecated](https://github.com/tantale/deprecated),
[typing-extensions](https://github.com/python/typing_extensions),
[urllib3](https://github.com/urllib3/urllib3) and
[wrapt](https://github.com/GrahamDumpleton/wrapt).

Updates `deprecated` from 1.2.13 to 1.2.14
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tantale/deprecated/releases">deprecated's
releases</a>.</em></p>
<blockquote>
<h2>v1.2.14</h2>
<h2>Fix</h2>
<ul>
<li>Fix <a
href="https://redirect.github.com/tantale/deprecated/issues/60">#60</a>:
return a correctly dedented docstring when long docstring are using the
D212 or D213 format.</li>
</ul>
<h2>Other</h2>
<ul>
<li>Add support for Python 3.11.</li>
<li>Drop support for Python older than 3.7 in build systems like pytest
and tox, while ensuring the library remains production-compatible.</li>
<li>Update GitHub workflow to run in recent Python versions.</li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/hugovk"><code>@​hugovk</code></a> made
their first contribution in <a
href="https://redirect.github.com/tantale/deprecated/pull/52">tantale/deprecated#52</a></li>
<li><a href="https://github.com/12rambau"><code>@​12rambau</code></a>
made their first contribution in <a
href="https://redirect.github.com/tantale/deprecated/pull/61">tantale/deprecated#61</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/tantale/deprecated/compare/v1.2.13...v1.2.14">https://github.com/tantale/deprecated/compare/v1.2.13...v1.2.14</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/tantale/deprecated/blob/master/CHANGELOG.rst">deprecated's
changelog</a>.</em></p>
<blockquote>
<h1>v1.2.14 (2023-05-27)</h1>
<p>Bug fix release</p>
<h2>Fix</h2>
<ul>
<li>Fix <a
href="https://redirect.github.com/tantale/deprecated/issues/60">#60</a>:
return a correctly dedented docstring when long docstring are using the
D212 or D213 format.</li>
</ul>
<h2>Other</h2>
<ul>
<li>
<p>Add support for Python 3.11.</p>
</li>
<li>
<p>Drop support for Python older than 3.7 in build systems like pytest
and tox,
while ensuring the library remains production-compatible.</p>
</li>
<li>
<p>Update GitHub workflow to run in recent Python versions.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/tantale/deprecated/commit/378636d8a1e3d62d5894329c57f44ba0030c2dbd"><code>378636d</code></a>
Drops seemingly unused importlib-metadata dev dep</li>
<li><a
href="https://github.com/tantale/deprecated/commit/325b764f528c36c419b187ead4d537ac3cfc3d6a"><code>325b764</code></a>
Fixes comment on which version is development branch</li>
<li><a
href="https://github.com/tantale/deprecated/commit/291b34a000001a29c1aecd5f702a283776daa43f"><code>291b34a</code></a>
Adds Pythons dropped notice to changelog</li>
<li><a
href="https://github.com/tantale/deprecated/commit/204eccd311e95b7d1ce1cfef0aec9349dc2ca7cd"><code>204eccd</code></a>
Drops limitation on tox &lt; 4 since bug was fixed</li>
<li><a
href="https://github.com/tantale/deprecated/commit/2660239db51b2a157d505537f287ef1de3461fd8"><code>2660239</code></a>
Adds srpm_build_deps to Packit config</li>
<li><a
href="https://github.com/tantale/deprecated/commit/54a53d7d5822009193d3057cde88665cdb233169"><code>54a53d7</code></a>
Try explicitly setting AppVeyor image to VS2022</li>
<li><a
href="https://github.com/tantale/deprecated/commit/2b79e57c4ab5f52d124c01c3da7041d3f3f63755"><code>2b79e57</code></a>
Exclude pypy3 on ppc64le on Travis builds</li>
<li><a
href="https://github.com/tantale/deprecated/commit/bf33f948b70b04cf3e8f598575bb23206abe2813"><code>bf33f94</code></a>
Drops old Pythons and adds newer ones for Appveyor build</li>
<li><a
href="https://github.com/tantale/deprecated/commit/682989d8d7fcd3b2cff7a42a58d966791aef9a52"><code>682989d</code></a>
Drop the .9 from pypy3 in tox.ini</li>
<li><a
href="https://github.com/tantale/deprecated/commit/3919edf1f1ca89a67c929704d80a604b995690b3"><code>3919edf</code></a>
Use specifically pypy3.9 v7.3.9</li>
<li>Additional commits viewable in <a
href="https://github.com/tantale/deprecated/compare/v1.2.13...v1.2.14">compare
view</a></li>
</ul>
</details>
<br />

Updates `typing-extensions` from 4.4.0 to 4.7.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/python/typing_extensions/releases">typing-extensions's
releases</a>.</em></p>
<blockquote>
<h2>4.7.1</h2>
<ul>
<li>Fix support for <code>TypedDict</code>, <code>NamedTuple</code> and
<code>is_protocol</code> on PyPy-3.7 and
PyPy-3.8. Patch by Alex Waygood. Note that PyPy-3.7 and PyPy-3.8 are
unsupported
by the PyPy project. The next feature release of typing-extensions will
drop support for PyPy-3.7 and may also drop support for PyPy-3.8.</li>
</ul>
<h2>4.7.0</h2>
<p>This is a feature release. Major changes include:</p>
<ul>
<li>All non-deprecated names from <code>typing</code> are now
re-exported by <code>typing_extensions</code> for convenience</li>
<li>Add <code>typing_extensions.get_protocol_members</code> and
<code>typing_extensions.is_protocol</code></li>
<li>Declare support for Python 3.12</li>
<li>This will be the last feature release to support Python 3.7, which
recently reached its end-of-life</li>
</ul>
<p>Full changelog of versions 4.7.0 and 4.7.0rc1:</p>
<h1>Release 4.7.0 (June 28, 2023)</h1>
<ul>
<li>This is expected to be the last feature release supporting Python
3.7,
which reaches its end of life on June 27, 2023. Version 4.8.0 will
support
only Python 3.8.0 and up.</li>
<li>Fix bug where a <code>typing_extensions.Protocol</code> class that
had one or more
non-callable members would raise <code>TypeError</code> when
<code>issubclass()</code>
was called against it, even if it defined a custom
<code>__subclasshook__</code>
method. The correct behaviour -- which has now been restored -- is not
to
raise <code>TypeError</code> in these situations if a custom
<code>__subclasshook__</code> method
is defined. Patch by Alex Waygood (backporting
<a
href="https://redirect.github.com/python/cpython/pull/105976">python/cpython#105976</a>).</li>
</ul>
<h1>Release 4.7.0rc1 (June 21, 2023)</h1>
<ul>
<li>Add <code>typing_extensions.get_protocol_members</code> and
<code>typing_extensions.is_protocol</code> (backport of CPython PR <a
href="https://redirect.github.com/python/typing_extensions/issues/104878">#104878</a>).
Patch by Jelle Zijlstra.</li>
<li><code>typing_extensions</code> now re-exports all names in the
standard library's
<code>typing</code> module, except the deprecated
<code>ByteString</code>. Patch by Jelle
Zijlstra.</li>
<li>Due to changes in the implementation of
<code>typing_extensions.Protocol</code>,
<code>typing.runtime_checkable</code> can now be used on
<code>typing_extensions.Protocol</code>
(previously, users had to use
<code>typing_extensions.runtime_checkable</code> if they
were using <code>typing_extensions.Protocol</code>).</li>
<li>Align the implementation of <code>TypedDict</code> with the
implementation in the
standard library on Python 3.9 and higher.
<code>typing_extensions.TypedDict</code> is now a function instead of a
class. The
private functions <code>_check_fails</code>, <code>_dict_new</code>, and
<code>_typeddict_new</code>
have been removed. <code>is_typeddict</code> now returns
<code>False</code> when called with
<code>TypedDict</code> itself as the argument. Patch by Jelle
Zijlstra.</li>
<li>Declare support for Python 3.12. Patch by Jelle Zijlstra.</li>
<li>Fix tests on Python 3.13, which removes support for creating
<code>TypedDict</code> classes through the keyword-argument syntax.
Patch by</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/python/typing_extensions/blob/main/CHANGELOG.md">typing-extensions's
changelog</a>.</em></p>
<blockquote>
<h1>Release 4.7.1 (July 2, 2023)</h1>
<ul>
<li>Fix support for <code>TypedDict</code>, <code>NamedTuple</code> and
<code>is_protocol</code> on PyPy-3.7 and
PyPy-3.8. Patch by Alex Waygood. Note that PyPy-3.7 and PyPy-3.8 are
unsupported
by the PyPy project. The next feature release of typing-extensions will
drop support for PyPy-3.7 and may also drop support for PyPy-3.8.</li>
</ul>
<h1>Release 4.7.0 (June 28, 2023)</h1>
<ul>
<li>This is expected to be the last feature release supporting Python
3.7,
which reaches its end of life on June 27, 2023. Version 4.8.0 will
support
only Python 3.8.0 and up.</li>
<li>Fix bug where a <code>typing_extensions.Protocol</code> class that
had one or more
non-callable members would raise <code>TypeError</code> when
<code>issubclass()</code>
was called against it, even if it defined a custom
<code>__subclasshook__</code>
method. The correct behaviour -- which has now been restored -- is not
to
raise <code>TypeError</code> in these situations if a custom
<code>__subclasshook__</code> method
is defined. Patch by Alex Waygood (backporting
<a
href="https://redirect.github.com/python/cpython/pull/105976">python/cpython#105976</a>).</li>
</ul>
<h1>Release 4.7.0rc1 (June 21, 2023)</h1>
<ul>
<li>Add <code>typing_extensions.get_protocol_members</code> and
<code>typing_extensions.is_protocol</code> (backport of CPython PR <a
href="https://redirect.github.com/python/typing_extensions/issues/104878">#104878</a>).
Patch by Jelle Zijlstra.</li>
<li><code>typing_extensions</code> now re-exports all names in the
standard library's
<code>typing</code> module, except the deprecated
<code>ByteString</code>. Patch by Jelle
Zijlstra.</li>
<li>Due to changes in the implementation of
<code>typing_extensions.Protocol</code>,
<code>typing.runtime_checkable</code> can now be used on
<code>typing_extensions.Protocol</code>
(previously, users had to use
<code>typing_extensions.runtime_checkable</code> if they
were using <code>typing_extensions.Protocol</code>).</li>
<li>Align the implementation of <code>TypedDict</code> with the
implementation in the
standard library on Python 3.9 and higher.
<code>typing_extensions.TypedDict</code> is now a function instead of a
class. The
private functions <code>_check_fails</code>, <code>_dict_new</code>, and
<code>_typeddict_new</code>
have been removed. <code>is_typeddict</code> now returns
<code>False</code> when called with
<code>TypedDict</code> itself as the argument. Patch by Jelle
Zijlstra.</li>
<li>Declare support for Python 3.12. Patch by Jelle Zijlstra.</li>
<li>Fix tests on Python 3.13, which removes support for creating
<code>TypedDict</code> classes through the keyword-argument syntax.
Patch by
Jelle Zijlstra.</li>
<li>Fix a regression introduced in v4.6.3 that meant that
<code>issubclass(object, typing_extensions.Protocol)</code> would
erroneously raise
<code>TypeError</code>. Patch by Alex Waygood (backporting the CPython
PR
<a
href="https://redirect.github.com/python/cpython/pull/105239">python/cpython#105239</a>).</li>
<li>Allow <code>Protocol</code> classes to inherit from
<code>typing_extensions.Buffer</code> or
<code>collections.abc.Buffer</code>. Patch by Alex Waygood (backporting
<a
href="https://redirect.github.com/python/cpython/pull/104827">python/cpython#104827</a>,
by Jelle Zijlstra).</li>
<li>Allow classes to inherit from both <code>typing.Protocol</code> and
<code>typing_extensions.Protocol</code></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/python/typing_extensions/commit/b518f6a64400fd5a25e5b72668370b9792ef9ae6"><code>b518f6a</code></a>
Prepare release 4.7.1 (<a
href="https://redirect.github.com/python/typing_extensions/issues/264">#264</a>)</li>
<li><a
href="https://github.com/python/typing_extensions/commit/dcdc53f62ecbea8a0fc9a42f66746f970ab101bb"><code>dcdc53f</code></a>
Restore compatibility with PyPy &lt;3.9 (<a
href="https://redirect.github.com/python/typing_extensions/issues/262">#262</a>)</li>
<li><a
href="https://github.com/python/typing_extensions/commit/bc9bc065f1837955fca2fff57b9e5fa04a2713cb"><code>bc9bc06</code></a>
Run some mypyc tests in the third-party workflow (<a
href="https://redirect.github.com/python/typing_extensions/issues/260">#260</a>)</li>
<li><a
href="https://github.com/python/typing_extensions/commit/fc5243bc14071dbf65c92202a5239d66c35abcb2"><code>fc5243b</code></a>
Run tests on more pypy versions in CI (<a
href="https://redirect.github.com/python/typing_extensions/issues/259">#259</a>)</li>
<li><a
href="https://github.com/python/typing_extensions/commit/b3ddcb6a94e7935166b3786ed0c1c54f1fc541b3"><code>b3ddcb6</code></a>
Stop running third-party tests on 3.7 (<a
href="https://redirect.github.com/python/typing_extensions/issues/257">#257</a>)</li>
<li><a
href="https://github.com/python/typing_extensions/commit/633d2e2942372848d8d7859cf71a569259dba9ee"><code>633d2e2</code></a>
4.7.0 final (<a
href="https://redirect.github.com/python/typing_extensions/issues/255">#255</a>)</li>
<li><a
href="https://github.com/python/typing_extensions/commit/3193f90d18e50a19725ed47bb8fe586c234b9449"><code>3193f90</code></a>
CHANGELOG: Mention expected end of 3.7 support (<a
href="https://redirect.github.com/python/typing_extensions/issues/253">#253</a>)</li>
<li><a
href="https://github.com/python/typing_extensions/commit/e65b036661eb472a3682eca1ceb78eb57b21d200"><code>e65b036</code></a>
Backport CPython PR 105976 (<a
href="https://redirect.github.com/python/typing_extensions/issues/252">#252</a>)</li>
<li><a
href="https://github.com/python/typing_extensions/commit/e703629a339a670b44a3612f87bfa90a49c794f0"><code>e703629</code></a>
README improvements (<a
href="https://redirect.github.com/python/typing_extensions/issues/250">#250</a>)</li>
<li><a
href="https://github.com/python/typing_extensions/commit/a65658fcbc0a86e529e1c46a4eaa5fee4f150607"><code>a65658f</code></a>
Update CONTRIBUTING.md (<a
href="https://redirect.github.com/python/typing_extensions/issues/249">#249</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/python/typing_extensions/compare/4.4.0...4.7.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `urllib3` from 1.26.12 to 2.0.4
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/urllib3/urllib3/releases">urllib3's
releases</a>.</em></p>
<blockquote>
<h2>2.0.4</h2>
<ul>
<li>Added support for union operators to <code>HTTPHeaderDict</code> (<a
href="https://redirect.github.com/urllib3/urllib3/issues/2254">#2254</a>)</li>
<li>Added <code>BaseHTTPResponse</code> to <code>urllib3.__all__</code>
(<a
href="https://redirect.github.com/urllib3/urllib3/issues/3078">#3078</a>)</li>
<li>Fixed <code>urllib3.connection.HTTPConnection</code> to raise the
<code>http.client.connect</code> audit event to have the same behavior
as the standard library HTTP client (<a
href="https://redirect.github.com/urllib3/urllib3/issues/2757">#2757</a>)</li>
<li>Relied on the standard library for checking hostnames in supported
PyPy releases (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3087">#3087</a>)</li>
</ul>
<h2>2.0.3</h2>
<ul>
<li>Allowed alternative SSL libraries such as LibreSSL, while still
issuing a warning as we cannot help users facing issues with
implementations other than OpenSSL. <a
href="https://redirect.github.com/urllib3/urllib3/issues/3020">#3020</a></li>
<li>Deprecated URLs which don't have an explicit scheme <a
href="https://redirect.github.com/urllib3/urllib3/pull/2950">#2950</a></li>
<li>Fixed response decoding with Zstandard when compressed data is made
of several frames. <a
href="https://redirect.github.com/urllib3/urllib3/issues/3008">#3008</a></li>
<li>Fixed <code>assert_hostname=False</code> to correctly skip hostname
check. <a
href="https://redirect.github.com/urllib3/urllib3/issues/3051">#3051</a></li>
</ul>
<h2>2.0.2</h2>
<ul>
<li>Fixed <code>HTTPResponse.stream()</code> to continue yielding bytes
if buffered decompressed data was still available to be read even if the
underlying socket is closed. This prevents a compressed response from
being truncated. (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3009">urllib3/urllib3#3009</a>)</li>
</ul>
<h2>2.0.1</h2>
<ul>
<li>Fixed a socket leak when fingerprint or hostname verifications fail.
(<a
href="https://redirect.github.com/urllib3/urllib3/issues/2991">#2991</a>)</li>
<li>Fixed an error when <code>HTTPResponse.read(0)</code> was the first
<code>read</code> call or when the internal response body buffer was
otherwise empty. (<a
href="https://redirect.github.com/urllib3/urllib3/issues/2998">#2998</a>)</li>
</ul>
<h2>2.0.0</h2>
<p>Read the <a
href="https://urllib3.readthedocs.io/en/latest/v2-migration-guide.html">v2.0
migration guide</a> for help upgrading to the latest version of
urllib3.</p>
<h1>Removed</h1>
<ul>
<li>Removed support for Python 2.7, 3.5, and 3.6 (<a
href="https://redirect.github.com/urllib3/urllib3/issues/883">#883</a>,
<a
href="https://redirect.github.com/urllib3/urllib3/issues/2336">#2336</a>).</li>
<li>Removed fallback on certificate <code>commonName</code> in
<code>match_hostname()</code> function. This behavior was deprecated in
May 2000 in RFC 2818. Instead only <code>subjectAltName</code> is used
to verify the hostname by default. To enable verifying the hostname
against <code>commonName</code> use
<code>SSLContext.hostname_checks_common_name = True</code> (<a
href="https://redirect.github.com/urllib3/urllib3/issues/2113">#2113</a>).</li>
<li>Removed support for Python with an <code>ssl</code> module compiled
with LibreSSL, CiscoSSL, wolfSSL, and all other OpenSSL alternatives.
Python is moving to require OpenSSL with PEP 644 (<a
href="https://redirect.github.com/urllib3/urllib3/issues/2168">#2168</a>).</li>
<li>Removed support for OpenSSL versions earlier than 1.1.1 or that
don't have SNI support. When an incompatible OpenSSL version is detected
an <code>ImportError</code> is raised (<a
href="https://redirect.github.com/urllib3/urllib3/issues/2168">#2168</a>).</li>
<li>Removed the list of default ciphers for OpenSSL 1.1.1+ and
SecureTransport as their own defaults are already secure (<a
href="https://redirect.github.com/urllib3/urllib3/issues/2082">#2082</a>).</li>
<li>Removed <code>urllib3.contrib.appengine.AppEngineManager</code> and
support for Google App Engine Standard Environment (<a
href="https://redirect.github.com/urllib3/urllib3/issues/2044">#2044</a>).</li>
<li>Removed deprecated <code>Retry</code> options
<code>method_whitelist</code>,
<code>DEFAULT_REDIRECT_HEADERS_BLACKLIST</code> (<a
href="https://redirect.github.com/urllib3/urllib3/issues/2086">#2086</a>).</li>
<li>Removed <code>urllib3.HTTPResponse.from_httplib</code> (<a
href="https://redirect.github.com/urllib3/urllib3/issues/2648">#2648</a>).</li>
<li>Removed default value of <code>None</code> for the
<code>request_context</code> parameter of
<code>urllib3.PoolManager.connection_from_pool_key</code>. This change
should have no effect on users as the default value of <code>None</code>
was an invalid option and was never used (<a
href="https://redirect.github.com/urllib3/urllib3/issues/1897">#1897</a>).</li>
<li>Removed the <code>urllib3.request</code> module.
<code>urllib3.request.RequestMethods</code> has been made a private API.
This change was made to ensure that <code>from urllib3 import
request</code> imported the top-level <code>request()</code> function
instead of the <code>urllib3.request</code> module (<a
href="https://redirect.github.com/urllib3/urllib3/issues/2269">#2269</a>).</li>
<li>Removed support for SSLv3.0 from the
<code>urllib3.contrib.pyopenssl</code> even when support is available
from the compiled OpenSSL library (<a
href="https://redirect.github.com/urllib3/urllib3/issues/2233">#2233</a>).</li>
<li>Removed the deprecated <code>urllib3.contrib.ntlmpool</code> module
(<a
href="https://redirect.github.com/urllib3/urllib3/issues/2339">#2339</a>).</li>
<li>Removed <code>DEFAULT_CIPHERS</code>, <code>HAS_SNI</code>,
<code>USE_DEFAULT_SSLCONTEXT_CIPHERS</code>, from the private module
<code>urllib3.util.ssl_</code> (<a
href="https://redirect.github.com/urllib3/urllib3/issues/2168">#2168</a>).</li>
<li>Removed <code>urllib3.exceptions.SNIMissingWarning</code> (<a
href="https://redirect.github.com/urllib3/urllib3/issues/2168">#2168</a>).</li>
<li>Removed the <code>_prepare_conn</code> method from
<code>HTTPConnectionPool</code>. Previously this was only used to call
<code>HTTPSConnection.set_cert()</code> by
<code>HTTPSConnectionPool</code> (<a
href="https://redirect.github.com/urllib3/urllib3/issues/1985">#1985</a>).</li>
<li>Removed <code>tls_in_tls_required</code> property from
<code>HTTPSConnection</code>. This is now determined from the
<code>scheme</code> parameter in
<code>HTTPConnection.set_tunnel()</code> (<a
href="https://redirect.github.com/urllib3/urllib3/issues/1985">#1985</a>).</li>
</ul>
<h1>Deprecated</h1>
<ul>
<li>Deprecated <code>HTTPResponse.getheaders()</code> and
<code>HTTPResponse.getheader()</code> which will be removed in urllib3
v2.1.0. Instead use <code>HTTPResponse.headers</code> and
<code>HTTPResponse.headers.get(name, default)</code>. (<a
href="https://redirect.github.com/urllib3/urllib3/issues/1543">#1543</a>,
<a
href="https://redirect.github.com/urllib3/urllib3/issues/2814">#2814</a>).</li>
<li>Deprecated <code>urllib3.contrib.pyopenssl</code> module which will
be removed in urllib3 v2.1.0 (<a
href="https://redirect.github.com/urllib3/urllib3/issues/2691">#2691</a>).</li>
<li>Deprecated <code>urllib3.contrib.securetransport</code> module which
will be removed in urllib3 v2.1.0 (<a
href="https://redirect.github.com/urllib3/urllib3/issues/2692">#2692</a>).</li>
<li>Deprecated <code>ssl_version</code> option in favor of
<code>ssl_minimum_version</code>. <code>ssl_version</code> will be
removed in urllib3 v2.1.0 (<a
href="https://redirect.github.com/urllib3/urllib3/issues/2110">#2110</a>).</li>
<li>Deprecated the <code>strict</code> parameter as it's not longer
needed in Python 3.x. It will be removed in urllib3 v2.1.0 (<a
href="https://redirect.github.com/urllib3/urllib3/issues/2267">#2267</a>)</li>
<li>Deprecated the <code>NewConnectionError.pool</code> attribute which
will be removed in urllib3 v2.1.0 (<a
href="https://redirect.github.com/urllib3/urllib3/issues/2271">#2271</a>).</li>
<li>Deprecated <code>format_header_param_html5</code> and
<code>format_header_param</code> in favor of
<code>format_multipart_header_param</code> (<a
href="https://redirect.github.com/urllib3/urllib3/issues/2257">#2257</a>).</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/urllib3/urllib3/blob/main/CHANGES.rst">urllib3's
changelog</a>.</em></p>
<blockquote>
<h1>2.0.4 (2023-07-19)</h1>
<ul>
<li>Added support for union operators to <code>HTTPHeaderDict</code>
(<code>[#2254](urllib3/urllib3#2254)
&lt;https://github.com/urllib3/urllib3/issues/2254&gt;</code>__)</li>
<li>Added <code>BaseHTTPResponse</code> to <code>urllib3.__all__</code>
(<code>[#3078](urllib3/urllib3#3078)
&lt;https://github.com/urllib3/urllib3/issues/3078&gt;</code>__)</li>
<li>Fixed <code>urllib3.connection.HTTPConnection</code> to raise the
<code>http.client.connect</code> audit event to have the same behavior
as the standard library HTTP client
(<code>[#2757](urllib3/urllib3#2757)
&lt;https://github.com/urllib3/urllib3/issues/2757&gt;</code>__)</li>
<li>Relied on the standard library for checking hostnames in supported
PyPy releases
(<code>[#3087](urllib3/urllib3#3087)
&lt;https://github.com/urllib3/urllib3/issues/3087&gt;</code>__)</li>
</ul>
<h1>2.0.3 (2023-06-07)</h1>
<ul>
<li>Allowed alternative SSL libraries such as LibreSSL, while still
issuing a warning as we cannot help users facing issues with
implementations other than OpenSSL.
(<code>[#3020](urllib3/urllib3#3020)
&lt;https://github.com/urllib3/urllib3/issues/3020&gt;</code>__)</li>
<li>Deprecated URLs which don't have an explicit scheme
(<code>[#2950](urllib3/urllib3#2950)
&lt;https://github.com/urllib3/urllib3/pull/2950&gt;</code>_)</li>
<li>Fixed response decoding with Zstandard when compressed data is made
of several frames.
(<code>[#3008](urllib3/urllib3#3008)
&lt;https://github.com/urllib3/urllib3/issues/3008&gt;</code>__)</li>
<li>Fixed <code>assert_hostname=False</code> to correctly skip hostname
check. (<code>[#3051](urllib3/urllib3#3051)
&lt;https://github.com/urllib3/urllib3/issues/3051&gt;</code>__)</li>
</ul>
<h1>2.0.2 (2023-05-03)</h1>
<ul>
<li>Fixed <code>HTTPResponse.stream()</code> to continue yielding bytes
if buffered decompressed data
was still available to be read even if the underlying socket is closed.
This prevents
a compressed response from being truncated.
(<code>[#3009](urllib3/urllib3#3009)
&lt;https://github.com/urllib3/urllib3/issues/3009&gt;</code>__)</li>
</ul>
<h1>2.0.1 (2023-04-30)</h1>
<ul>
<li>Fixed a socket leak when fingerprint or hostname verifications fail.
(<code>[#2991](urllib3/urllib3#2991)
&lt;https://github.com/urllib3/urllib3/issues/2991&gt;</code>__)</li>
<li>Fixed an error when <code>HTTPResponse.read(0)</code> was the first
<code>read</code> call or when the internal response body buffer was
otherwise empty.
(<code>[#2998](urllib3/urllib3#2998)
&lt;https://github.com/urllib3/urllib3/issues/2998&gt;</code>__)</li>
</ul>
<h1>2.0.0 (2023-04-26)</h1>
<p>Read the <code>v2.0 migration guide
&lt;https://urllib3.readthedocs.io/en/latest/v2-migration-guide.html&gt;</code>__
for help upgrading to the latest version of urllib3.</p>
<h2>Removed</h2>
<ul>
<li>Removed support for Python 2.7, 3.5, and 3.6
(<code>[#883](urllib3/urllib3#883)
&lt;https://github.com/urllib3/urllib3/issues/883&gt;</code><strong>,
<code>[#2336](urllib3/urllib3#2336)
&lt;https://github.com/urllib3/urllib3/issues/2336&gt;</code></strong>).</li>
<li>Removed fallback on certificate <code>commonName</code> in
<code>match_hostname()</code> function.
This behavior was deprecated in May 2000 in RFC 2818. Instead only
<code>subjectAltName</code>
is used to verify the hostname by default. To enable verifying the
hostname against
<code>commonName</code> use <code>SSLContext.hostname_checks_common_name
= True</code>
(<code>[#2113](urllib3/urllib3#2113)
&lt;https://github.com/urllib3/urllib3/issues/2113&gt;</code>__).</li>
<li>Removed support for Python with an <code>ssl</code> module compiled
with LibreSSL, CiscoSSL,
wolfSSL, and all other OpenSSL alternatives. Python is moving to require
OpenSSL with PEP 644
(<code>[#2168](urllib3/urllib3#2168)
&lt;https://github.com/urllib3/urllib3/issues/2168&gt;</code>__).</li>
<li>Removed support for OpenSSL versions earlier than 1.1.1 or that
don't have SNI support.
When an incompatible OpenSSL version is detected an
<code>ImportError</code> is raised
(<code>[#2168](urllib3/urllib3#2168)
&lt;https://github.com/urllib3/urllib3/issues/2168&gt;</code>__).</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/urllib3/urllib3/commit/c9fa144545eedb5dc4a2cc3f255e95602a1d7db0"><code>c9fa144</code></a>
Release version 2.0.4 (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3084">#3084</a>)</li>
<li><a
href="https://github.com/urllib3/urllib3/commit/d40d146765a7f7a899427c8add54de67b4b6599a"><code>d40d146</code></a>
Add Illia to CODEOWNERS</li>
<li><a
href="https://github.com/urllib3/urllib3/commit/0a375d19243efb08c9d8a0f3356701ca11ef9791"><code>0a375d1</code></a>
Raise <code>http.client.connect</code> audit events in
<code>HTTPConnection</code> (<a
href="https://redirect.github.com/urllib3/urllib3/issues/2859">#2859</a>)</li>
<li><a
href="https://github.com/urllib3/urllib3/commit/c056eb3df6aae4d1dff0365baded46235d413520"><code>c056eb3</code></a>
Bump actions/setup-python from 4.6.0 to 4.7.0</li>
<li><a
href="https://github.com/urllib3/urllib3/commit/a1c184b298823f13dd34c783d56ea538848282f1"><code>a1c184b</code></a>
Remove warnings filters fixed in pytest 7.4.0 (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3086">#3086</a>)</li>
<li><a
href="https://github.com/urllib3/urllib3/commit/609c5464cc9d2673549b651b713e07424517fa85"><code>609c546</code></a>
Add support for union operators to <code>HTTPHeaderDict</code> (<a
href="https://redirect.github.com/urllib3/urllib3/issues/2943">#2943</a>)</li>
<li><a
href="https://github.com/urllib3/urllib3/commit/05b21ca5d29764aae60c72e4e3bfceead0f70f95"><code>05b21ca</code></a>
Bump cryptography from 41.0.0 to 41.0.2</li>
<li><a
href="https://github.com/urllib3/urllib3/commit/9aa0d4f6cb0d4b34e20fafed4481ac7d785d4969"><code>9aa0d4f</code></a>
Bump cryptography from 39.0.1 to 41.0.0 (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3057">#3057</a>)</li>
<li><a
href="https://github.com/urllib3/urllib3/commit/326c4238cbabe85007aa7b1f2e80b880fd01d903"><code>326c423</code></a>
Rely on the standard library for checking hostnames in supported PyPy
releases</li>
<li><a
href="https://github.com/urllib3/urllib3/commit/d0ac08d58511c4121138bd46436076409d21acbf"><code>d0ac08d</code></a>
Bump gh-action-pypi-publish to v1.8.8</li>
<li>Additional commits viewable in <a
href="https://github.com/urllib3/urllib3/compare/1.26.12...2.0.4">compare
view</a></li>
</ul>
</details>
<br />

Updates `wrapt` from 1.14.1 to 1.15.0
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/GrahamDumpleton/wrapt/blob/develop/docs/changes.rst">wrapt's
changelog</a>.</em></p>
<blockquote>
<h2>Version 1.15.0</h2>
<p><strong>Bugs Fixed</strong></p>
<ul>
<li>
<p>When the C extension for wrapt was being used, and a property was
used on an
object proxy wrapping another object to intercept access to an attribute
of
the same name on the wrapped object, if the function implementing the
property
raised an exception, then the exception was ignored and not propagated
back to
the caller. What happened instead was that the original value of the
attribute
from the wrapped object was returned, thus silently suppressing that an
exception had occurred in the wrapper. This behaviour was not happening
when
the pure Python version of wrapt was being used, with it raising the
exception. The pure Python and C extension implementations thus did not
behave
the same.</p>
<p>Note that in the specific case that the exception raised is
AttributeError it
still wouldn't be raised. This is the case for both Python and C
extension
implementations. If a wrapper for an attribute internally raises an
AttributeError for some reason, the wrapper should if necessary catch
the
exception and deal with it, or propagate it as a different exception
type if
it is important that an exception still be passed back.</p>
</li>
<li>
<p>Address issue where the post import hook mechanism of wrapt wasn't
transparent
and left the <code>__loader__</code> and <code>__spec__.loader</code>
attributes of a module as
the wrapt import hook loader and not the original loader. That the
original
loader wasn't preserved could interfere with code which needed access to
the
original loader.</p>
</li>
<li>
<p>Address issues where a thread deadlock could occur within the wrapt
module
import handler, when code executed from a post import hook created a new
thread and code executed in the context of the new thread itself tried
to
register a post import hook, or imported a new module.</p>
</li>
<li>
<p>When using <code>CallableObjectProxy</code> as a wrapper for a type
or function and
calling the wrapped object, it was not possible to pass a keyword
argument
named <code>self</code>. This only occurred when using the pure Python
version of wrapt
and did not occur when using the C extension based implementation.</p>
</li>
<li>
<p>When using <code>PartialCallableObjectProxy</code> as a wrapper for a
type or function,
when constructing the partial object and when calling the partial
object, it
was not possible to pass a keyword argument named <code>self</code>.
This only occurred
when using the pure Python version of wrapt and did not occur when using
the C
extension based implementation.</p>
</li>
<li>
<p>When using <code>FunctionWrapper</code> as a wrapper for a type or
function and calling
the wrapped object, it was not possible to pass a keyword argument named
<code>self</code>. Because <code>FunctionWrapper</code> is also used by
decorators, this also
affected decorators on functions and class types. A similar issue also
arose
when these were applied to class and instance methods where binding
occurred</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/GrahamDumpleton/wrapt/commit/0634a79c934e4bbf11b4081d3f1610588d7ae4a6"><code>0634a79</code></a>
Merge branch 'release/1.15.0'</li>
<li><a
href="https://github.com/GrahamDumpleton/wrapt/commit/ba845c6793eab868cad957b2763fa121333fdfc1"><code>ba845c6</code></a>
Update version to 1.15.0 for release.</li>
<li><a
href="https://github.com/GrahamDumpleton/wrapt/commit/d446a4f340b93fed41dfe884aa0311195b301f16"><code>d446a4f</code></a>
Remove egg info directory.</li>
<li><a
href="https://github.com/GrahamDumpleton/wrapt/commit/c11181dc7b891c9e59391a24379f89a8cdac9092"><code>c11181d</code></a>
Set version to 1.15.0rc1 for release.</li>
<li><a
href="https://github.com/GrahamDumpleton/wrapt/commit/3a6a771877c934a740e4de538fbbddb4498ffd24"><code>3a6a771</code></a>
Need to install wheel package for bdist_wheel.</li>
<li><a
href="https://github.com/GrahamDumpleton/wrapt/commit/bb8d37af60eea5204fdf32f76c9f00b971a381bb"><code>bb8d37a</code></a>
Attempt to build a pure Python source wheel.</li>
<li><a
href="https://github.com/GrahamDumpleton/wrapt/commit/511a8cec1d19486ed12c5f18ee74f52f6c0e7e06"><code>511a8ce</code></a>
Remove .tox directory when doing clean.</li>
<li><a
href="https://github.com/GrahamDumpleton/wrapt/commit/32a07205a41020019add7a9e4e9bbf2def1d5aaf"><code>32a0720</code></a>
Fix issues when using keyword argument named self with weak function
proxy.</li>
<li><a
href="https://github.com/GrahamDumpleton/wrapt/commit/4e09f7ac1d8e936a707ad33f84edb55c248a144c"><code>4e09f7a</code></a>
Fix issues when using keyword argument named self with function wrappers
and ...</li>
<li><a
href="https://github.com/GrahamDumpleton/wrapt/commit/ee6bab6989fdcf1eeedf1601f8f23fcff3e95730"><code>ee6bab6</code></a>
On Python 2 the format of exception differs to Python 3.</li>
<li>Additional commits viewable in <a
href="https://github.com/GrahamDumpleton/wrapt/compare/1.14.1...1.15.0">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
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.

jaeger query repeating log lines
2 participants