toniq
toniq copied to clipboard
Occasional crash on server upgrade
When running a single OTP server and using hot upgrades, Toniq 1.2.3 will occasionally crash, preventing the upgrade.
From the logs, I see a few different crashes:
=CRASH REPORT==== 18-May-2018::18:23:09 ===
crasher:
initial call: Elixir.Toniq.DelayedJobTracker:init/1
pid: <0.1866.0>
registered_name: 'Elixir.Toniq.DelayedJobTracker'
exception error: bad argument
in function erlang:send_after/3
called as erlang:send_after(nil,<0.1866.0>,flush)
in call from 'Elixir.Toniq.DelayedJobTracker':schedule_work/0 (lib/toniq/delayed_job_tracker.ex, line 57)
in call from 'Elixir.Toniq.DelayedJobTracker':handle_info/2 (lib/toniq/delayed_job_tracker.ex, line 48)
in call from gen_server:try_dispatch/4 (gen_server.erl, line 616)
in call from gen_server:handle_msg/6 (gen_server.erl, line 686)
ancestors: ['Elixir.Toniq.Supervisor',<0.1855.0>]
message_queue_len: 0
messages: []
links: [<0.1856.0>]
dictionary: []
Seems like self() is returning nil?
=CRASH REPORT==== 18-May-2018::18:23:09 ===
crasher:
initial call: Elixir.Toniq.Takeover:init/1
pid: <0.2542.0>
registered_name: []
exception error: no match of right hand side value {error,badarg}
in function 'Elixir.Toniq.Takeover':init/1 (lib/toniq/takeover.ex, line 16)
in call from gen_server:init_it/2 (gen_server.erl, line 365)
in call from gen_server:init_it/6 (gen_server.erl, line 333)
ancestors: ['Elixir.Toniq.Supervisor',<0.1855.0>]
message_queue_len: 0
messages: []
links: [<0.1856.0>]
dictionary: []
My OTP environment:
Erlang/OTP 20 [erts-9.3] [source] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:10] [hipe] [kernel-poll:false]
Any ideas as to how I can prevent these? Thanks!