toniq icon indicating copy to clipboard operation
toniq copied to clipboard

Occasional crash on server upgrade

Open timsu opened this issue 6 years ago • 0 comments

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!

timsu avatar May 19 '18 05:05 timsu