Skip to content

Update Rust crate time to v0.3.47 [SECURITY] - autoclosed#8364

Closed
hash-worker[bot] wants to merge 1 commit intomainfrom
deps/rs/crate-time-vulnerability
Closed

Update Rust crate time to v0.3.47 [SECURITY] - autoclosed#8364
hash-worker[bot] wants to merge 1 commit intomainfrom
deps/rs/crate-time-vulnerability

Conversation

@hash-worker
Copy link
Contributor

@hash-worker hash-worker bot commented Feb 5, 2026

This PR contains the following updates:

Package Type Update Change
time (source) workspace.dependencies patch 0.3.44 -> 0.3.47

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.

GitHub Vulnerability Alerts

CVE-2026-25727

Impact

When user-provided input is provided to any type that parses with the RFC 2822 format, a Denial of Service attack via stack exhaustion is possible. The attack relies on formally deprecated and rarely-used features that are part of the RFC 2822 format used in a malicious manner. Ordinary, non-malicious input will never encounter this scenario.

Patches

A limit to the depth of recursion was added in v0.3.47. From this version, an error will be returned rather than exhausting the stack.

Workarounds

Limiting the length of user input is the simplest way to avoid stack exhaustion, as the amount of the stack consumed would be at most a factor of the length of the input.


Release Notes

time-rs/time (time)

v0.3.47

Compare Source

Security
  • The possibility of a stack exhaustion denial of service attack when parsing RFC 2822 has been
    eliminated. Previously, it was possible to craft input that would cause unbounded recursion. Now,
    the depth of the recursion is tracked, causing an error to be returned if it exceeds a reasonable
    limit.

    This attack vector requires parsing user-provided input, with any type, using the RFC 2822 format.

Compatibility
  • Attempting to format a value with a well-known format (i.e. RFC 3339, RFC 2822, or ISO 8601) will
    error at compile time if the type being formatted does not provide sufficient information. This
    would previously fail at runtime. Similarly, attempting to format a value with ISO 8601 that is
    only configured for parsing (i.e. Iso8601::PARSING) will error at compile time.
Added
  • Builder methods for format description modifiers, eliminating the need for verbose initialization
    when done manually.
  • date!(2026-W01-2) is now supported. Previously, a space was required between W and 01.
  • [end] now has a trailing_input modifier which can either be prohibit (the default) or
    discard. When it is discard, all remaining input is ignored. Note that if there are components
    after [end], they will still attempt to be parsed, likely resulting in an error.
Changed
  • More performance gains when parsing.
Fixed
  • If manually formatting a value, the number of bytes written was one short for some components.
    This has been fixed such that the number of bytes written is always correct.
  • The possibility of integer overflow when parsing an owned format description has been effectively
    eliminated. This would previously wrap when overflow checks were disabled. Instead of storing the
    depth as u8, it is stored as u32. This would require multiple gigabytes of nested input to
    overflow, at which point we've got other problems and trivial mitigations are available by
    downstream users.

v0.3.46

Compare Source

Added
  • All possible panics are now documented for the relevant methods.

  • The need to use #[serde(default)] when using custom serde formats is documented. This applies
    only when deserializing an Option<T>.

  • Duration::nanoseconds_i128 has been made public, mirroring
    std::time::Duration::from_nanos_u128.

  • Various methods for truncating components have been added, avoiding the need to call the fallible
    replace methods multiple times.

    For PrimitiveDateTime, UtcDateTime, and OffsetDateTime:

    • truncate_to_day

    For Time, PrimitiveDateTime, UtcDateTime, and OffsetDateTime:

    • truncate_to_hour
    • truncate_to_minute
    • truncate_to_second
    • truncate_to_millisecond
    • truncate_to_microsecond
Changed
  • The minimum supported Rust version is now 1.88.0.
  • Significant performance gains in numerous locations. No public APIs were changed or removed as
    part of this.
  • The size of error::ComponentRange, along with types that contain it, has been significantly
    reduced.
