[ 
https://issues.apache.org/jira/browse/DERBY-3198?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dyre Tjeldvoll updated DERBY-3198:
----------------------------------

    Attachment: derby-3198.v4.diff

Reading Knut's comment again I realized that he was talking about closing 
ResultSets and not Statements. I agree that it is no reason not to do this. 
Relying on implicit close does not alter the use/freeing of Sections.

The comments also made me want to test what happens when a large number of 
Statements are kept open, since Statements with query timeout will hold on to 
two Sections (as opposed to only one for Statements without query timeout). So 
I added a test case for that.

> Using setQueryTimeout will leak sections 
> -----------------------------------------
>
>                 Key: DERBY-3198
>                 URL: https://issues.apache.org/jira/browse/DERBY-3198
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC, Network Client
>    Affects Versions: 10.3.1.4
>            Reporter: Dyre Tjeldvoll
>            Assignee: Dyre Tjeldvoll
>         Attachments: derby-3198.v1.diff, derby-3198.v2.diff, 
> derby-3198.v3.diff, derby-3198.v4.diff, repro.diff
>
>
> The implementation of setQueryTimeout relies on 
> NetStatementReply.writeSetSpecialRegister() which will allocate a dynamic 
> section when called. No reference to this Section object is kept, and so 
> Section.free() never gets called on it. Executing the same statment 
> repeatedly with a query timeout set results in the client driver throwing an 
> exception because the number of Sections exceeding 32000.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to