比較的負荷の高いWebアプリケーションにCheyenneを使用しています。それはすばらしい、そして速く働く。しかし、私はUbuntu 14.04へのアップグレード後に表示される問題がありました。または、負荷が増えたので気づき始めました。LinuxでのRebol 2プロセスが "重い負荷の日"後にSIGTERMで停止する
作業の数日後、Rebolワーカープロセスを終了すると、プロセスは100%CPUを消費し始め、「何もしません」。私はstraceでプロセスを見て、それが100 CPUに入っているときは、OSを決して呼び出さない。 Cheyenneワーカーコードを見て(そこに何らかの障害がある場合)、コードはRebolコマンドのOKを実行します出口。このコマンドは、永久にループします。 sigtermでプロセスを終了しようとすると同じです。
私はsigkillでそれを殺すことができます。このプロセスは、重い負荷の数日後にのみこの状態になり、非本番環境またはローカルコンピュータではレプリケートできませんでした。
私の素朴な考えは、終了する前にメモリをクリアしようとしている間、または開いているファイル/ソケットが永久にループすることです。私はlsof(と同様のもの)で前後のプロセスを見ましたが、イベントは簡単に再現できないので、何かが考えられませんでした。
私の質問は、Rebol2が終了時に永遠の100%ループに入るのを見た人はいますか?誰もこれを解決するための任意のアイデアを持っていますか?
**私は恐れがありますが、ここに行くのは有益なコメントにはなりません**私はまた、CheyenneをUbuntu 14.04で使用します(正確には14.04.5 LTS(GNU/Linux 3.13.0-92- Ubuntu 16.04とMac OSX 10.9上でDittoを実行することはありませんでしたが、これは一度も負荷がかかりませんでしたが、長時間実行されています(場合によっては再起動なしで6〜9ヶ月)。 – draegtun