[
https://issues.apache.org/jira/browse/KARAF-689?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jamie goodyear updated KARAF-689:
---------------------------------
Attachment: (was: karaf689.txt)
> Karaf instance can wrongly obtain a lock when the locking table is empty on a
> Oracle DB
> ---------------------------------------------------------------------------------------
>
> Key: KARAF-689
> URL: https://issues.apache.org/jira/browse/KARAF-689
> Project: Karaf
> Issue Type: Bug
> Components: runtime
> Affects Versions: 2.1.3
> Environment: Oracle Database 11g Enterprise Edition Release
> 11.2.0.2.0 - 64bit Production
> Reporter: Ton Swieb
> Assignee: Jamie goodyear
> Fix For: 2.1.6, 2.2.2, 3.0.0
>
> Attachments: patch.txt
>
>
> When running Karaf in Master/Slave mode a Karaf instance can wrongly obtain a
> lock when the locking table is empty on a Oracle DB.
> Karaf creates a lock table and a lock record in de OracleDB upon first usage.
> When the lock record is removed afterwards without dropping the table then
> the locking mechanisme does not work anymore and any instance can wrongly
> obtain a lock.
> This is not an issue for other database systems, because the implementation
> for other DB systems periodically tries to update the lock record and verify
> how many records are updated. According to the documentation in the code the
> "update" functionality has been removed for Oracle because it can exhaust the
> Oracle UNDO log.
> I created a patch which does not use the "update" functionality, but executes
> an extra check after we acquired the lock. It checks if the SELECT FOR UPDATE
> used for the lock has not been executed on an empty selection, because when
> the selection is empty then the locking functionality will not work as
> expected.
> Can you apply this patch to the branches karaf-2.1.x and karaf-2.2.x and the
> trunk. I looked at the SVN history of the files I have modified and noticed
> that they are the same in both branches and the trunk.
> The patch has been created against the karaf-2.1.x branch.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira