DRDA Protocol Exception when DSS is exactly 32767 in length
-----------------------------------------------------------

         Key: DERBY-1454
         URL: http://issues.apache.org/jira/browse/DERBY-1454
     Project: Derby
        Type: Sub-task

  Components: Network Server  
    Versions: 10.2.0.0, 10.1.3.0, 10.1.3.1    
    Reporter: Bryan Pendleton
 Assigned to: Bryan Pendleton 


The server is disconnecting the client connection.  Client is sending a CNTQRY, 
the server is receiving it 
and then server disconnects the client.   When I start the server, after a 
while, I see the message
agentThread[DRDAConnThread_4,5,main].

Further debugging, this message gets printed out  because of the agentError 
that is thrown in splitQRYDTA.

The error seems to come from this part of the code  in splitQRYDTA,  It hits 
the temp.length==0 case.

   private void splitQRYDTA(DRDAStatement stmt, int blksize) throws 
SQLException,
           DRDAProtocolException
   {
       // make copy of extra data
       byte [] temp = writer.copyDSSDataToEnd(blksize);
       // truncate to end of blocksize
       writer.truncateDSS(blksize);
       if (temp.length == 0)
           agentError("LMTBLKPRC violation: splitQRYDTA was " +
               "called to split a QRYDTA block, but the " +
               "entire row fit successfully into the " +
               "current block. Server rowsize computation " +
               "was probably incorrect (perhaps an off-by-" +
               "one bug?). QRYDTA blocksize: " + blksize);
       stmt.setSplitQRYDTA(temp);
   }
  In doneData and writeFDODTA, it looks like if (writer.getDSSLength() >= 
blksize)  , then the splitQRYDTA 
is called. From testing, it seems like they are hitting an edge case, where the 
writer.getDSSLength() 
is equal to blksize and this DSS is the only dss in the send buffer. 

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to