GSA / Challenge_gov

Other
29 stars 13 forks source link

Bump oban from 2.13.5 to 2.18.2 #1411

Open dependabot[bot] opened 3 weeks ago

dependabot[bot] commented 3 weeks ago

Bumps oban from 2.13.5 to 2.18.2.

Release notes

Sourced from oban's releases.

v2.18.2

Bug Fixes

  • [Repo] Prevent debug noise by ensuring default opts for standard transactions.

    Without default opts each transaction is logged. Many standard operations execute each second, which makes for noisy logs. Now transaction opts are passed as a third argument to ensure defaults are applied.

  • [Repo] Increase transaction retry delay and increase with each attempt.

    Bump the base transaction retry from 100ms to 500ms, and increase linearly between each successive attempt to provide deeper backoff. This alleviates pressure on smaller connection pools and gives more time to recover from contentions failures.

v2.18.1

Enhancements

  • [Repo] Automatically retry all transactions with backoff.

    Avoid both expected an unexpected database errors by automatically retrying transactions. Some operations, such as serialization and lock not available errors, are likely to occur during standard use depending on how a database is configured. Other errors happen infrequently due to pool contention or flickering connections, and those should also be retried for increased safety.

    This change is applied to Oban.Repo.transaction/3 itself, so it will apply to every location that uses transactions.

  • [Migration] Declare tags as an array of text rather than varchar.

    We don't provide a limit on the size of tags and they could conceivably be larger than 256 characters. Externally the types are interchangeable, but internally there are minor advantages to using the text type.

    There isn't a new migration; this change is only for new tables.

Bug Fixes

  • [Repo] Correctly dispatch query!/4 to query! rather than query without a bang.

v2.18.0

πŸ”­ Queue Shutdown Telemetry

A new queue shutdown event, [:oban, :queue, :shutdown], is emitted by each queue when it terminates. The event originates from the watchman process, which tracks the total ellapsed time from when termination starts to when all jobs complete or the allotted period is exhausted.

Any jobs that take longer than the :shutdown_grace_period (by default 15 seconds) are brutally killed and left as orphans. The ids of jobs left in an executing state are listed in the event's orphaned meta.

This also adds queue:shutdown logging to the default logger. Only queues that shutdown with orphaned jobs are logged, which makes it easier to detect orphaned jobs and which jobs were affected:

[
  message: "jobs were orphaned because they didn't finish executing in the allotted time",
  queue: "alpha",
  source: "oban",
  event: "queue:shutdown",
  ellapsed: 500,
  orphaned: [101, 102, 103]
]

... (truncated)

Changelog

Sourced from oban's changelog.

v2.18.2 β€” 2024-08-16

  • [Repo] Prevent debug noise by ensuring default opts for standard transactions.

    Without default opts each transaction is logged. Many standard operations execute each second, which makes for noisy logs. Now transaction opts are passed as a third argument to ensure defaults are applied.

  • [Repo] Increase transaction retry delay and increase with each attempt.

    Bump the base transaction retry from 100ms to 500ms, and increase linearly between each successive attempt to provide deeper backoff. This alleviates pressure on smaller connection pools and gives more time to recover from contentions failures.

v2.18.1 β€” 2024-08-15

Enhancements

  • [Repo] Automatically retry all transactions with backoff.

    Avoid both expected an unexpected database errors by automatically retrying transactions. Some operations, such as serialization and lock not available errors, are likely to occur during standard use depending on how a database is configured. Other errors happen infrequently due to pool contention or flickering connections, and those should also be retried for increased safety.

    This change is applied to Oban.Repo.transaction/3 itself, so it will apply to every location that uses transactions.

  • [Migration] Declare tags as an array of text rather than varchar.

    We don't provide a limit on the size of tags and they could conceivably be larger than 256 characters. Externally the types are interchangeable, but internally there are minor advantages to using the text type.

    There isn't a new migration; this change is only for new tables.

Bug Fixes

  • [Repo] Correctly dispatch query!/4 to query! rather than query without a bang.

v2.18.0 β€” 2024-07-26

Enhancements

  • [Job] Support simple unique: true and unique: false declarations

    Uniqueness can now be enabled with unique: true and disabled with unique: false from job options or a worker definition. The unique: true option uses all the standard defaults, but sets the period to :infinity for compatibility with Oban Pro's new simple unique mode.

... (truncated)

Commits
  • 65d75e0 Release v2.18.2
  • 2c47480 Increase xact retry delay and increase per attempt
  • f07ee21 Ensure default opts for standard transactions
  • 141f403 Release v2.18.1
  • d5eb591 Bump ecto_sql to 3.12.0 and ecto_sqlite3 to 0.17 (#1135)
  • eec82cc Document that timeouts raise an Oban.TimeoutError
  • bf7f0bf Automatically retry transactions with backoff
  • 4715ea5 Declare tags as a text array rather than varchar
  • 4d124e5 Note lack of unique conflicts for insert_all in README (#1133)
  • bbc4291 Bump postgrex from 0.18.0 to 0.19.0 in the production-dependencies group (#1131)
  • 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 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)