Skip to content

Live debugger is in endless reload #957

@GuzekAlan

Description

@GuzekAlan

Bug Description

When spamming redirects and actions in dev application I've encountered endless reload (even after refreshing the website) - the URL which freezes is http://127.0.0.1:4007/pid/0.1505.0/resources. When I add different PID it correctly checks LiveView is not found and redirects properly.

12:51:49.183 [error] GenServer LiveDebugger.Services.SuccessorDiscoverer.GenServers.SuccessorDiscoverer terminating
** (BadMapError) expected a map, got:

    nil

    (live_debugger 0.8.0-dev) lib/live_debugger/services/successor_discoverer/gen_servers/successor_discoverer.ex:88: LiveDebugger.Services.SuccessorDiscoverer.GenServers.SuccessorDiscoverer.handle_info/2
    (stdlib 7.1) gen_server.erl:2434: :gen_server.try_handle_info/3
    (stdlib 7.1) gen_server.erl:2420: :gen_server.handle_msg/3
    (stdlib 7.1) proc_lib.erl:333: :proc_lib.init_p_do_apply/3
Last message: {:find_successor, nil, 0}
State: %LiveDebugger.Services.SuccessorDiscoverer.GenServers.SuccessorDiscoverer.State{window_to_socket: %{"cca3ad97-2e37-405f-8c85-2acc32c9eaa2" => "phx-GJ472UkoPi7WxgAI"}, socket_to_window: %{"phx-GJ471-tYkv264gJh" => "cca3ad97-2e37-405f-8c85-2acc32c9eaa2", "phx-GJ472UkoPi7WxgAI" => "cca3ad97-2e37-405f-8c85-2acc32c9eaa2", "phx-GJ47XKvVgSN5vu-k" => "cca3ad97-2e37-405f-8c85-2acc32c9eaa2"}}


12:51:49.183 [error] GenServer #PID<0.1520.0> terminating
** (BadMapError) expected a map, got:

    nil

    (live_debugger 0.8.0-dev) lib/live_debugger/app/debugger/web/hook_components/dead_view_mode.ex:161: LiveDebugger.App.Debugger.Web.HookComponents.DeadViewMode.start_successor_finding/1
    (live_debugger 0.8.0-dev) lib/live_debugger/app/debugger/web/hook_components/dead_view_mode.ex:119: LiveDebugger.App.Debugger.Web.HookComponents.DeadViewMode.handle_info/2
    (phoenix_live_view 1.1.23) lib/phoenix_live_view/lifecycle.ex:237: Phoenix.LiveView.Lifecycle.reduce_socket/3
    (phoenix_live_view 1.1.23) lib/phoenix_live_view/channel.ex:548: Phoenix.LiveView.Channel.view_handle_info/2
    (phoenix_live_view 1.1.23) lib/phoenix_live_view/channel.ex:362: Phoenix.LiveView.Channel.handle_info/2
    (stdlib 7.1) gen_server.erl:2434: :gen_server.try_handle_info/3
    (stdlib 7.1) gen_server.erl:2420: :gen_server.handle_msg/3
    (stdlib 7.1) proc_lib.erl:333: :proc_lib.init_p_do_apply/3
Process Label: {Phoenix.LiveView, LiveDebugger.App.Debugger.Web.DebuggerLive, "lv:phx-GJ472Z8MPFLYAACI"}
Last message: %LiveDebugger.Services.ProcessMonitor.Events.LiveViewDied{pid: #PID<0.1505.0>, transport_pid: #PID<0.1483.0>, __event__: true}
State: %{socket: #Phoenix.LiveView.Socket<id: "phx-GJ472Z8MPFLYAACI", endpoint: LiveDebugger.App.Web.Endpoint, view: LiveDebugger.App.Debugger.Web.DebuggerLive, parent_pid: nil, root_pid: #PID<0.1520.0>, router: LiveDebugger.App.Web.Router, assigns: %{url: "/pid/0.1505.0/resources", node_id: #PID<0.1505.0>, __changed__: %{}, lv_process: %Phoenix.LiveView.AsyncResult{ok?: false, loading: true, failed: nil, result: nil}, inspect_mode?: false, live_action: :resources, flash: %{}, trigger_sidebar: false, in_iframe?: false}, transport_pid: #PID<0.1519.0>, sticky?: false, ...>, components: {%{}, %{}, 1}, topic: "lv:phx-GJ472Z8MPFLYAACI", serializer: Phoenix.Socket.V2.JSONSerializer, join_ref: "4", fingerprints: {321357654188482366056080458905558313928, %{0 => {297014243902826927288228504697576504218, %{1 => {165627056540204302419316280377790285583, %{}}, 2 => {165627056540204302419316280377790285583, %{}}}}, 1 => {236148334627249116721430072313360757298, %{0 => {85358760523205964615025727455261338683, %{0 => {214538243977319084059131060808804806921, %{0 => {86245701427525295690046741392347989444, %{}}}}}}}}}}, redirect_count: 0, upload_names: %{}, upload_pids: %{}}

Actual Behavior

Infinite reload loop

Expected Behavior

It should redirect somewhere

Steps to Reproduce

Settings:

Image

Go in LiveDebugger to resources page. On dev click many times, redirect, refresh, etc

Elixir version with Erlang/OTP

Erlang/OTP 28 [erts-16.1.1] [source] [64-bit] [smp:10:10] [ds:10:10:10] [async-threads:1] [jit] Elixir 1.19.1 (compiled with Erlang/OTP 28)

LiveDebugger version

current main

Phoenix version

current main

Phoenix LiveView version

current main

Operating system

MacOS

Browser(s)

Brave (in split screen mode)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    Status

    Todo

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions