1

私の徹底的なJUnitの1つは、繰り返しの途中で書き込みがブロックされています。

このフローは、FTP での受動的な取得とほとんど同じです。

JUnit ----------- MOVE_REQ (dst port 4104) --------------------> Server
loop {
    JUnit <------ SEND_REQ with the object (dst port 1104) ---------- Server
    JUnit --------------- SEND_RSP  (same connection) --------------> Server
}
JUnit <-------- MOVE_RSP (same connection as first one) ----------- Server

そのチェーンはすべて、JUnit によって複数のスレッドで同時に実行されます。JUnit 側のサーバー (SEND_REQ に参加するサーバー) は、反対側のサーバーとまったく同じ 5 つのスレッドのプールです。

デバッグでは、サーバーが 16384 バイトの OutputStream.write で SEND_REQ でハングしていることがわかります。一方、jUnit のサーバーは、わずか 6 バイトの InputStream.read でストリームの読み取りにスタックしています。

私が最初に考えたのは、すべての接続を閉じていないため、バッファーで何らかのリークが発生していることです。しかし、私は TcpView でそれを確認しましたが、問題ありません。その時点で接続は 1 つしかありません

ここに画像の説明を入力

なぜこれが起こっているのでしょうか?

4

0 に答える 0