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)

Reply via email to