Skip to content

Commit 5168b85

Browse files
v0idpwnmentels
andauthored
chore: defensive code to avoid transitory error during relup (#1017)
Co-authored-by: Szymon Mentel <szymon.mentel@supabase.io>
1 parent e8a4d9c commit 5168b85

3 files changed

Lines changed: 13 additions & 9 deletions

File tree

.dialyzer_ignore.exs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
[
2-
~r(test/support/[^.]*\.ex)
2+
~r(test/support/[^.]*\.ex),
3+
# Defensive 2-tuple clause kept for relup compatibility with v2.9.6 nodes
4+
# whose Helpers.get_client_final/5 returned a 2-tuple. Remove with the TODO.
5+
~r{^lib/supavisor/db_handler\.ex:818:\d+:pattern_match\b}
36
]

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.9.6
1+
2.9.7

lib/supavisor/db_handler.ex

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -810,13 +810,14 @@ defmodule Supavisor.DbHandler do
810810
secrets = data.connection_params.secrets
811811

812812
{client_final_message, server_proof, derived_secrets} =
813-
Helpers.get_client_final(
814-
secrets,
815-
server_first_parts,
816-
nonce,
817-
secrets.user,
818-
"biws"
819-
)
813+
case Helpers.get_client_final(secrets, server_first_parts, nonce, secrets.user, "biws") do
814+
{client_final_message, server_proof, derived_secrets} ->
815+
{client_final_message, server_proof, derived_secrets}
816+
817+
# TODO: drop once v2.9.7 is everywhere
818+
{client_final_message, server_proof} ->
819+
{client_final_message, server_proof, nil}
820+
end
820821

821822
bin = :pgo_protocol.encode_scram_response_message(client_final_message)
822823
:ok = HandlerHelpers.sock_send(data.sock, bin)

0 commit comments

Comments
 (0)