db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kristian Waagan (JIRA)" <j...@apache.org>
Subject [jira] Updated: (DERBY-3571) LOB locators are not released if the LOB columns are not accessed by the client
Date Wed, 02 Apr 2008 09:44:24 GMT

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

Kristian Waagan updated DERBY-3571:
-----------------------------------

       Derby Info:   (was: [Patch Available])
    Fix Version/s: 10.5.0.0

Committed patch 2a to trunk with revision 643819. I'll wait a little before I backport to
10.4.

Thanks for the continued review Knut Anders.
The answer to your latest questions are either no or yes to all. It depends on whether the
tracker shall be used to track LOB accesses to allow the client to throw an exception if a
LOB column is accessed more than once.
If we don't want to track accesses, all your suggestions are valid.

I don't think we have reached consensus on what to do. Related issues are DERBY-3583 and DERBY-2892.
People should comment on the former if they have opinions on whether or not to allow multiple
calls to the various getter methods for LOB columns (except for those returning a stream).


I'm not resolving the issue, because I believe there might be some follow-up changes.
Also, can anyone confirm that the new test can be run on J2ME platforms?

> LOB locators are not released if the LOB columns are not accessed by the client
> -------------------------------------------------------------------------------
>
>                 Key: DERBY-3571
>                 URL: https://issues.apache.org/jira/browse/DERBY-3571
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC, Network Client
>    Affects Versions: 10.3.2.1, 10.4.0.0, 10.5.0.0
>            Reporter: Kristian Waagan
>            Assignee: Kristian Waagan
>             Fix For: 10.5.0.0
>
>         Attachments: derby-3571-1a-client_track_lob_fix.diff, derby-3571-1a-client_track_lob_fix.stat,
derby-3571-1b-client_track_lob_fix.diff, derby-3571-1c-client_track_lob_fix.diff, derby-3571-1d-client_track_lob_fix.diff,
derby-3571-1e-client_track_lob_fix.diff, derby-3571-2a-simple_release.diff, derby-3571-2a-simple_release.stat
>
>
> If the client creates a result set containing LOB locator columns and iterates through
it without actually accessing the LOB columns, the locators are not released.
> The amount of locators and their associated LOB objects causes the server to consume
large amounts of memory and it eventually gets an OOME.
> There are a few workarounds for this bug:
>  a) Access and/or properly close the LOBs (i.e. Blob.free).
>     This is partly dependent on DERBY-2892.
>  b) Invoke Connection.commit (or rollback) periodically, which causes all locators on
the connection to be released.

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


Mime
View raw message