[
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.