Try to pinpoint a hang with even more verbosity (more)

Run via:

    env PULSE_NOSHRINK=yes PULSE_SKIP_NEW=yes PULSE_TIME=900 make pulse

So, this one hangs here:

    tick-<0.991.0>,dump_state(){prop,machi_chain_manager1_pulse,358,<0.891.0>}

At machi_chain_manager1_pulse.erl line 358, that's after the return
of run_commands().  The next verbose message should come from line
362, after the return of pulse:run(), but that message never appears.
My laptop CPU is really busy (fans running, case is hot), but both
console & disterl aren't available now, so no idea why, alas.

Ah, when I run with a console available and then run Redbug, there is
zero activity calling both machi_chain_manager1_pulse:'_' and
machi_chain_manager1:'_'

This may be related to a bad/ugly shutdown?  In both hang cases,
I see at least one SASL error message such as the one below ...
BUT!  There should be erlang:display() messages from the shutdown_hard()
function, which does some exit(Pid, kill) calls, but there is no output
from them!  So, the killing is coming from some kind of PULSE-initiated
process shutdown/cleanup/??

    =SUPERVISOR REPORT==== 16-Jul-2015::20:24:31 ===
         Supervisor: {local,machi_sup}
         Context:    shutdown_error
         Reason:     killed
         Offender:   [{pid,<0.200.0>},
                      {name,machi_flu_sup},
                      {mfargs,{machi_flu_sup,start_link,[]}},
                      {restart_type,permanent},
                      {shutdown,5000},
                      {child_type,supervisor}]
This commit is contained in:
Scott Lystig Fritchie 2015-07-16 20:19:22 +09:00
parent 3a4624ab06
commit dbbb6e8b14

View file

@ -355,9 +355,11 @@ erlang:display({prop,?MODULE,?LINE,self()}),
?V("PROP-~w,", [self()]),
%% {_H, _S, _R} = run_commands(?MODULE, Cmds)
_QAQA = run_commands(?MODULE, Cmds)
, erlang:display({prop,?MODULE,?LINE,self()}), _QAQA
%% ,?V("pid681=~p", [process_info(list_to_pid("<0.681.0>"))]), _QAQA
end, [{seed, Seed},
{strategy, unfair}]),
erlang:display({prop,?MODULE,?LINE,self()}),
ok = shutdown_hard(),
{Report, PrivProjs, Diag} = S2#state.dump_state,