パイプはnio
で開かれています。書き込みエンドポイントが閉じていたが、読み取りエンドポイントが開いていた。私は自分のコードをチェックし、2つの終点は常に閉じています。ですから、私自身close
の機能がなくてもパイプが閉じられる可能性はありますか?パイプを閉じずに閉じる
ps。コードはzero ice
のソースコードです。私は本番環境でこの問題を発見しました。コードパスはIceInternal.Selector
、パイプは_fdIntrRead
および_fdIntrWrite
です。私のice
バージョンは3.3.1
です。
私は答えを得た。 NIO
は、現在のスレッドが中断されたときにチャネルを閉じます。バージョン3.6
で修正されたice
のバグです。
おそらくあなたはどこかでそれを閉じました。今はログメッセージとしてパイプを閉じる場所を記録することをお勧めします。 @PeterLawrey。 –
変数はprivateです。だから、それは単一のファイルで閉じなければなりません。 – phyxnj
試用版を使用していますか? https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.htmlこれは自動的に閉じている理由を説明します。 –