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

Bump oban from 2.17.3 to 2.17.4 #780

Merged
merged 1 commit into from
Feb 19, 2024
Merged

Conversation

dependabot[bot]
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Feb 19, 2024

Bumps oban from 2.17.3 to 2.17.4.

Release notes

Sourced from oban's releases.

v2.17.4

Enhancements

  • [Notifier] Add Notifier.status/1 to expose cluster connectivty status for diagnostics.

    Notifier gains status/1, backed by an internal Sonar process, for access to cluster diagnostics. This will help identify whether the current node can communicate with other nodes for vital functionality such as staging jobs.

    A new [:oban, :notifier, :switch] telemetry event is emitted for diagnostic instrumentation and switch events are displayed by the default logger.

  • [Stager] Use notifier status and leadership checks to switch between global and local mode.

    The sonar-backed notifier status is more accurate than the ad-hoc stager checks previously used to check connectivity. Now the staging mode is determined by a combination of sonar and leadership—isolated follower nodes will correctly switch to :local (polling) mode.

    The new detection mechanism prevents an infrequent and difficult to spot bug where isolated follower nodes wouldn't process jobs.

  • [Backoff] Catch GenServer timeouts in with_retry/2.

    Backoff's with_retry/2 function previously rescued and retried known database exceptions, and it didn't catch exits. Now it also catches timeout errors to accommodate synchronized call based acks like those used in Pro's Smart engine in sync mode.

  • [Stager] Avoid transactions on follower nodes.

    Only the leader needs to execute a transaction while staging. This change prevents pointless empty transactions from each follower node every second. Now there are 60 staging transactions per minute across the whole cluster, rather than 60 from each node.

  • [Notifier] Unify public function type signatures and accept a name or conf in all public functions.

  • [Plugins] Always validate and build state in start_link/1

    Error messages and stack traces are clearer when errors come from start_link/1 rather than init/1, and it avoids starting processes that will immediately crash.

    This also hides child_spec/1 in all public modules to keep it out of documentation.

  • [Basic] Skip taking advisory locks in testing modes.

    Advisory locks are global and apply across transactions. That can break async tests with overlapping unique jobs because the lock is held in a concurrent, sandboxed test.

Bug Fixes

  • [Engine] Ensure uniqueness across args when no keys are specified regardless of insertion order.

  • [Basic] Force materializing the CTE when fetching jobs.

    The CTE used to prevent optimizations in the Basic engine's fetch query is only referenced once, which may allow the Postgres optimizer to inline it. Inlining can negate the CTE "optimization fence", so we force the CTE to be materialized.

  • [Job] Restore default priority in the schema.

    A default was still set in the database, but it was erroneously removed from the Job schema.

  • [Job] Fix unique typespec by unwrapping the field type.

Changelog

Sourced from oban's changelog.

v2.17.4 — 2023-02-16

Enhancements

  • [Notifier] Add Notifier.status/1 to expose cluster connectivty status for diagnostics.

    Notifier gains status/1, backed by an internal Sonar process, for access to cluster diagnostics. This will help identify whether the current node can communicate with other nodes for vital functionality such as staging jobs.

    A new [:oban, :notifier, :switch] telemetry event is emitted for diagnostic instrumentation and switch events are displayed by the default logger.

  • [Stager] Use notifier status and leadership checks to switch between global and local mode.

    The sonar-backed notifier status is more accurate than the ad-hoc stager checks previously used to check connectivity. Now the staging mode is determined by a combination of sonar and leadership—isolated follower nodes will correctly switch to :local (polling) mode.

    The new detection mechanism prevents an infrequent and difficult to spot bug where isolated follower nodes wouldn't process jobs.

  • [Backoff] Catch GenServer timeouts in with_retry/2.

    Backoff's with_retry/2 function previously rescued and retried known database exceptions, and it didn't catch exits. Now it also catches timeout errors to accommodate synchronized call based acks like those used in Pro's Smart engine in sync mode.

  • [Stager] Avoid transactions on follower nodes.

    Only the leader needs to execute a transaction while staging. This change prevents pointless empty transactions from each follower node every second. Now there are 60 staging transactions per minute across the whole cluster, rather than 60 from each node.

  • [Notifier] Unify public function type signatures and accept a name or conf in all public functions.

  • [Plugins] Always validate and build state in start_link/1

    Error messages and stack traces are clearer when errors come from start_link/1 rather than init/1, and it avoids starting processes that will immediately crash.

    This also hides child_spec/1 in all public modules to keep it out of documentation.

  • [Basic] Skip taking advisory locks in testing modes.

    Advisory locks are global and apply across transactions. That can break async tests with overlapping unique jobs because the lock is held in a concurrent, sandboxed test.

Bug Fixes

... (truncated)

Commits
  • 3068198 Release v2.17.4
  • 3f75d7d Remove mention of the defunct stager channel
  • d4bd6c0 Use notifier status to determine staging mode
  • e147ac5 Avoid stager transactions on follower nodes
  • f270f8d Restore default job priority (#1035)
  • d76535b Fixing typo (#1034)
  • 0c2ee37 Skip taking advisory locks in testing modes
  • 63d778a Bump credo from 1.7.3 to 1.7.4 (#1033)
  • 335fc37 Assert on insert notifications in stager test
  • 02541e8 Force fetch CTE to be materialized
  • 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)

Bumps [oban](https://github.com/sorentwo/oban) from 2.17.3 to 2.17.4.
- [Release notes](https://github.com/sorentwo/oban/releases)
- [Changelog](https://github.com/sorentwo/oban/blob/main/CHANGELOG.md)
- [Commits](oban-bg/oban@v2.17.3...v2.17.4)

---
updated-dependencies:
- dependency-name: oban
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot dependabot bot added dependencies Pull requests that update a dependency file elixir Pull requests that update Elixir code labels Feb 19, 2024
@github-actions github-actions bot merged commit 57f586c into main Feb 19, 2024
7 checks passed
@github-actions github-actions bot deleted the dependabot/hex/oban-2.17.4 branch February 19, 2024 04:22
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 elixir Pull requests that update Elixir code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

0 participants