db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kathey Marsden (JIRA)" <derby-...@db.apache.org>
Subject [jira] Commented: (DERBY-1456) Network Server agentError calls log only to console and are hard to diagnose
Date Thu, 10 Aug 2006 14:57:17 GMT
    [ 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

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:

	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
or that caused deallocation of the conversation.  A PROTOCOL Data Stream Syntax Error was
  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
        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
        at org.apache.derbyTesting.functionTests.tests.derbynet.prepStmt.jira1454Test(prepStmt.java
        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:
>            Reporter: Bryan Pendleton
>         Assigned To: Sunitha Kambhampati
>            Priority: Minor
>             Fix For:
>         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


View raw message