Skip to content

Commit 1eaca76

Browse files
authored
fix: message dispatcher cache (#1615)
1 parent db2415b commit 1eaca76

File tree

5 files changed

+11
-9
lines changed

5 files changed

+11
-9
lines changed

lib/realtime_web/channels/realtime_channel/message_dispatcher.ex

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ defmodule RealtimeWeb.RealtimeChannel.MessageDispatcher do
107107

108108
{:error, reason} ->
109109
maybe_log(log_level, join_topic, reason, tenant_id)
110+
{:error, reason}
110111
end
111112

112113
Map.put(cache, serializer, result)

mix.exs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ defmodule Realtime.MixProject do
44
def project do
55
[
66
app: :realtime,
7-
version: "2.63.1",
7+
version: "2.63.2",
88
elixir: "~> 1.18",
99
elixirc_paths: elixirc_paths(Mix.env()),
1010
start_permanent: Mix.env() == :prod,

test/e2e/tests.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,7 @@ describe("broadcast extension", () => {
6666
while (activeChannel.state == "joining") await sleep(0.2);
6767

6868
// Send from unsubscribed channel
69-
supabase.channel(topic, config).send({
70-
type: "broadcast",
71-
event,
72-
payload: expectedPayload,
73-
});
69+
supabase.channel(topic, config).httpSend(event, expectedPayload);
7470

7571
while (result == null) await sleep(0.2);
7672

test/realtime/gen_rpc_pub_sub_test.exs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ defmodule Realtime.GenRpcPubSubTest do
2323
def subscribe(subscriber, topic) do
2424
spawn(fn ->
2525
RealtimeWeb.Endpoint.subscribe(topic)
26+
2 = length(Realtime.Nodes.region_nodes("us-east-1"))
27+
2 = length(Realtime.Nodes.region_nodes("ap-southeast-2"))
2628
send(subscriber, {:ready, Application.get_env(:realtime, :region)})
2729

2830
loop = fn f ->
@@ -91,12 +93,12 @@ defmodule Realtime.GenRpcPubSubTest do
9193

9294
{:ok, _} = Clustered.start(@aux_mod, name: ap2_nodeY, extra_config: ap2_nodeY_extra_config, phoenix_port: 4016)
9395

94-
RealtimeWeb.Endpoint.subscribe(@topic)
95-
:erpc.multicall(Node.list(), Subscriber, :subscribe, [self(), @topic])
96-
9796
# Ensuring that syn had enough time to propagate to all nodes the group information
9897
Process.sleep(3000)
9998

99+
RealtimeWeb.Endpoint.subscribe(@topic)
100+
:erpc.multicall(Node.list(), Subscriber, :subscribe, [self(), @topic])
101+
100102
assert length(Realtime.Nodes.region_nodes("us-east-1")) == 2
101103
assert length(Realtime.Nodes.region_nodes("ap-southeast-2")) == 2
102104

test/realtime_web/channels/realtime_channel/message_dispatcher_test.exs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -430,6 +430,9 @@ defmodule RealtimeWeb.RealtimeChannel.MessageDispatcherTest do
430430
assert log =~ "Received message on realtime:topic with payload: #{inspect(msg, pretty: true)}"
431431
assert log =~ "User payload encoding is not JSON"
432432

433+
# Only prints once
434+
assert String.split(log, "User payload encoding is not JSON") |> length() == 2
435+
433436
# No V1 message received as binary payloads are not supported
434437
refute_receive {:socket_push, :text, _message_v1}
435438

0 commit comments

Comments
 (0)