Rupert Westenthaler created STANBOL-1288:
--------------------------------------------
Summary: FST Linking Engine EntityCache might contain outdated
entries after reregistering the used SolrCore
Key: STANBOL-1288
URL: https://issues.apache.org/jira/browse/STANBOL-1288
Project: Stanbol
Issue Type: Bug
Components: Enhancement Engines
Affects Versions: 0.12.0
Reporter: Rupert Westenthaler
Assignee: Rupert Westenthaler
Fix For: 1.0.0, 0.12.1
The EntityCacheManager instance of the FST Linking Engine has the same
lifecycle as the FSTLinkingEngineComponent. However FSTLinkingEngine instances
are created on every change of dependent services (mainly the SolrCore).
This means that EntityCacheManager will get reused if an external dependency is
updated (typically a SolrCore becomes temporarily unavailable).
The EntityCacheManager provide EntityCache instances for versions (a long
provided by the Solr Server). If the version changes a new EntityCache will get
created.
To be affected by this bug the following things need to happen:
* A FstLinkingEngine with an active EntityCache for a given {version-N} need to
be used
* The SolrCore need to become unavailable
* The SolrCore need to become available again
* The new SolrCore need to have different data but the exact same {version-N}
In this case the EntityCache created for the old SolrCore will be used for the
new SolrCore.
NOTE: This issue does not affect users that update the contents of the SolrCore
(e.g. pushing an Entity to an Entityhub Managed site). This only affects users
that (re)regsiter a SolrCore on a Managed- or ReferenceSolrServer!
Affected users will encounter missing linking results. There is also a small
possibility of getting NPE while matching linking candidates.
As Workaround affected users can deactivate the EntityCache by setting its size
in the configuration of the engine to '0'.
To fix this the lifecycle of the EntityCacheMaanger needs to be aligned with
the one of the FSTLinkingEngine - meaning a new EntityCacheMaanger needs to be
created after every change to a depending service.
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)