Skip to content

gix-utils v0.3.4

Choose a tag to compare

@Byron Byron released this 15 Jul 03:49
27aec47

New Features

  • add rng module to gix-utils for better inter-process seeding
    This should avoid flaky capability tests of multiple process acting on the
    same repository.

Bug Fixes

  • seed fast pseudo-random numbers to differ across processes
    gix-utils and gix-fs drew fast pseudo-random numbers from fastrand's
    global generators, whose per-thread seed is derived only from values that
    can coincide between separate processes (notably small thread IDs). Two
    concurrently running processes could therefore produce identical sequences,
    which weakens backoff jitter (meant to avoid a thundering herd of retries)
    and can make the filesystem capability probes collide on their temporary
    file names -- e.g. spuriously reporting that symlinks are unsupported (#1789).

    Add a gix_utils::rng module that draws from a per-thread fastrand::Rng
    seeded from a high-entropy OS source via getrandom, and route the affected
    call sites (backoff jitter and the gix-fs capability probes) through it.

    getrandom is a target-specific dependency that is excluded on
    wasm32-unknown-unknown, which has no entropy backend by default and runs a
    single process; there a best-effort seed is used that deliberately avoids
    Instant::now() (which panics on that target).

    For #1816

Commit Statistics

  • 5 commits contributed to the release.
  • 50 days passed between releases.
  • 2 commits were understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Merge pull request #2663 from ameyypawar/fix/1816-rng-seed (386f31a)
    • Add rng module to gix-utils for better inter-process seeding (96ead72)
    • Auto-review (bf4b474)
    • Seed fast pseudo-random numbers to differ across processes (efa5ffc)
    • Merge pull request #2618 from GitoxideLabs/report (f7d4f33)