Skip to content

Conversation

@nathanl
Copy link
Contributor

@nathanl nathanl commented Nov 17, 2025

nathanl added a commit to nathanl/db_connection that referenced this pull request Nov 17, 2025
The label must be passed in - see elixir-ecto/ecto_sql#698

Assuming it's the repo name, this is helpful if the application has more
than one repo (eg read replicas). For example:

Before: "** (DBConnection.ConnectionError) connection is closed because
of an error, disconnect or timeout"

After: "** (DBConnection.ConnectionError) MyApp.Repo connection is
closed because of an error, disconnect or timeout"
nathanl added a commit to nathanl/db_connection that referenced this pull request Nov 17, 2025
The label must be passed in - see elixir-ecto/ecto_sql#698

Assuming it's the repo name, this is helpful if the application has more
than one repo (eg read replicas). For example:

Before: "** (DBConnection.ConnectionError) connection is closed because
of an error, disconnect or timeout"

After: "** (DBConnection.ConnectionError) MyApp.Repo connection is
closed because of an error, disconnect or timeout"
nathanl added a commit to nathanl/db_connection that referenced this pull request Dec 1, 2025
A label like MyApp.Repo can be passed via the :label option. It will be
used in the process label for the DBConnection.Ownership.Manager process
and will appear in error messages from both
DBConnection.Ownership.Manager and DBConnection.Holder. This is helpful
when applications use multiple repos (e.g., read replicas).

Before:
  (DBConnection.OwnershipError) cannot find ownership process for #PID<...>
  (DBConnection.ConnectionError) connection is closed because of an error...

After:
  (DBConnection.OwnershipError) cannot find ownership process for #PID<...>
  (MyApp.Repo) using mode :manual.

  (DBConnection.ConnectionError) MyApp.Repo connection is closed because of
  an error, disconnect or timeout

Tests verify labels appear correctly in both error types, and that errors
work correctly if no label is given.

In elixir-ecto/ecto_sql#698 the adapter is
updated to pass the repo name as a label.
nathanl added a commit to nathanl/db_connection that referenced this pull request Dec 1, 2025
A label like MyApp.Repo can be passed via the :label option. It will be
used in the process label for the DBConnection.Ownership.Manager process
and will appear in error messages from both
DBConnection.Ownership.Manager and DBConnection.Holder. This is helpful
when applications use multiple repos (e.g., read replicas).

Before:
  (DBConnection.OwnershipError) cannot find ownership process for #PID<...>
  (DBConnection.ConnectionError) connection is closed because of an error...

After:
  (DBConnection.OwnershipError) cannot find ownership process for #PID<...>
  (MyApp.Repo) using mode :manual.

  (DBConnection.ConnectionError) MyApp.Repo connection is closed because of
  an error, disconnect or timeout

Tests verify labels appear correctly in both error types, and that errors
work correctly if no label is given.

In elixir-ecto/ecto_sql#698 the adapter is
updated to pass the repo name as a label.
nathanl added a commit to nathanl/db_connection that referenced this pull request Dec 1, 2025
A label like MyApp.Repo can be passed via the :label option. It will be
used in the process label for the DBConnection.Ownership.Manager process
and will appear in error messages from both
DBConnection.Ownership.Manager and DBConnection.Holder. This is helpful
when applications use multiple repos (e.g., read replicas).

Before:
  (DBConnection.OwnershipError) cannot find ownership process for #PID<...>
  (DBConnection.ConnectionError) connection is closed because of an error...

After:
  (DBConnection.OwnershipError) cannot find ownership process for #PID<...>
  (MyApp.Repo) using mode :manual.

  (DBConnection.ConnectionError) MyApp.Repo connection is closed because of
  an error, disconnect or timeout

Tests verify labels appear correctly in both error types, and that errors
work correctly if no label is given.

In elixir-ecto/ecto_sql#698 the adapter is
updated to pass the repo name as a label.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants