possible process_info(Pid, message_queue_len) degradation

Max Lapshin max.lapshin@REDACTED
Wed Apr 15 23:16:10 CEST 2020


Hi.

We have a piece of code that does (a bad) thing:

  case process_info(whereis(?MODULE), message_queue_len) of
    {_, Len} when Len > 150 ->
      {error, overloaded};


On 22.1.4 it was working without any visible problems.

On 22.3 we are getting problems. Process that does it is hanging in:

pulsedb_appender:28 delay in writing to wal:

[{erts_internal,await_result,1,[{file,"erts_internal.erl"},{line,122}]},
 {pulsedb_wal_writer,write,1,[{file,"pulsedb_wal_writer.erl"},{line,14}]},


Timeout of 3000 milliseconds that was not hit before, now is expired
very often and we see that the calling process is in this new
function.


Question is:  could checking process_info message_queue_len become
more expensive in 22.1.3 -> 22.3 update?


More information about the erlang-questions mailing list