[ 
http://issues.apache.org/jira/browse/DERBY-1456?page=comments#action_12427245 ] 
            
Kathey Marsden commented on DERBY-1456:
---------------------------------------

I am merging this change to 10.1

To verify reverse merged  the code change for DERBY-1454 and ran the new 
derbynet/prepStmt.java test: e.g.

svn merge -r 417032:417031 
https://svn.apache.org/repos/asf/db/derby/code/branches/10.1

svn revert `svnls | grep prepStmt`

where svnls is
svn stat -q | sed -e 's/\\/\//g' |  sed -e 's/. [ +]*//' | grep -v 'external ite
m'

ran derbyNet/prepStmt.java

And wow what a difference! 


What I saw was this in the derby.log

org.apache.derby.impl.drda.DRDAProtocolException: Execution failed because of 
Permanent Agent Error: SVRCOD = 40; RDBNAM = wombat;create=true; diagnostic msg 
= 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: 32767

        at 
org.apache.derby.impl.drda.DRDAProtocolException.newAgentError(DRDAProtocolException.java:328)

        at 
org.apache.derby.impl.drda.DRDAConnThread.agentError(DRDAConnThread.java:429)

        at 
org.apache.derby.impl.drda.DRDAConnThread.splitQRYDTA(DRDAConnThread.java:6240)

        at 
org.apache.derby.impl.drda.DRDAConnThread.writeFDODTA(DRDAConnThread.java:6173)

        at 
org.apache.derby.impl.drda.DRDAConnThread.writeQRYDTA(DRDAConnThread.java:5926)

        at 
org.apache.derby.impl.drda.DRDAConnThread.processCommands(DRDAConnThread.java:592)

        at 
org.apache.derby.impl.drda.DRDAConnThread.run(DRDAConnThread.java:223)

2006-08-10 14:44:11.257 GMT Thread[DRDAConnThread_2,5,main] (XID = 1121), (SESS



and the client gets the perfectly reasonable:

org.apache.derby.client.am.DisconnectException: Execution failed due to a 
distribution protocol err
or that caused deallocation of the conversation.  A PROTOCOL Data Stream Syntax 
Error was detected.
  Reason: 0x3
        at org.apache.derby.client.net.Reply.doSyntaxrmSemantics(Reply.java:950)
        at org.apache.derby.client.net.Reply.readDssHeader(Reply.java:345)
        at org.apache.derby.client.net.Reply.peekCodePoint(Reply.java:1009)
        at 
org.apache.derby.client.net.NetResultSetReply.parseCNTQRYreply(NetResultSetReply.java:12
9)
        at 
org.apache.derby.client.net.NetResultSetReply.readFetch(NetResultSetReply.java:38)
        at 
org.apache.derby.client.net.ResultSetReply.readFetch(ResultSetReply.java:40)
        at 
org.apache.derby.client.net.NetResultSet.readFetch_(NetResultSet.java:181)
        at org.apache.derby.client.am.ResultSet.flowFetch(ResultSet.java:2930)
        at 
org.apache.derby.client.net.NetCursor.getMoreData_(NetCursor.java:927)
        at org.apache.derby.client.am.Cursor.next(Cursor.java:155)
        at org.apache.derby.client.am.ResultSet.nextX(ResultSet.java:261)
        at org.apache.derby.client.am.ResultSet.next(ResultSet.java:240)
        at 
org.apache.derbyTesting.functionTests.tests.derbynet.prepStmt.tickleDSSLength(prepStmt.j
ava:871)
        at 
org.apache.derbyTesting.functionTests.tests.derbynet.prepStmt.jira1454Test(prepStmt.java
:842)
        at 
org.apache.derbyTesting.functionTests.tests.derbynet.prepStmt.main(prepStmt.java:308)


 I keep thinking back to that case, if this error message had not been 
mysteriously consumed  in the user environment how easy it all would have been. 
 Thanks Sunitha for the great fix and also to Bryan for leaving such   
incredibly useful breadcrumb trails in the error messages for known problem 
areas.  So glad we can now see the breadcrumbs.











> Network Server agentError calls log only to console and are hard to diagnose
> ----------------------------------------------------------------------------
>
>                 Key: DERBY-1456
>                 URL: http://issues.apache.org/jira/browse/DERBY-1456
>             Project: Derby
>          Issue Type: Sub-task
>          Components: Network Server
>    Affects Versions: 10.2.0.0
>            Reporter: Bryan Pendleton
>         Assigned To: Sunitha Kambhampati
>            Priority: Minor
>             Fix For: 10.2.0.0
>
>         Attachments: 1456_notes.txt, derby1456.diff.txt, derby1456.stat.txt
>
>
> The Network Server code uses an assertion-check utility routine called 
> agentError()
> under certain circumstances. When these agentError() calls arise, for example 
> as
> in DERBY-1454, there is no server side logging of the error except to the 
> console. 
> The user application  that hit DERBY-1454 had not been capturing console 
> output and there 
> was no clue in the derby.log, this made the problem hard to track down when 
> they 
> suddenly hit this boundary deep within their stress tests.
> See also DERBY-743 for another issue with Network Server's agentError routine.

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