Fixed
  • The PartialOrd and Ord implementations of UtcOffset now return the expected result.

v0.3.45

Compare Source

Added
  • time::format_description::StaticFormatDescription type alias for &'static [BorrowedFormatItem<'static>]. This is the type returned by the
    time::macros::format_description! macro.
Changed
  • The minimum supported Rust version is now 1.83.0.
  • All floating point methods on Duration are now const fn.
  • All setters on Parsed are now const fn.
  • The serde dependency has been replaced with serde_core, This reduces compile times by not
    including unused parts of serde.
  • Date::from_julian_day uses a new algorithm, resulting in an approximately 16% performance
    improvement. This method is used internally by numerous other methods.
  • util::is_leap_year uses a new algorithm, resulting in an approximately 8% performance
    improvement.

Configuration

📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

@hash-worker hash-worker bot enabled auto-merge February 5, 2026 18:56
@vercel
Copy link

vercel bot commented Feb 5, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
hash Ready Ready Preview, Comment Feb 5, 2026 7:04pm
hashdotdesign Ready Ready Preview, Comment Feb 5, 2026 7:04pm
hashdotdesign-tokens Ready Ready Preview, Comment Feb 5, 2026 7:04pm
petrinaut Ready Ready Preview Feb 5, 2026 7:04pm

@cursor
Copy link

cursor bot commented Feb 5, 2026

PR Summary

Low Risk
Lockfile-only dependency bump to time and its transitive crates to address a known RFC 2822 parsing DoS; no application code changes.

Overview
Updates the Rust dependency time from 0.3.44 to 0.3.47 (security patch) via Cargo.lock, pulling in corresponding updates to time-core/time-macros and num-conv.

The lockfile also reflects time’s dependency change from serde to serde_core.

Written by Cursor Bugbot for commit 3a31c9a. This will update automatically on new commits. Configure here.

@github-actions github-actions bot added the area/deps Relates to third-party dependencies (area) label Feb 5, 2026
@augmentcode
Copy link

augmentcode bot commented Feb 5, 2026

🤖 Augment PR Summary

Summary: Updates the Rust time crate from 0.3.44 to 0.3.47.

Why: Pulls in the upstream security fix for RFC 2822 parsing that prevents stack-exhaustion DoS by bounding recursion depth.

🤖 Was this summary useful? React with 👍 or 👎

Copy link

@augmentcode augmentcode bot left a comment

Choose a reason for hiding this comment

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

Review completed. No suggestions at this time.

Comment augment review to trigger a new review at any time.

@codspeed-hq
Copy link

codspeed-hq bot commented Feb 5, 2026

CodSpeed Performance Report

Merging this PR will not alter performance

Comparing deps/rs/crate-time-vulnerability (3a31c9a) with main (1492bce)1

Summary

✅ 21 untouched benchmarks
🗄️ 12 archived benchmarks run2

Footnotes

  1. No successful run was found on main (6a02553) during the generation of this report, so 1492bce was used instead as the comparison base. There might be some changes unrelated to this pull request in this report.

  2. 12 benchmarks were run, but are now archived. If they were deleted in another branch, consider rebasing to remove them from the report. Instead if they were added back, click here to restore them.

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2026

Benchmark results

@rust/hash-graph-benches – Integrations

