サーバーの4つのインスタンスを実行し、サーバーボックスごとに2つのインスタンスを実行するセットアップがあります。私のサーバーには、無名関数を渡して別のスレッド(おそらく別のサーバー上にある)で実行することがたくさん含まれています。
今日、私はコードのリロードを行いました。これには、インスタンスの1つでいくつかの静的関数の内容を変更することが含まれていました(各インスタンスを順番に実行することを計画しています)。リロードを実行すると、大量のbadfun
エラーが発生しました。そのボックスの他のインスタンスも同様のエラーを吐き出し始めました。もう一方のボックスの2つのインスタンスは、影響を受けていないようです。
私はこの記事を見つけました: http ://www.javalimit.com/2010/05/passing-funs-to-other-erlang-nodes.html これは、これらのエラーの理由が無名関数のバージョンが異なることを示唆しているようです2つのノード間で、したがって壊れました。ただし、テストでは、このエラーを再現できません。また、私はこのようなものを見ることなく、以前に何度もコードをリロードしました。ただし、ボックスごとに2つのインスタンスをリロードしたのはこれが初めてです(以前はボックスごとに1つのインスタンスでした)。誰かがこれが起こった理由、そしておそらくそれを防ぐ方法について何か洞察を持っていますか(すべてを殺して再起動することなく、それは私がしなければならなかったことです)。