Code Review Request: 8028562
Xuelei Fan
xuelei.fan at oracle.com
Wed Dec 4 06:50:16 UTC 2013
On 12/4/2013 2:36 PM, zaiyao liu wrote:
> Hi Xuelei,
>
> Thanks for you suggestion. please review again:
> http://cr.openjdk.java.net/~ewang/kevin/JDK-8028562/webrev.00/
>
Need a white space:
- 224 //will try to read one more roud when read error
+ 224 // will try to read one more roud when read error
The message is not clear enough:
- 302 log("will read one more round");
+ 302 log("Need to read more from client");
Otherwise, looks fine to me. Please go ahead.
Thanks,
Xuelei
>
> 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
>
More information about the security-dev
mailing list