policy_resolution_large

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 2002 $$28.5 \mathrm{ms} \pm 180 \mathrm{μs}\left({\color{red}6.20 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$3.49 \mathrm{ms} \pm 19.7 \mathrm{μs}\left({\color{gray}4.71 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 1001 $$13.8 \mathrm{ms} \pm 77.4 \mathrm{μs}\left({\color{red}5.99 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: high, policies: 3314 $$44.8 \mathrm{ms} \pm 351 \mathrm{μs}\left({\color{gray}2.12 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: low, policies: 1 $$15.5 \mathrm{ms} \pm 91.7 \mathrm{μs}\left({\color{gray}4.09 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: medium, policies: 1526 $$25.0 \mathrm{ms} \pm 178 \mathrm{μs}\left({\color{gray}2.14 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 2078 $$45.7 \mathrm{ms} \pm 233 \mathrm{μs}\left({\color{gray}4.95 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$22.6 \mathrm{ms} \pm 108 \mathrm{μs}\left({\color{red}6.74 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 1033 $$33.6 \mathrm{ms} \pm 151 \mathrm{μs}\left({\color{red}15.9 \mathrm{\%}}\right) $$ Flame Graph

policy_resolution_medium

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 102 $$4.03 \mathrm{ms} \pm 21.9 \mathrm{μs}\left({\color{red}11.2 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$3.05 \mathrm{ms} \pm 15.5 \mathrm{μs}\left({\color{red}7.92 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 51 $$3.56 \mathrm{ms} \pm 25.2 \mathrm{μs}\left({\color{red}12.3 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: high, policies: 269 $$5.44 \mathrm{ms} \pm 34.6 \mathrm{μs}\left({\color{red}8.79 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: low, policies: 1 $$3.72 \mathrm{ms} \pm 20.8 \mathrm{μs}\left({\color{red}10.2 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: medium, policies: 107 $$4.31 \mathrm{ms} \pm 23.3 \mathrm{μs}\left({\color{red}9.30 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 133 $$4.84 \mathrm{ms} \pm 27.7 \mathrm{μs}\left({\color{red}15.1 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$3.59 \mathrm{ms} \pm 17.5 \mathrm{μs}\left({\color{red}11.7 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 63 $$4.37 \mathrm{ms} \pm 30.2 \mathrm{μs}\left({\color{red}13.7 \mathrm{\%}}\right) $$ Flame Graph

policy_resolution_none

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 2 $$2.49 \mathrm{ms} \pm 12.0 \mathrm{μs}\left({\color{gray}4.05 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$2.43 \mathrm{ms} \pm 13.3 \mathrm{μs}\left({\color{gray}3.83 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 1 $$2.55 \mathrm{ms} \pm 15.4 \mathrm{μs}\left({\color{red}5.39 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 8 $$2.81 \mathrm{ms} \pm 15.2 \mathrm{μs}\left({\color{red}6.60 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$2.64 \mathrm{ms} \pm 16.1 \mathrm{μs}\left({\color{gray}4.75 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 3 $$2.85 \mathrm{ms} \pm 16.9 \mathrm{μs}\left({\color{red}6.13 \mathrm{\%}}\right) $$ Flame Graph

policy_resolution_small

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 52 $$2.91 \mathrm{ms} \pm 16.1 \mathrm{μs}\left({\color{red}5.18 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$2.60 \mathrm{ms} \pm 15.1 \mathrm{μs}\left({\color{red}6.77 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 25 $$2.79 \mathrm{ms} \pm 17.6 \mathrm{μs}\left({\color{red}7.08 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: high, policies: 94 $$3.44 \mathrm{ms} \pm 17.0 \mathrm{μs}\left({\color{red}10.3 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: low, policies: 1 $$2.99 \mathrm{ms} \pm 14.4 \mathrm{μs}\left({\color{red}12.8 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: medium, policies: 26 $$3.21 \mathrm{ms} \pm 23.0 \mathrm{μs}\left({\color{red}12.5 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 66 $$3.32 \mathrm{ms} \pm 21.9 \mathrm{μs}\left({\color{red}10.4 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$2.80 \mathrm{ms} \pm 14.2 \mathrm{μs}\left({\color{red}5.23 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 29 $$3.13 \mathrm{ms} \pm 22.9 \mathrm{μs}\left({\color{red}8.61 \mathrm{\%}}\right) $$ Flame Graph

read_scaling_complete

Function Value Mean Flame graphs
entity_by_id;one_depth 1 entities $$42.8 \mathrm{ms} \pm 170 \mathrm{μs}\left({\color{red}9.38 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 10 entities $$80.6 \mathrm{ms} \pm 443 \mathrm{μs}\left({\color{gray}3.88 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 25 entities $$45.7 \mathrm{ms} \pm 207 \mathrm{μs}\left({\color{gray}3.53 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 5 entities $$50.2 \mathrm{ms} \pm 230 \mathrm{μs}\left({\color{red}6.22 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 50 entities $$58.5 \mathrm{ms} \pm 411 \mathrm{μs}\left({\color{red}7.80 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 1 entities $$45.6 \mathrm{ms} \pm 201 \mathrm{μs}\left({\color{red}11.5 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 10 entities $$416 \mathrm{ms} \pm 1.57 \mathrm{ms}\left({\color{gray}-0.934 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 25 entities $$103 \mathrm{ms} \pm 509 \mathrm{μs}\left({\color{red}6.17 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 5 entities $$89.3 \mathrm{ms} \pm 410 \mathrm{μs}\left({\color{red}5.25 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 50 entities $$328 \mathrm{ms} \pm 1.31 \mathrm{ms}\left({\color{red}15.7 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 1 entities $$16.2 \mathrm{ms} \pm 80.0 \mathrm{μs}\left({\color{red}12.5 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 10 entities $$16.1 \mathrm{ms} \pm 89.4 \mathrm{μs}\left({\color{red}7.83 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 25 entities $$16.6 \mathrm{ms} \pm 108 \mathrm{μs}\left({\color{red}7.28 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 5 entities $$16.2 \mathrm{ms} \pm 65.5 \mathrm{μs}\left({\color{red}7.95 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 50 entities $$19.5 \mathrm{ms} \pm 95.9 \mathrm{μs}\left({\color{red}10.8 \mathrm{\%}}\right) $$ Flame Graph

read_scaling_linkless

Function Value Mean Flame graphs
entity_by_id 1 entities $$16.0 \mathrm{ms} \pm 64.2 \mathrm{μs}\left({\color{red}10.5 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 10 entities $$16.3 \mathrm{ms} \pm 63.1 \mathrm{μs}\left({\color{red}11.6 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 100 entities $$16.3 \mathrm{ms} \pm 67.0 \mathrm{μs}\left({\color{red}10.6 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 1000 entities $$16.6 \mathrm{ms} \pm 74.3 \mathrm{μs}\left({\color{red}9.13 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 10000 entities $$24.5 \mathrm{ms} \pm 169 \mathrm{μs}\left({\color{red}10.5 \mathrm{\%}}\right) $$ Flame Graph

representative_read_entity

Function Value Mean Flame graphs
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/block/v/1 $$32.1 \mathrm{ms} \pm 304 \mathrm{μs}\left({\color{red}9.97 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/book/v/1 $$32.1 \mathrm{ms} \pm 275 \mathrm{μs}\left({\color{red}11.7 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/building/v/1 $$30.9 \mathrm{ms} \pm 287 \mathrm{μs}\left({\color{red}8.00 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/organization/v/1 $$31.0 \mathrm{ms} \pm 284 \mathrm{μs}\left({\color{red}7.10 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/page/v/2 $$31.8 \mathrm{ms} \pm 289 \mathrm{μs}\left({\color{red}5.47 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/person/v/1 $$31.1 \mathrm{ms} \pm 297 \mathrm{μs}\left({\color{red}5.19 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/playlist/v/1 $$31.6 \mathrm{ms} \pm 253 \mathrm{μs}\left({\color{red}10.9 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/song/v/1 $$32.4 \mathrm{ms} \pm 282 \mathrm{μs}\left({\color{red}11.9 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/uk-address/v/1 $$31.1 \mathrm{ms} \pm 313 \mathrm{μs}\left({\color{red}6.69 \mathrm{\%}}\right) $$ Flame Graph

representative_read_entity_type

Function Value Mean Flame graphs
get_entity_type_by_id Account ID: bf5a9ef5-dc3b-43cf-a291-6210c0321eba $$8.56 \mathrm{ms} \pm 33.2 \mathrm{μs}\left({\color{red}7.04 \mathrm{\%}}\right) $$ Flame Graph

representative_read_multiple_entities

Function Value Mean Flame graphs
entity_by_property traversal_paths=0 0 $$50.2 \mathrm{ms} \pm 320 \mathrm{μs}\left({\color{red}9.15 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=255 1,resolve_depths=inherit:1;values:255;properties:255;links:127;link_dests:126;type:true $$98.9 \mathrm{ms} \pm 354 \mathrm{μs}\left({\color{red}5.33 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:0;properties:0;links:0;link_dests:0;type:false $$56.0 \mathrm{ms} \pm 199 \mathrm{μs}\left({\color{red}6.09 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:0;properties:0;links:1;link_dests:0;type:true $$64.2 \mathrm{ms} \pm 265 \mathrm{μs}\left({\color{red}7.02 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:0;properties:2;links:1;link_dests:0;type:true $$72.8 \mathrm{ms} \pm 335 \mathrm{μs}\left({\color{red}6.49 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:2;properties:2;links:1;link_dests:0;type:true $$79.9 \mathrm{ms} \pm 323 \mathrm{μs}\left({\color{red}6.52 \mathrm{\%}}\right) $$
link_by_source_by_property traversal_paths=0 0 $$54.1 \mathrm{ms} \pm 270 \mathrm{μs}\left({\color{red}5.89 \mathrm{\%}}\right) $$
link_by_source_by_property traversal_paths=255 1,resolve_depths=inherit:1;values:255;properties:255;links:127;link_dests:126;type:true $$81.1 \mathrm{ms} \pm 345 \mathrm{μs}\left({\color{red}5.78 \mathrm{\%}}\right) $$
link_by_source_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:0;properties:0;links:0;link_dests:0;type:false $$61.1 \mathrm{ms} \pm 232 \mathrm{μs}\left({\color{red}7.60 \mathrm{\%}}\right) $$
link_by_source_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:0;properties:0;links:1;link_dests:0;type:true $$69.2 \mathrm{ms} \pm 396 \mathrm{μs}\left({\color{red}8.27 \mathrm{\%}}\right) $$
link_by_source_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:0;properties:2;links:1;link_dests:0;type:true $$70.1 \mathrm{ms} \pm 289 \mathrm{μs}\left({\color{red}6.23 \mathrm{\%}}\right) $$
link_by_source_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:2;properties:2;links:1;link_dests:0;type:true $$71.1 \mathrm{ms} \pm 312 \mathrm{μs}\left({\color{red}6.51 \mathrm{\%}}\right) $$

scenarios

Function Value Mean Flame graphs
full_test query-limited $$135 \mathrm{ms} \pm 641 \mathrm{μs}\left({\color{gray}-1.711 \mathrm{\%}}\right) $$ Flame Graph
full_test query-unlimited $$137 \mathrm{ms} \pm 593 \mathrm{μs}\left({\color{gray}-1.338 \mathrm{\%}}\right) $$ Flame Graph
linked_queries query-limited $$104 \mathrm{ms} \pm 555 \mathrm{μs}\left({\color{gray}-1.204 \mathrm{\%}}\right) $$ Flame Graph
linked_queries query-unlimited $$615 \mathrm{ms} \pm 3.40 \mathrm{ms}\left({\color{gray}-4.472 \mathrm{\%}}\right) $$ Flame Graph

@hash-worker hash-worker bot changed the title Update Rust crate time to v0.3.47 [SECURITY] Update Rust crate time to v0.3.47 [SECURITY] - autoclosed Feb 9, 2026
@hash-worker hash-worker bot closed this Feb 9, 2026
auto-merge was automatically disabled February 9, 2026 13:41

Pull request was closed

@hash-worker hash-worker bot deleted the deps/rs/crate-time-vulnerability branch February 9, 2026 13:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/deps Relates to third-party dependencies (area)

Development

Successfully merging this pull request may close these issues.

2 participants