db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dyre Tjeldvoll (JIRA)" <derby-...@db.apache.org>
Subject [jira] Commented: (DERBY-815) Prevent unneeded object creation and excessive decoding in parseSQLDTA_work()
Date Sat, 28 Jan 2006 12:21:46 GMT
    [ http://issues.apache.org/jira/browse/DERBY-815?page=comments#action_12364304 ] 

Dyre Tjeldvoll commented on DERBY-815:
--------------------------------------

AB, your comment about the patch almost hit the nail on the head, but not quite. The CliParam
struct has field called isExt that indicates that the parameter is external (in its own DSS).
Just like the drdaType and the drdaLength filelds can change (to my surprise), the isExt can
go from true to false for the same parameter in the same statement. In this case param 7 had
been marked as external, but was internal in this message. Hence the attempt to read the separate
DSS left the server waiting for more  data, data which the client was never going to send.

With the following change your repro goes through:

Index: java/drda/org/apache/derby/impl/drda/DRDAConnThread.java
===================================================================
--- java/drda/org/apache/derby/impl/drda/DRDAConnThread.java    (revision 373136)
+++ java/drda/org/apache/derby/impl/drda/DRDAConnThread.java    (working copy)
@@ -3889,6 +3889,8 @@
                             }
                             final DRDAStatement.CliParam cp =
                                 stmt.getCliParam(j);
+                            cp.isExt = false; // <--- FIX
+
                             if (cp.drdaType != drdaType ||
                                 cp.drdaLength != drdaLength) {
                                 if (SanityManager.DEBUG) {

I'll polish up a proper patch and attach it when I've run derbyall. Sorry about all the problems...


> Prevent unneeded object creation and excessive decoding in parseSQLDTA_work()
> -----------------------------------------------------------------------------
>
>          Key: DERBY-815
>          URL: http://issues.apache.org/jira/browse/DERBY-815
>      Project: Derby
>         Type: Sub-task
>   Components: Network Server, Performance
>     Versions: 10.0.2.2, 10.1.1.0, 10.1.2.0, 10.1.1.1, 10.1.1.2, 10.1.2.1, 10.1.3.0, 10.1.2.2
>     Reporter: Knut Anders Hatlen
>     Assignee: Dyre Tjeldvoll
>     Priority: Minor
>      Fix For: 10.2.0.0
>  Attachments: d815_regress.java, derby-815.diff, derby-815.stat, derbyall_report.txt
>
> Reported by Kathey Marsden in DERBY-212:
> In reviewing the Network Server Code and profiling there were several
> areas that showed potential for providing performance
> improvement. Functions that need optimizing to prevent unneeded object
> creation and excessive decoding: parseSQLDTA_work()

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


Mime
View raw message