Skip to content

Bump idna from 2.9 to 3.7 in /extra/libcbor/doc/source - #13

Closed
dependabot[bot] wants to merge 1 commit into
8.0from
dependabot/pip/extra/libcbor/doc/source/idna-3.7
Closed

Bump idna from 2.9 to 3.7 in /extra/libcbor/doc/source#13
dependabot[bot] wants to merge 1 commit into
8.0from
dependabot/pip/extra/libcbor/doc/source/idna-3.7

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Apr 11, 2024

Copy link
Copy Markdown

Bumps idna from 2.9 to 3.7.

Release notes

Sourced from idna's releases.

v3.7

What's Changed

  • Fix issue where specially crafted inputs to encode() could take exceptionally long amount of time to process. [CVE-2024-3651]

Thanks to Guido Vranken for reporting the issue.

Full Changelog: kjd/idna@v3.6...v3.7

Changelog

Sourced from idna's changelog.

3.7 (2024-04-11) ++++++++++++++++

  • Fix issue where specially crafted inputs to encode() could take exceptionally long amount of time to process. [CVE-2024-3651]

Thanks to Guido Vranken for reporting the issue.

3.6 (2023-11-25) ++++++++++++++++

  • Fix regression to include tests in source distribution.

3.5 (2023-11-24) ++++++++++++++++

  • Update to Unicode 15.1.0
  • String codec name is now "idna2008" as overriding the system codec "idna" was not working.
  • Fix typing error for codec encoding
  • "setup.cfg" has been added for this release due to some downstream lack of adherence to PEP 517. Should be removed in a future release so please prepare accordingly.
  • Removed reliance on a symlink for the "idna-data" tool to comport with PEP 517 and the Python Packaging User Guide for sdist archives.
  • Added security reporting protocol for project

Thanks Jon Ribbens, Diogo Teles Sant'Anna, Wu Tingfeng for contributions to this release.

3.4 (2022-09-14) ++++++++++++++++

  • Update to Unicode 15.0.0
  • Migrate to pyproject.toml for build information (PEP 621)
  • Correct another instance where generic exception was raised instead of IDNAError for malformed input
  • Source distribution uses zeroized file ownership for improved reproducibility

Thanks to Seth Michael Larson for contributions to this release.

3.3 (2021-10-13) ++++++++++++++++

  • Update to Unicode 14.0.0
  • Update to in-line type annotations
  • Throw IDNAError exception correctly for some malformed input
  • Advertise support for Python 3.10
  • Improve testing regime on Github

... (truncated)

Commits
  • 1d365e1 Release v3.7
  • c1b3154 Merge pull request #172 from kjd/optimize-contextj
  • 0394ec7 Merge branch 'master' into optimize-contextj
  • cd58a23 Merge pull request #152 from elliotwutingfeng/dev
  • 5beb28b More efficient resolution of joiner contexts
  • 1b12148 Update ossf/scorecard-action to v2.3.1
  • d516b87 Update Github actions/checkout to v4
  • c095c75 Merge branch 'master' into dev
  • 60a0a4c Fix typo in GitHub Actions workflow key
  • 5918a0e Merge branch 'master' into dev
  • Additional commits viewable in compare view

Dependabot compatibility score

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 commands and options

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
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    You can disable automated security fix PRs for this repo from the Security Alerts page.

