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