Hi Xuelei,

Thanks for you suggestion. please review again:
http://cr.openjdk.java.net/~ewang/kevin/JDK-8028562/webrev.00/ <http://cr.openjdk.java.net/%7Eewang/kevin/JDK-8028562/webrev.00/>

Kevin
On 2013/12/4 12:06, Xuelei Fan wrote:
On 12/4/2013 11:33 AM, zaiyao liu wrote:
Hi Xuelei,

Can you help to review again.
http://cr.openjdk.java.net/~ewang/kevin/JDK-8028562/webrev.00/

Thanks for the update.  Please pay attentions to the code conversions.

  300 if (serverIn.remaining() != clientMsg.length) {
  301     if(retry){
  302        log("will read one more round");

It might be reasonable to retry when "serverIn.remaining()" less than
clientMsg.length", what do you think?


Xuelei


Thanks

Kevin
On 2013/12/3 19:50, Xuelei Fan wrote:
On 12/3/2013 6:59 PM, zaiyao liu wrote:
Hi Xuelei,

I can't reproduce this issue after run 900 times at windows and linux
platform,
It should be pretty hard to reproduce the issue in normal TCP/IP
environment.

for this fix just run one more round after get exception.

please review:
http://sqeweb.us.oracle.com/net/sqenfs-1/export1/comp/jsn/users/kevin1/webrev/8028562/webrev/



I don't think it is the expected fix.  Looks like the underlying issue
is that "serverOut.remaining() == 0" (line 282) does not always mean the
server has received all of the client message (line 298,
(serverIn.remaining() != clientMsg.length)).  I would suggest run one
more round (at line 241) after server message delivered
("serverOut.remaining() == 0" (line 282)).

The logic looks like, in runTest(boolean):
loop (line 241):
     read client message
     send server message
     if server delivered all server message {
         if server received all client message {
             check the message
         } else {
             loop one more time, go to "loop" (only one time?).
         }
     }

Hope it helps.

Xuelei


Thanks

Kevin

Reply via email to