[Testing] Check process ancestry tree for with_testing_mode override.
Cascade the with_testing_mode block to nested processes that make use of :$ancestry in the process dictionary, i.e. tasks. Now enqueuing a job within spawned processes like Task.async or Task.async_stream will honor the testing mode specified in with_testing_mode/2.
[PG] Support alternative namespacing in PG notifier
By default, all Oban instances using the same prefix option would receive notifications from each other. Now you can use the namespace option to separate instances that are in the same cluster without changing the prefix.
Bug Fixes
[Oban] Restore zero arity version of pause_all_queues/0
Both pause and resume variants lost their default argument in a refactor that shifted around guard clauses.
[Oban] Add :oban_draining to process dict while draining
The flag marks the test process while draining to give hints to the executor and engines. It fixes an incompatibility between Oban.drain_queue/2 and Pro's Testing.drain_jobs/2.
v2.17.8
Enhancements
[Backoff] Backoff retry on DBConnection and Postgrex errors from GenServer calls.
GenServer calls that result in a ConnectionError or Postgrex.Error should also be caught and retried rather than crashing on the first attempt.
Bug Fixes
[Notifier] Check for a live notifier process and propagate notify errors.
The Notifier.notify/1 spec showed it would always return :ok, but that wasn't the case when the notifier was disconnected or the process was no longer running. Now an error tuple is returned when a notifier process isn't running.
This situation happened most frequently during shutdown, particularly from external usage of the Notifier like an application or the oban_met package.
In addition, the errors bubble up through top level Oban functions like scale_queue/1, pause_queue/1, etc. to indicate that the operation can't actually succeed.
[Peers.Postgres] Rescue DBConnection.ConnectionError in peer leadership check.
Previously, only Postgrex.Error exceptions were rescued and other standard connection errors were ignored, crashing the Peer. Because leadership is checked immediately after the peer initializes, any connection issues would trigger a crash loop that could bring down the rest of the supervision tree.
v2.17.7
Bug Fixes
[Notifier] Prevent Sonar from running in :testing modes.
Sonar has no purpose during tests, and it can cause sandbox issues when tests run with the Postgres notifier.
[Oban] Correctly handle pause and resume all with opts.
[Oban] Make all generated functions from use Oban overridable.
Now the functions generated by use Oban are all marked with defoverridable for
extensibility.
Bug Fixes
[Testing] Use $callers rather than $ancestors for ancestry tree check.
We care about Tasks for inline testing checks, not normal supervision tree ancestry. The
$callers entry is the appropriate mechanism to find the trail of calling processes:
v2.17.9 — 2024-04-20
Enhancements
[Testing] Check process ancestry tree for with_testing_mode override.
Cascade the with_testing_mode block to nested processes that make use of :$ancestry in the
process dictionary, i.e. tasks. Now enqueuing a job within spawned processes like Task.async
or Task.async_stream will honor the testing mode specified in with_testing_mode/2.
[PG] Support alternative namespacing in PG notifier
By default, all Oban instances using the same prefix option would receive notifications from
each other. Now you can use the namespace option to separate instances that are in the same
cluster without changing the prefix.
Bug Fixes
[Oban] Restore zero arity version of pause_all_queues/0
Both pause and resume variants lost their default argument in a refactor that shifted around
guard clauses.
[Oban] Add :oban_draining to process dict while draining
The flag marks the test process while draining to give hints to the executor and engines. It
fixes an incompatibility between Oban.drain_queue/2 and Pro's Testing.drain_jobs/2.
You can trigger a rebase of this PR 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)
Note
Automatic rebases have been disabled on this pull request as it has been open for over 30 days.
Bumps oban from 2.13.5 to 2.17.10.
Release notes
Sourced from oban's releases.
... (truncated)
Changelog
Sourced from oban's changelog.
... (truncated)
Commits
abcffec
Release v2.17.107c69cc6
Make functions from calling use Oban overridable0abfe77
Use $callers, not $ancestors for inline checkd5b2e89
Only check pid ancestors for inline override63b0751
Release v2.17.9d173011
Restore zero arity version of pause_all_queues/0b66ee14
Bump ex_doc from 0.32.0 to 0.32.1 (#1068)49ae042
Check process ancestry tree for test mode override98e4b39
Support alternative namespacing in PG notifier8755236
Bump ex_doc to v0.32.0You can trigger a rebase of this PR 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