[ 
https://issues.apache.org/jira/browse/DERBY-3644?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12903074#action_12903074
 ] 

Mamta A. Satoor commented on DERBY-3644:
----------------------------------------

I debugged the code a little and found that the reason behind the errors we see 
is that with DERBY-2109 , the protocol version has been bumped up to reflect 
the change in the syntax of shutdown. During the handshake between client and 
server, client writes down what protocol version it has. The server on the 
receiving end finds that the protocol does not match and it throws an 
exception, This is why, even though, DERBY-2109 only changed shutdown, we see 
the impact for commands like ping too. 

I experimented by resetting the protocol version back to it's original value 
prior to DERBY-2109. This ofcourse fixes commands like ping coming from trunk 
to 10.3 server because now server and client are the same protocol version. But 
this does impact shutdown. Following is the observation with shutdown.
There are 2 possible scenarios for client and server
1)Network Server started with 10.3 codeline(does not have DERBY-2109 fix) and 
client running with trunk codeline(does have DERBY-2109 fix)
2)Network Server started with trunk and client running with 10.3 codeline

The current behavior of the codelines for the above 2 cases is as follows(ie 
when trunk is at higher protocol version than 10.3)
    1)Gives error on both client and server side
          Client error : Thu Aug 26 11:27:45 PDT 2010 : Invalid reply header 
from network server: Invalid string Plaintext connection attempt to an SSL 
enabled server?
          Server error : DRDA_UnknownProtocol.S, <2> java.lang.Throwable: 
DRDA_UnknownProtocol.S, <2>
    2)10,3 client hangs when shutdown is issues by it. Ctrl-C out of that 
client and get following error on server side
          Server error : Execution failed because of a Distributed Protocol 
Error:  DRDA_Disconnect; CODPNT arg  = 0; Error Code Value = 
0,DDMReader.fill(),InputStream.read(),Connection reset,*

With the experiment I mentioned above, ie the trunk does not change the 
protocol level and stays at the same level as DERBY-2109. With this change, the 
above 2 cases behave as follows
    1)No error any more for this case because both client and server are at the 
same protocol level
    2)This case contrinues to behave the same, ie 10.3 client hangs when it 
issues shutdown for network server started by trunk codeline with my changes
          Ctrl-C out of that client and get following error on server side
          Server error : Execution failed because of a Distributed Protocol 
Error:  DRDA_Disconnect; CODPNT arg  = 0; Error Code Value = 
0,DDMReader.fill(),InputStream.read(),Connection reset,*

BTW, I tested all the options on NetworkServerControl as listed below after 
resetting the protocol level and everything with the exception of shutdown(more 
infor on shutdown in the earlier paragraphs) worked fine with server at 10.3 
level and client at trunk and vice versa
        {"start","shutdown","trace","tracedirectory","ping","logconnections", 
"sysinfo", "runtimeinfo",  "maxthreads", "timeslice", ""};


We could go ahead and change the protocol back to pre-DERBY-2109 level because 
even though DERBY-2109 bumped up the protocol, it didn't provide any work to 
ensure the compatibility between different protocol versions. 
2 possible solutions I think can of at this point are
1)Revert the protocol back to pre-DERBY-2109. This fixes DERBY-3644 and 
improves the behavior for Network Server with 10,3 and shutdown coming from 
trunk. This work is obviosly very easy.
2)Change the trunk to be able to handle different protocol level rather than 
throw error when non-matching protocol is detected. This work is more involved 
and will not fix DERBY-3644 for existing released products.


> NetworkServerControl.ping() on trunk against 10.3.2.1 and older servers give 
> 'DRDA_InvalidReplyHeader2.S:Invalid reply header from network server: Invalid 
> string . Plaintext connection attempt to an SSL enabled server?'
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-3644
>                 URL: https://issues.apache.org/jira/browse/DERBY-3644
>             Project: Derby
>          Issue Type: Bug
>          Components: Network Server
>    Affects Versions: 10.4.1.3, 10.4.2.0, 10.5.1.1
>         Environment: All
>            Reporter: Ole Solberg
>
> Since 2008-02-29 r632502(DERBY-2109) the compatibility tests run on trunk has 
> reported
> 'DRDA_InvalidReplyHeader2.S:Invalid reply header from network server: Invalid 
> string . Plaintext connection attempt to an SSL enabled server?'
> when doing NetworkServerControl.ping() on trunk against 10.3.2.1 and older 
> servers.
> Is this a regression or according to spec?
> The compatibility test itself, i.e. the client-server testing is OK.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to