Bumps [idna](https://github.com/kjd/idna) from 2.9 to 3.7.
- [Release notes](https://github.com/kjd/idna/releases)
- [Changelog](https://github.com/kjd/idna/blob/master/HISTORY.rst)
- [Commits](kjd/idna@v2.9...v3.7)

---
updated-dependencies:
- dependency-name: idna
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python Pull requests that update Python code labels Apr 11, 2024
@dependabot @github

dependabot Bot commented on behalf of github May 6, 2024

Copy link
Copy Markdown
Author

Superseded by #14.

@dependabot dependabot Bot closed this May 6, 2024
@dependabot
dependabot Bot deleted the dependabot/pip/extra/libcbor/doc/source/idna-3.7 branch May 6, 2024 15:15
shanth96 pushed a commit that referenced this pull request Jul 28, 2025
…tion fault

https://perconadev.atlassian.net/browse/PS-9719

Problem
-------
When changing binlog_transaction_dependency_tracking in high load
workload, MySQL can get a segmentation fault.

Analysis
--------
Address sanitizer runs exposed the heap-use-after-free.

READ of size 8 at 0x6030002c3298 thread T52
    #0 _M_hash_code()
    #1 _M_bucket_index()
    ..
    #7 std::unordered_map::insert()
    #8 Writeset_trx_dependency_tracker::get_dependency()
    #9 Transaction_dependency_tracker::get_dependency()
    #10 MYSQL_BIN_LOG::write_transaction()
    #11 binlog_cache_data::flush()
    #12 binlog_cache_mngr::flush()
    #13 MYSQL_BIN_LOG::flush_thread_caches()
    #14 MYSQL_BIN_LOG::process_flush_stage_queue()
    #15 MYSQL_BIN_LOG::ordered_commit()
    #16 MYSQL_BIN_LOG::commit()

freed by thread T49 here:
    #0 operator delete()
    ...
    #7 std::unordered_map::clear()
    #8 Writeset_trx_dependency_tracker::rotate(long)
    #9 Transaction_dependency_tracker::tracking_mode_changed()
    #10 update_binlog_transaction_dependency_tracking
    #11 sys_var::update()

- The Writeset_trx_dependency_tracker uses std::unordered_map for
  storing depdendency information.
- When a transaction is committing, the committing thread inserts the
  dependency information to this map in through get_dependency().
- When the tracking mode is changed, then the map is cleared by
  Writeset_trx_dependency_tracker::rotate(). Note that no lock/mutex is
  taken during the rotation.
- As the rotate() and get_dependency() operations can be concurrently
  called from different threads and there is no mutex protection to
  handle it, it can result in segmentation fault when the get_dependency()
  tries to insert to the already deleted map.

Solution
--------
Use std::shared_ptr with atomic load/store for safer dependency tracker map rotation.

- Replaced direct usage of of map with std::shared_ptr in the
  Writeset_trx_dependency_tracker class.
- Modified the implementation of rotate() to used std::atomic_load and
  std::atomic_store to enable thread-safe reads and rotations.

With the new solution the rotation happens in an atomic manner. So that
transactions calling get_dependency() always use the object returned by
shared_ptr. So, even if rotate() happens in parallel, the memory won't
be freed until all readers are done.
ben-thul pushed a commit that referenced this pull request Aug 19, 2026
…lability)

Debug-build CI runs of percona.acl_mdl_scalability sporadically crash
with:

    debug_sync.cc:943: void debug_sync_remove_action(...): Assertion
    `current_thd == nullptr || ds_control == current_thd->debug_sync_control'
    failed.
     #9  debug_sync_remove_action          sql/debug_sync.cc:943
     #10 debug_sync(THD*, ...)             sql/debug_sync.cc:1951
     #11 MDL_lock::visit_subgraph          sql/mdl.cc:3924
     #12 MDL_ticket::accept_visitor        sql/mdl.cc:4062
     #13 MDL_context::visit_subgraph       sql/mdl.cc:4086
     #14 MDL_lock::visit_subgraph          sql/mdl.cc:4027   <-- recursion
     ...
     #17 MDL_context::find_deadlock        sql/mdl.cc:4111

The "acl_mdl_dead_lock" sync point (added by PS-7143) fires inside
MDL_lock::visit_subgraph() on src_ctx->get_thd() - the THD owning the
*visited* waiting ticket. At recursion depth >= 2 of the wait-for-graph
walk that THD belongs to another connection. debug_sync() then executes
and removes an action on that other connection's debug_sync_control,
which has no locking: the whole facility assumes a sync point is only
ever hit by the THD's owner thread.

In the test, 500 sessions each arm "acl_mdl_dead_lock" on themselves and
then run deadlock detection concurrently over a shared wait-for graph,
so one detector can consume/remove another session's action while that
session (or a third detector) does the same - a genuine data race on
ds_active and the action array, caught by the debug assertion.

Fix: fire the sync point only when the visited ticket belongs to the
thread running the deadlock detection (the initial node of the walk,
src_ctx->get_thd() == current_thd). That depth-1 hit is the only one
the test's SIGNAL dead_locked / WAIT_FOR resume_wait_graph choreography
relies on; each session now executes its own action exactly once, and
no thread ever touches a foreign debug_sync_control. Non-debug-sync
builds are unaffected.

Verified: percona.acl_mdl_scalability passes 4/4 consecutive --big-test
runs (debug build) with clean server shutdown.

Note: the rpl.rpl_innodb_auto_increment mysqld.2.err logs attached to
the CI failure show a fully clean shutdown; the failed-shutdown verdict
belonged to the acl_mdl_scalability server crash above.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python Pull requests that update Python code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants