railsのアプリケーションでpuma再起動時にpumaプロセスが終了せず、残り続けてしまう

仕事で運用しているrailsアプリで、pumaの再起動時にpuma workerプロセスが残り続けることがありました。
(New Relicで1ホストに絞ってインスタンスのメトリクスを見ると設定しているworkerプロセス数よりも多くなっていた。メモリ使用量のグラフも増加していた。)

このような状態だと、本来終了するはずのプロセスがメモリだけを確保しているため、運が悪いとスワップしていることもありましたし、メモリ食い過ぎアクションとの区別がつきません。

プロセスが増える直後のログを見ると、NewRelic Agentでエラーになっていることがわかりました。

** [NewRelic][2018-04-30 14:28:18 +0000 web.7 (10132)] INFO : Unable to send metric_data data, will try again later. Error:
** [NewRelic][2018-04-30 14:28:18 +0000 web.7 (10132)] INFO : Zlib::DataError: data error

puma workerの停止時に、NewRelic Agentの停止を明示したところ、掲題のようなプロセスが残り続ける(増える)、ということはなくなりました。

 on_worker_shutdown do
   NewRelic::Agent.shutdown
 end

以上。